Project

General

Profile

Bug #12177

Using `if:` as symbol in hash with new hash syntax in irb console is not working

Added by nielsks (Niels Kristian) over 4 years ago. Updated over 3 years ago.

Status:
Closed
Priority:
Normal
Target version:
-
ruby -v:
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin15]
[ruby-core:74338]

Description

Try running irb and past this in:

# This works
class TestClass
  @_alerts_config = {}

  class << self
    attr_accessor :_alerts_config
  end

  def self.monitor value_name, *args
    self._alerts_config[value_name] = args.first
  end

  monitor "test_attr", alert: "test@example.com", :if => Proc.new{|instance| instance.nil? }, with_message: "Some error"

end

This will work. However if the :if => is changed to if: then the syntax renders invalid.

# This does NOT work
class TestClass
  @_alerts_config = {}

  class << self
    attr_accessor :_alerts_config
  end

  def self.monitor value_name, *args
    self._alerts_config[value_name] = args.first
  end

  monitor "test_attr", alert: "test@example.com", if: Proc.new{|instance| instance.nil? }, with_message: "Some error"

end

Related issues

Has duplicate Ruby master - Bug #13012: irb fails to define a method with a reserved-word-ish keyword argument ClosedActions

Also available in: Atom PDF