Module: Sumac::ExposedObjectChild::ExtendedClassMethods
- Defined in:
- lib/sumac/exposed_object_child.rb
Instance Method Summary collapse
- #__exposed_methods__ ⇒ Object
- #__key__ ⇒ Object
- #__parent__ ⇒ Object
- #__sumac_exposed_object__ ⇒ Object
- #expose(*method_names) ⇒ Object
- #inherited(base) ⇒ Object
- #key_accessor(method_name = nil) ⇒ Object
- #parent_accessor(method_name = nil) ⇒ Object
Instance Method Details
#__exposed_methods__ ⇒ Object
115 116 117 |
# File 'lib/sumac/exposed_object_child.rb', line 115 def __exposed_methods__ @__exposed_methods__ ||= [] end |
#__key__ ⇒ Object
124 125 126 127 |
# File 'lib/sumac/exposed_object_child.rb', line 124 def __key__ raise 'key_accessor not defined' unless @__key_accessor__ __send__(@__key_accessor__) end |
#__parent__ ⇒ Object
119 120 121 122 |
# File 'lib/sumac/exposed_object_child.rb', line 119 def __parent__ raise 'parent_accessor not defined' unless @__parent_accessor__ __send__(@__parent_accessor__) end |
#__sumac_exposed_object__ ⇒ Object
129 130 |
# File 'lib/sumac/exposed_object_child.rb', line 129 def __sumac_exposed_object__ end |
#expose(*method_names) ⇒ Object
132 133 134 135 136 137 138 139 |
# File 'lib/sumac/exposed_object_child.rb', line 132 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 |
#inherited(base) ⇒ Object
109 110 111 112 113 |
# File 'lib/sumac/exposed_object_child.rb', line 109 def inherited(base) base.instance_variable_set(:@__exposed_methods__, @__exposed_methods__.dup) base.instance_variable_set(:@__parent_accessor__, @__parent_accessor__) base.instance_variable_set(:@__key_accessor__, @__key_accessor__) end |
#key_accessor(method_name = nil) ⇒ Object
148 149 150 151 152 153 |
# File 'lib/sumac/exposed_object_child.rb', line 148 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
141 142 143 144 145 146 |
# File 'lib/sumac/exposed_object_child.rb', line 141 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 |