Module: Sumac::ExposedObjectChild::IncludedClassMethods

Defined in:
lib/sumac/exposed_object_child.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

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

Raises:



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