Issue #12177 has been updated by Nobuyoshi Nakada.

Status changed from Assigned to Closed

----------------------------------------
Bug #12177: Using `if:` as symbol in hash with new hash syntax in irb console is not working
https://bugs.ruby-lang.org/issues/12177#change-62527

* Author: Niels Kristian
* Status: Closed
* Priority: Normal
* Assignee: Keiju Ishitsuka
* Target version: 
* ruby -v: ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin15]
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
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
~~~



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>