From: Chris Gernon Date: 2007-01-06T07:37:57+09:00 Subject: [Newbie] Question about instance method scoping/parsing (?) Can anyone explain to me what's going on here? ------------------------------------- #!/usr/bin/env ruby -w class Thingy attr_accessor :name def test puts "self.name: #{self.name}" puts "name: #{name}" name ||= 'default value' puts "self.name: #{self.name}" puts "name: #{name}" end end thing1 = Thingy.new thing1.name = 'custom value' thing1.test ------------------------------------- $ ruby dditest.rb self.name: custom value name: custom value self.name: custom value name: default value ------------------------------------- I thought calling a method without a receiver (i.e. name, name=) within an instance method would always call that method on the current object. Is this not true for setters (i.e. Thingy#name=)? Additionally, why is the first instance of name interpreted as a method call and the last instance interpreted as (I think) a local variable? Thanks, Chris -- Posted via http://www.ruby-forum.com/.