Module: Sumac::ExposedObjectChild::IncludedInstanceMethods

Defined in:
lib/sumac/exposed_object_child.rb

Instance Method Summary collapse

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

Raises:



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