Module: Bristow::Sgetter::ClassMethods
- Defined in:
- lib/bristow/helpers/sgetter.rb
Instance Method Summary collapse
Instance Method Details
#sgetter(attr, default: nil) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/bristow/helpers/sgetter.rb', line 24 def sgetter(attr, default: nil) # Define the method that allows for both getter/setter syntax define_singleton_method(attr) do |val = nil| if val.nil? return instance_variable_get("@#{attr}") if instance_variable_defined?("@#{attr}") default.respond_to?(:call) ? default.call : default else instance_variable_set("@#{attr}", val) end end # Instance-level reader define_method(attr) do instance_variable_get("@#{attr}") end end |