module Proxima::Attributes::ClassMethods
Public Instance Methods
attribute(attribute, klass = nil, json_path = nil, params = nil)
click to toggle source
# File lib/proxima/attributes.rb, line 50 def attribute(attribute, klass = nil, json_path = nil, params = nil) params ||= json_path if json_path.is_a? Hash params ||= klass if klass.is_a? Hash params ||= {} params[:klass] ||= klass if klass.is_a? Class params[:json_path] ||= json_path if json_path.is_a? String params[:json_path] ||= klass if klass.is_a? String params[:json_path] ||= attribute.to_s # Create attribute accessors attr_reader attribute define_method("#{attribute}=") do |value| self.persisted = false attribute_will_change! attribute self.instance_variable_set "@#{attribute}", value Proxima.watch value do attribute_will_change! attribute end end # Create attribute? methods define_method "#{attribute}?" do self.instance_variable_get("@#{attribute}") != nil end # Create suffixed/prefixed attribute methods self.define_attribute_method attribute self.attributes[attribute] = params end
attributes()
click to toggle source
# File lib/proxima/attributes.rb, line 46 def attributes @attributes ||= {} end