code_junkie

ruby method names

Nov 10th, 2011
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.56 KB | None | 0 0
  1. attr_writer :bar
  2. attr_reader :baz
  3. attr_accessor :foo
  4.  
  5. class SillySetter
  6. def initialize path=nil
  7. @path = path
  8. end
  9.  
  10. def method_missing name,value=nil
  11. new_path = @path ? "#{@path}.#{name}" : name
  12. if name.to_s[-1] == ?=
  13. puts "setting #{new_path} #{value}"
  14. else
  15. return self.class.new(path=new_path)
  16. end
  17. end
  18. end
  19.  
  20. s = SillySetter.new
  21. s.foo = 5 # -> setting foo= 5
  22. s.foo.bar.baz = 4 # -> setting foo.bar.baz= 4
  23.  
  24. def variable_name
  25. send 'variable.name'
  26. end
  27.  
  28. def variable_name=(value)
  29. send 'variable.name=', value
  30. end
Add Comment
Please, Sign In to add comment