Class: Objectable::Interface
- Inherits:
-
Object
- Object
- Objectable::Interface
- Defined in:
- lib/objectable/interface.rb
Overview
This class defines the direct interface with an object. Unlike the resolver, this class
cannot handle traversal or nesting, it can only deal with the immediate object interface.
Instance Method Summary collapse
Instance Method Details
#get(object, key) ⇒ Object
14 15 16 17 18 19 20 |
# File 'lib/objectable/interface.rb', line 14 def get(object, key) if object.is_a?(Hash) indifferent_hash_get(object, key) elsif object.respond_to?(key) object.public_send(key) end end |
#set(object, key, val) ⇒ Object
22 23 24 25 26 27 28 29 30 31 |
# File 'lib/objectable/interface.rb', line 22 def set(object, key, val) object.tap do |o| setter_method = "#{key}=" if o.respond_to?(setter_method) o.send(setter_method, val) elsif o.respond_to?(:[]) o[key] = val end end end |