Module: Sumac::ExposedObject::IncludedInstanceMethods
- Defined in:
- lib/sumac/exposed_object.rb
Instance Method Summary collapse
- #__child__(key) ⇒ Object
- #__child_accessor__ ⇒ Object
- #__exposed_methods__ ⇒ Object
- #__native_id__ ⇒ Object
- #__sumac_exposed_object__ ⇒ Object
- #child_accessor(method_name = nil) ⇒ Object
- #expose(*method_names) ⇒ Object
Instance Method Details
#__child__(key) ⇒ Object
48 49 50 51 |
# File 'lib/sumac/exposed_object.rb', line 48 def __child__(key) raise 'child_accessor not defined' unless __child_accessor__ __send__(__child_accessor__, key) end |
#__child_accessor__ ⇒ Object
53 54 55 |
# File 'lib/sumac/exposed_object.rb', line 53 def __child_accessor__ @__child_accessor__ || self.class.__child_accessor__ end |
#__exposed_methods__ ⇒ Object
57 58 59 60 |
# File 'lib/sumac/exposed_object.rb', line 57 def __exposed_methods__ @__exposed_methods__ ||= [] @__exposed_methods__ + self.class.__exposed_methods__ end |
#__native_id__ ⇒ Object
62 63 64 |
# File 'lib/sumac/exposed_object.rb', line 62 def __native_id__ __id__ end |
#__sumac_exposed_object__ ⇒ Object
66 67 |
# File 'lib/sumac/exposed_object.rb', line 66 def __sumac_exposed_object__ end |
#child_accessor(method_name = nil) ⇒ Object
69 70 71 72 73 74 |
# File 'lib/sumac/exposed_object.rb', line 69 def child_accessor(method_name = nil) unless method_name.is_a?(Symbol) || method_name.is_a?(String) raise ArgumentError, "'child_accessor' expects a method name as a string for symbol" end @__child_accessor__ = method_name.to_s end |
#expose(*method_names) ⇒ Object
76 77 78 79 80 81 82 83 |
# File 'lib/sumac/exposed_object.rb', line 76 def expose(*method_names) raise ArgumentError, 'at least one argument expected' if method_names.empty? unless method_names.each { |method_name| method_name.is_a?(Symbol) || method_name.is_a?(String) } raise 'only symbols or strings expected' end @__exposed_methods__ ||= [] @__exposed_methods__.concat(method_names.map(&:to_s)) end |