errors/no_method_error/missing_setter.rb

tests/_examples/errors/no_method_error/missing_setter.rb in the metorex repository.

# Assigning through a setter an object does not define raises NoMethodError,
# the same error a missing method of any other name raises.
class Reading
  attr_reader :value

  def initialize
    @value = 1
  end
end

reading = Reading.new
begin
  reading.value = 2
rescue NoMethodError => error
  puts error.message
  puts error.name.inspect
  puts error.receiver.equal?(reading)
end
puts reading.value

Output:

undefined method 'value=' for an instance of Reading
:value=
true
1