module Objection::Compose::ClassMethods

Public Instance Methods

compose_with(*args) click to toggle source
# File lib/motion-objection/compose.rb, line 15
def compose_with(*args)
  @_type_mappings = {}
  properties = []
  args.each do |arg|
    if arg.is_a? Hash
      arg.each do |k,v|
        @_type_mappings[k.to_s] = v
        attr_accessor k
        properties << k
      end
    else
      prop = arg.split("/").last
      attr_accessor prop
      @_type_mappings[prop] = arg.to_s
      properties << prop
    end
  end
  @_dependencies = NSSet.setWithArray(properties.map(&:to_s))
end
initializer(selector, *args) click to toggle source
# File lib/motion-objection/compose.rb, line 39
def initializer(selector, *args)
  self.send :extend, Initializer 
  @_initializer = {
    "initializer" => selector,
    "arguments" => args
  }
end
singleton() click to toggle source
# File lib/motion-objection/compose.rb, line 35
def singleton
  JSObjection.registerClass self, scope: JSObjectionScopeSingleton 
end

Protected Instance Methods

objectionRequires() click to toggle source
# File lib/motion-objection/compose.rb, line 49
def objectionRequires
  @_dependencies ||= NSSet.set
  if self.superclass.respondsToSelector :objectionRequires
    set = NSMutableSet.setWithSet self.superclass.objectionRequires
    set.unionSet @_dependencies
    set
  else
    @_dependencies
  end
end
objectionTypeMappings() click to toggle source
# File lib/motion-objection/compose.rb, line 60
def objectionTypeMappings
  @_type_mappings ||= {}
  if self.superclass.respondsToSelector :objectionTypeMappings
    @_type_mappings.merge self.superclass.objectionTypeMappings
  else
    @_type_mappings
  end
end