Module: Sumac::ExposedObjectChild::IncludedClassMethods
- Defined in:
- lib/sumac/exposed_object_child.rb
Instance Attribute Summary collapse
-
#__key_accessor__ ⇒ Object
readonly
Returns the value of attribute key_accessor.
-
#__parent_accessor__ ⇒ Object
readonly
Returns the value of attribute parent_accessor.
Instance Method Summary collapse
- #__exposed_methods__ ⇒ Object
- #expose(*method_names) ⇒ Object
- #inherited(base) ⇒ Object
- #key_accessor(method_name = nil) ⇒ Object
- #parent_accessor(method_name = nil) ⇒ Object
Instance Attribute Details
#__key_accessor__ ⇒ Object (readonly)
Returns the value of attribute key_accessor.
22 23 24 |
# File 'lib/sumac/exposed_object_child.rb', line 22 def __key_accessor__ @__key_accessor__ end |
#__parent_accessor__ ⇒ Object (readonly)
Returns the value of attribute parent_accessor.
22 23 24 |
# File 'lib/sumac/exposed_object_child.rb', line 22 def __parent_accessor__ @__parent_accessor__ end |
Instance Method Details
#__exposed_methods__ ⇒ Object
24 25 26 |
# File 'lib/sumac/exposed_object_child.rb', line 24 def __exposed_methods__ @__exposed_methods__ ||= [] end |
#expose(*method_names) ⇒ Object
28 29 30 31 32 33 34 35 |
# File 'lib/sumac/exposed_object_child.rb', line 28 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
16 17 18 19 20 |
# File 'lib/sumac/exposed_object_child.rb', line 16 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
44 45 46 47 48 49 |
# File 'lib/sumac/exposed_object_child.rb', line 44 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
37 38 39 40 41 42 |
# File 'lib/sumac/exposed_object_child.rb', line 37 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 |