Remove y Object extension in IRB - #747

Closed
runephilosof wants to merge 1 commit into
ruby:masterfrom
runephilosof:master
Closed

Remove y Object extension in IRB#747
runephilosof wants to merge 1 commit into
ruby:masterfrom
runephilosof:master

Conversation

@runephilosof

Copy link
Copy Markdown
Contributor

Fixes: #685

This feature can easily break how you use other gems like factory_bot or prawn.

Fixes: ruby#685
This feature can easily break how you use other gems like factory_bot or prawn.
@tompng

Copy link
Copy Markdown
Member

👍

As described in y.rb comment

An alias for Psych.dump_stream meant to be used with IRB.

Removing y and y.rb can be considered just a feature drop from IRB. As a maintainer of IRB, I think dropping it is fine and worth enough.
In addition, similar method j and jj defined in json are already deprecated. Removing y makes sense.

About CI failure: Looks like psych.gemspec needs to be modified too. Need to remove "lib/psych/y.rb" line.

@tenderlove

Copy link
Copy Markdown
Member

I'm fine with removing the automatic require. But I kind of think we should leave psych/y around. If people really want to use it they could require the file. Note that this feature was just kept around for compatibility with Syck. I'd rather not define top-level functions, but I also want to make sure that if people are depending on that function that there is a way to get it back.

runephilosof added a commit to runephilosof/psych that referenced this pull request Oct 28, 2025
Fixes: ruby#685
This feature can easily break how you use other gems like factory_bot or prawn.
ruby#747 (comment)
> But I kind of think we should leave `psych/y` around. If people really want to use it they could require the file.
If you miss the function in Kernel, you can require it interactively or add it to `.irbrc`:
```ruby
require 'psych/y'
```
@hsbthsbt closed this Oct 29, 2025
matzbot pushed a commit to ruby/ruby that referenced this pull request Dec 4, 2025
Fixes: #685
This feature can easily break how you use other gems like factory_bot or prawn.
ruby/psych#747 (comment)
> But I kind of think we should leave `psych/y` around. If people really want to use it they could require the file.
If you miss the function in Kernel, you can require it interactively or add it to `.irbrc`:
```ruby
require 'psych/y'
```
ruby/psych@f1610b3f05
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

rails console on reload: undefined method `end_line=' for nil (NoMethodError)

4 participants

@runephilosof@tompng@tenderlove@hsbt
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Remove y Object extension in IRB - #747

Closed
runephilosof wants to merge 1 commit into
ruby:masterfrom
runephilosof:master
Closed

Remove y Object extension in IRB#747
runephilosof wants to merge 1 commit into
ruby:masterfrom
runephilosof:master

Conversation

@runephilosof

Copy link
Copy Markdown
Contributor

Fixes: #685

This feature can easily break how you use other gems like factory_bot or prawn.

Fixes: ruby#685
This feature can easily break how you use other gems like factory_bot or prawn.
@tompng

Copy link
Copy Markdown
Member

👍

As described in y.rb comment

An alias for Psych.dump_stream meant to be used with IRB.

Removing y and y.rb can be considered just a feature drop from IRB. As a maintainer of IRB, I think dropping it is fine and worth enough.
In addition, similar method j and jj defined in json are already deprecated. Removing y makes sense.

About CI failure: Looks like psych.gemspec needs to be modified too. Need to remove "lib/psych/y.rb" line.

@tenderlove

Copy link
Copy Markdown
Member

I'm fine with removing the automatic require. But I kind of think we should leave psych/y around. If people really want to use it they could require the file. Note that this feature was just kept around for compatibility with Syck. I'd rather not define top-level functions, but I also want to make sure that if people are depending on that function that there is a way to get it back.

runephilosof added a commit to runephilosof/psych that referenced this pull request Oct 28, 2025
Fixes: ruby#685
This feature can easily break how you use other gems like factory_bot or prawn.
ruby#747 (comment)
> But I kind of think we should leave `psych/y` around. If people really want to use it they could require the file.
If you miss the function in Kernel, you can require it interactively or add it to `.irbrc`:
```ruby
require 'psych/y'
```
@hsbthsbt closed this Oct 29, 2025
matzbot pushed a commit to ruby/ruby that referenced this pull request Dec 4, 2025
Fixes: #685
This feature can easily break how you use other gems like factory_bot or prawn.
ruby/psych#747 (comment)
> But I kind of think we should leave `psych/y` around. If people really want to use it they could require the file.
If you miss the function in Kernel, you can require it interactively or add it to `.irbrc`:
```ruby
require 'psych/y'
```
ruby/psych@f1610b3f05
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

rails console on reload: undefined method `end_line=' for nil (NoMethodError)

4 participants

@runephilosof@tompng@tenderlove@hsbt
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Remove y Object extension in IRB - #747

Closed
runephilosof wants to merge 1 commit into
ruby:masterfrom
runephilosof:master
Closed

Remove y Object extension in IRB#747
runephilosof wants to merge 1 commit into
ruby:masterfrom
runephilosof:master

Conversation

@runephilosof

Copy link
Copy Markdown
Contributor

Fixes: #685

This feature can easily break how you use other gems like factory_bot or prawn.

Fixes: ruby#685
This feature can easily break how you use other gems like factory_bot or prawn.
@tompng

Copy link
Copy Markdown
Member

👍

As described in y.rb comment

An alias for Psych.dump_stream meant to be used with IRB.

Removing y and y.rb can be considered just a feature drop from IRB. As a maintainer of IRB, I think dropping it is fine and worth enough.
In addition, similar method j and jj defined in json are already deprecated. Removing y makes sense.

About CI failure: Looks like psych.gemspec needs to be modified too. Need to remove "lib/psych/y.rb" line.

@tenderlove

Copy link
Copy Markdown
Member

I'm fine with removing the automatic require. But I kind of think we should leave psych/y around. If people really want to use it they could require the file. Note that this feature was just kept around for compatibility with Syck. I'd rather not define top-level functions, but I also want to make sure that if people are depending on that function that there is a way to get it back.

runephilosof added a commit to runephilosof/psych that referenced this pull request Oct 28, 2025
Fixes: ruby#685
This feature can easily break how you use other gems like factory_bot or prawn.
ruby#747 (comment)
> But I kind of think we should leave `psych/y` around. If people really want to use it they could require the file.
If you miss the function in Kernel, you can require it interactively or add it to `.irbrc`:
```ruby
require 'psych/y'
```
@hsbthsbt closed this Oct 29, 2025
matzbot pushed a commit to ruby/ruby that referenced this pull request Dec 4, 2025
Fixes: #685
This feature can easily break how you use other gems like factory_bot or prawn.
ruby/psych#747 (comment)
> But I kind of think we should leave `psych/y` around. If people really want to use it they could require the file.
If you miss the function in Kernel, you can require it interactively or add it to `.irbrc`:
```ruby
require 'psych/y'
```
ruby/psych@f1610b3f05
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

rails console on reload: undefined method `end_line=' for nil (NoMethodError)

4 participants

@runephilosof@tompng@tenderlove@hsbt
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Remove y Object extension in IRB - #747

Closed
runephilosof wants to merge 1 commit into
ruby:masterfrom
runephilosof:master
Closed

Remove y Object extension in IRB#747
runephilosof wants to merge 1 commit into
ruby:masterfrom
runephilosof:master

Conversation

@runephilosof

Copy link
Copy Markdown
Contributor

Fixes: #685

This feature can easily break how you use other gems like factory_bot or prawn.

Fixes: ruby#685
This feature can easily break how you use other gems like factory_bot or prawn.
@tompng

Copy link
Copy Markdown
Member

👍

As described in y.rb comment

An alias for Psych.dump_stream meant to be used with IRB.

Removing y and y.rb can be considered just a feature drop from IRB. As a maintainer of IRB, I think dropping it is fine and worth enough.
In addition, similar method j and jj defined in json are already deprecated. Removing y makes sense.

About CI failure: Looks like psych.gemspec needs to be modified too. Need to remove "lib/psych/y.rb" line.

@tenderlove

Copy link
Copy Markdown
Member

I'm fine with removing the automatic require. But I kind of think we should leave psych/y around. If people really want to use it they could require the file. Note that this feature was just kept around for compatibility with Syck. I'd rather not define top-level functions, but I also want to make sure that if people are depending on that function that there is a way to get it back.

runephilosof added a commit to runephilosof/psych that referenced this pull request Oct 28, 2025
Fixes: ruby#685
This feature can easily break how you use other gems like factory_bot or prawn.
ruby#747 (comment)
> But I kind of think we should leave `psych/y` around. If people really want to use it they could require the file.
If you miss the function in Kernel, you can require it interactively or add it to `.irbrc`:
```ruby
require 'psych/y'
```
@hsbthsbt closed this Oct 29, 2025
matzbot pushed a commit to ruby/ruby that referenced this pull request Dec 4, 2025
Fixes: #685
This feature can easily break how you use other gems like factory_bot or prawn.
ruby/psych#747 (comment)
> But I kind of think we should leave `psych/y` around. If people really want to use it they could require the file.
If you miss the function in Kernel, you can require it interactively or add it to `.irbrc`:
```ruby
require 'psych/y'
```
ruby/psych@f1610b3f05
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

rails console on reload: undefined method `end_line=' for nil (NoMethodError)

4 participants

@runephilosof@tompng@tenderlove@hsbt
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Remove y Object extension in IRB - #747

Closed
runephilosof wants to merge 1 commit into
ruby:masterfrom
runephilosof:master
Closed

Remove y Object extension in IRB#747
runephilosof wants to merge 1 commit into
ruby:masterfrom
runephilosof:master

Conversation

@runephilosof

Copy link
Copy Markdown
Contributor

Fixes: #685

This feature can easily break how you use other gems like factory_bot or prawn.

Fixes: ruby#685
This feature can easily break how you use other gems like factory_bot or prawn.
@tompng

Copy link
Copy Markdown
Member

👍

As described in y.rb comment

An alias for Psych.dump_stream meant to be used with IRB.

Removing y and y.rb can be considered just a feature drop from IRB. As a maintainer of IRB, I think dropping it is fine and worth enough.
In addition, similar method j and jj defined in json are already deprecated. Removing y makes sense.

About CI failure: Looks like psych.gemspec needs to be modified too. Need to remove "lib/psych/y.rb" line.

@tenderlove

Copy link
Copy Markdown
Member

I'm fine with removing the automatic require. But I kind of think we should leave psych/y around. If people really want to use it they could require the file. Note that this feature was just kept around for compatibility with Syck. I'd rather not define top-level functions, but I also want to make sure that if people are depending on that function that there is a way to get it back.

runephilosof added a commit to runephilosof/psych that referenced this pull request Oct 28, 2025
Fixes: ruby#685
This feature can easily break how you use other gems like factory_bot or prawn.
ruby#747 (comment)
> But I kind of think we should leave `psych/y` around. If people really want to use it they could require the file.
If you miss the function in Kernel, you can require it interactively or add it to `.irbrc`:
```ruby
require 'psych/y'
```
@hsbthsbt closed this Oct 29, 2025
matzbot pushed a commit to ruby/ruby that referenced this pull request Dec 4, 2025
Fixes: #685
This feature can easily break how you use other gems like factory_bot or prawn.
ruby/psych#747 (comment)
> But I kind of think we should leave `psych/y` around. If people really want to use it they could require the file.
If you miss the function in Kernel, you can require it interactively or add it to `.irbrc`:
```ruby
require 'psych/y'
```
ruby/psych@f1610b3f05
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

rails console on reload: undefined method `end_line=' for nil (NoMethodError)

4 participants

@runephilosof@tompng@tenderlove@hsbt
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Remove y Object extension in IRB - #747

Closed
runephilosof wants to merge 1 commit into
ruby:masterfrom
runephilosof:master
Closed

Remove y Object extension in IRB#747
runephilosof wants to merge 1 commit into
ruby:masterfrom
runephilosof:master

Conversation

@runephilosof

Copy link
Copy Markdown
Contributor

Fixes: #685

This feature can easily break how you use other gems like factory_bot or prawn.

Fixes: ruby#685
This feature can easily break how you use other gems like factory_bot or prawn.
@tompng

Copy link
Copy Markdown
Member

👍

As described in y.rb comment

An alias for Psych.dump_stream meant to be used with IRB.

Removing y and y.rb can be considered just a feature drop from IRB. As a maintainer of IRB, I think dropping it is fine and worth enough.
In addition, similar method j and jj defined in json are already deprecated. Removing y makes sense.

About CI failure: Looks like psych.gemspec needs to be modified too. Need to remove "lib/psych/y.rb" line.

@tenderlove

Copy link
Copy Markdown
Member

I'm fine with removing the automatic require. But I kind of think we should leave psych/y around. If people really want to use it they could require the file. Note that this feature was just kept around for compatibility with Syck. I'd rather not define top-level functions, but I also want to make sure that if people are depending on that function that there is a way to get it back.

runephilosof added a commit to runephilosof/psych that referenced this pull request Oct 28, 2025
Fixes: ruby#685
This feature can easily break how you use other gems like factory_bot or prawn.
ruby#747 (comment)
> But I kind of think we should leave `psych/y` around. If people really want to use it they could require the file.
If you miss the function in Kernel, you can require it interactively or add it to `.irbrc`:
```ruby
require 'psych/y'
```
@hsbthsbt closed this Oct 29, 2025
matzbot pushed a commit to ruby/ruby that referenced this pull request Dec 4, 2025
Fixes: #685
This feature can easily break how you use other gems like factory_bot or prawn.
ruby/psych#747 (comment)
> But I kind of think we should leave `psych/y` around. If people really want to use it they could require the file.
If you miss the function in Kernel, you can require it interactively or add it to `.irbrc`:
```ruby
require 'psych/y'
```
ruby/psych@f1610b3f05
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

rails console on reload: undefined method `end_line=' for nil (NoMethodError)

4 participants

@runephilosof@tompng@tenderlove@hsbt
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Remove y Object extension in IRB - #747

Closed
runephilosof wants to merge 1 commit into
ruby:masterfrom
runephilosof:master
Closed

Remove y Object extension in IRB#747
runephilosof wants to merge 1 commit into
ruby:masterfrom
runephilosof:master

Conversation

@runephilosof

Copy link
Copy Markdown
Contributor

Fixes: #685

This feature can easily break how you use other gems like factory_bot or prawn.

Fixes: ruby#685
This feature can easily break how you use other gems like factory_bot or prawn.
@tompng

Copy link
Copy Markdown
Member

👍

As described in y.rb comment

An alias for Psych.dump_stream meant to be used with IRB.

Removing y and y.rb can be considered just a feature drop from IRB. As a maintainer of IRB, I think dropping it is fine and worth enough.
In addition, similar method j and jj defined in json are already deprecated. Removing y makes sense.

About CI failure: Looks like psych.gemspec needs to be modified too. Need to remove "lib/psych/y.rb" line.

@tenderlove

Copy link
Copy Markdown
Member

I'm fine with removing the automatic require. But I kind of think we should leave psych/y around. If people really want to use it they could require the file. Note that this feature was just kept around for compatibility with Syck. I'd rather not define top-level functions, but I also want to make sure that if people are depending on that function that there is a way to get it back.

runephilosof added a commit to runephilosof/psych that referenced this pull request Oct 28, 2025
Fixes: ruby#685
This feature can easily break how you use other gems like factory_bot or prawn.
ruby#747 (comment)
> But I kind of think we should leave `psych/y` around. If people really want to use it they could require the file.
If you miss the function in Kernel, you can require it interactively or add it to `.irbrc`:
```ruby
require 'psych/y'
```
@hsbthsbt closed this Oct 29, 2025
matzbot pushed a commit to ruby/ruby that referenced this pull request Dec 4, 2025
Fixes: #685
This feature can easily break how you use other gems like factory_bot or prawn.
ruby/psych#747 (comment)
> But I kind of think we should leave `psych/y` around. If people really want to use it they could require the file.
If you miss the function in Kernel, you can require it interactively or add it to `.irbrc`:
```ruby
require 'psych/y'
```
ruby/psych@f1610b3f05
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

rails console on reload: undefined method `end_line=' for nil (NoMethodError)

4 participants

@runephilosof@tompng@tenderlove@hsbt
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Remove y Object extension in IRB - #747

Closed
runephilosof wants to merge 1 commit into
ruby:masterfrom
runephilosof:master
Closed

Remove y Object extension in IRB#747
runephilosof wants to merge 1 commit into
ruby:masterfrom
runephilosof:master

Conversation

@runephilosof

Copy link
Copy Markdown
Contributor

Fixes: #685

This feature can easily break how you use other gems like factory_bot or prawn.

Fixes: ruby#685
This feature can easily break how you use other gems like factory_bot or prawn.
@tompng

Copy link
Copy Markdown
Member

👍

As described in y.rb comment

An alias for Psych.dump_stream meant to be used with IRB.

Removing y and y.rb can be considered just a feature drop from IRB. As a maintainer of IRB, I think dropping it is fine and worth enough.
In addition, similar method j and jj defined in json are already deprecated. Removing y makes sense.

About CI failure: Looks like psych.gemspec needs to be modified too. Need to remove "lib/psych/y.rb" line.

@tenderlove

Copy link
Copy Markdown
Member

I'm fine with removing the automatic require. But I kind of think we should leave psych/y around. If people really want to use it they could require the file. Note that this feature was just kept around for compatibility with Syck. I'd rather not define top-level functions, but I also want to make sure that if people are depending on that function that there is a way to get it back.

runephilosof added a commit to runephilosof/psych that referenced this pull request Oct 28, 2025
Fixes: ruby#685
This feature can easily break how you use other gems like factory_bot or prawn.
ruby#747 (comment)
> But I kind of think we should leave `psych/y` around. If people really want to use it they could require the file.
If you miss the function in Kernel, you can require it interactively or add it to `.irbrc`:
```ruby
require 'psych/y'
```
@hsbthsbt closed this Oct 29, 2025
matzbot pushed a commit to ruby/ruby that referenced this pull request Dec 4, 2025
Fixes: #685
This feature can easily break how you use other gems like factory_bot or prawn.
ruby/psych#747 (comment)
> But I kind of think we should leave `psych/y` around. If people really want to use it they could require the file.
If you miss the function in Kernel, you can require it interactively or add it to `.irbrc`:
```ruby
require 'psych/y'
```
ruby/psych@f1610b3f05
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

rails console on reload: undefined method `end_line=' for nil (NoMethodError)

4 participants

@runephilosof@tompng@tenderlove@hsbt