module Sumac::ExposedObject::IncludedInstanceMethods

Public Instance Methods

__child__(key) click to toggle source
# File lib/sumac/exposed_object.rb, line 48
def __child__(key)
  raise 'child_accessor not defined' unless __child_accessor__
  __send__(__child_accessor__, key)
end
__child_accessor__() click to toggle source
# File lib/sumac/exposed_object.rb, line 53
def __child_accessor__
  @__child_accessor__ || self.class.__child_accessor__
end
__exposed_methods__() click to toggle source
# File lib/sumac/exposed_object.rb, line 57
def __exposed_methods__
  @__exposed_methods__ ||= []
  @__exposed_methods__ + self.class.__exposed_methods__
end
__native_id__() click to toggle source
# File lib/sumac/exposed_object.rb, line 62
def __native_id__
  __id__
end
__sumac_exposed_object__() click to toggle source
# File lib/sumac/exposed_object.rb, line 66
def __sumac_exposed_object__
end
child_accessor(method_name = nil) click to toggle source
# File lib/sumac/exposed_object.rb, line 69
def child_accessor(method_name = nil)
  unless method_name.is_a?(Symbol) || method_name.is_a?(String)
    raise ArgumentError, "'child_accessor' expects a method name as a string for symbol"
  end
  @__child_accessor__ = method_name.to_s
end
expose(*method_names) click to toggle source
# File lib/sumac/exposed_object.rb, line 76
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