Module: Sumac::ExposedObjectChild::IncludedInstanceMethods
- Defined in:
- lib/sumac/exposed_object_child.rb
Instance Method Summary collapse
- #__exposed_methods__ ⇒ Object
- #__key__ ⇒ Object
- #__key_accessor__ ⇒ Object
- #__parent__ ⇒ Object
- #__parent_accessor__ ⇒ Object
- #__sumac_exposed_object__ ⇒ Object
- #expose(*method_names) ⇒ Object
- #key_accessor(method_name = nil) ⇒ Object
- #parent_accessor(method_name = nil) ⇒ Object
Instance Method Details
#__exposed_methods__ ⇒ Object
55 56 57 58 |
# File 'lib/sumac/exposed_object_child.rb', line 55 def __exposed_methods__ @__exposed_methods__ ||= [] @__exposed_methods__ + self.class.__exposed_methods__ end |
#__key__ ⇒ Object
69 70 71 72 |
# File 'lib/sumac/exposed_object_child.rb', line 69 def __key__ raise 'key_accessor not defined' unless __key_accessor__ __send__(__key_accessor__) end |
#__key_accessor__ ⇒ Object
74 75 76 |
# File 'lib/sumac/exposed_object_child.rb', line 74 def __key_accessor__ @__key_accessor__ || self.class.__key_accessor__ end |
#__parent__ ⇒ Object
60 61 62 63 |
# File 'lib/sumac/exposed_object_child.rb', line 60 def __parent__ raise 'parent_accessor not defined' unless __parent_accessor__ __send__(__parent_accessor__) end |
#__parent_accessor__ ⇒ Object
65 66 67 |
# File 'lib/sumac/exposed_object_child.rb', line 65 def __parent_accessor__ @__parent_accessor__ || self.class.__parent_accessor__ end |
#__sumac_exposed_object__ ⇒ Object
78 79 |
# File 'lib/sumac/exposed_object_child.rb', line 78 def __sumac_exposed_object__ end |
#expose(*method_names) ⇒ Object
81 82 83 84 85 86 87 88 |
# File 'lib/sumac/exposed_object_child.rb', line 81 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 |
#key_accessor(method_name = nil) ⇒ Object
97 98 99 100 101 102 |
# File 'lib/sumac/exposed_object_child.rb', line 97 def key_accessor(method_name = nil) unless method_name.is_a?(Symbol) || method_name.is_a?(String) raise ArgumentError, "'parent_accessor' expects a method name as a string for symbol" end @__key_accessor__ = method_name.to_s end |
#parent_accessor(method_name = nil) ⇒ Object
90 91 92 93 94 95 |
# File 'lib/sumac/exposed_object_child.rb', line 90 def parent_accessor(method_name = nil) unless method_name.is_a?(Symbol) || method_name.is_a?(String) raise ArgumentError, "'parent_accessor' expects a method name as a string for symbol" end @__parent_accessor__ = method_name.to_s end |