class Test
class << self
attr_accessor :some
def set_some
puts self.inspect
some = 'some_data'
end
def get_some
puts self.inspect
some
end
end
end
Test.set_some => Test
puts Test.get_some.inspect => Test nil
Здесь, выше, я мог найти себя как сам тест, но не возвращал some_data
в качестве вывода.
Но хотя я изменил его следующим образом, он возвращает ожидаемый результат
class Test
class << self
attr_accessor :some
def set_some
puts self.inspect
self.some = 'some_data'
end
def get_some
puts self.inspect
self.some
end
end
end
Test.set_some => Test
puts Test.get_some.inspect => Test some_data
В чем различия ?
Теперь в первом примере, если я установил метод get some
как
Test.some = 'new_data'
puts Test.some.inspect #=> new_data
Test.set_some
puts Test.get_some.inspect => new_data
Теперь это меня еще больше сбило с толку.