module Loco::Observable::ClassMethods
Public Instance Methods
get_class_bindings()
click to toggle source
An array of the model’s bindings @return [Array]
# File lib/motion-loco/observable.rb, line 160 def get_class_bindings if @class_bindings.nil? @class_bindings = [] if self.superclass.respond_to? :get_class_bindings @class_bindings.concat(self.superclass.get_class_bindings) end end @class_bindings end
get_class_properties()
click to toggle source
An array of the model’s properties used for saving the record @return [Array]
# File lib/motion-loco/observable.rb, line 173 def get_class_properties if @class_properties.nil? @class_properties = [] if self.superclass.respond_to? :get_class_properties @class_properties.concat(self.superclass.get_class_properties) end end @class_properties end
get_class_relationships()
click to toggle source
# File lib/motion-loco/observable.rb, line 183 def get_class_relationships if @class_relationships.nil? @class_relationships = [] if self.superclass.respond_to? :get_class_relationships @class_relationships.concat(self.superclass.get_class_relationships) end end @class_relationships end
observer(name, proc)
click to toggle source
# File lib/motion-loco/observable.rb, line 153 def observer(name, proc) @class_bindings = get_class_bindings @class_bindings << { proc: proc } end
property(name, type=nil)
click to toggle source
# File lib/motion-loco/observable.rb, line 134 def property(name, type=nil) name = name.to_sym @class_properties = get_class_properties unless @class_properties.include? name attr_accessor name alias_method name.to_s.camelize(:lower), name alias_method "#{name.to_s.camelize(:lower)}=", "#{name}=" end if type.is_a? Proc @class_bindings = get_class_bindings @class_bindings << { name: name, proc: type } else type = type.to_sym unless type.nil? @class_properties << { name: name, type: type } end end