class Unimatrix::Activist::Base
Public Class Methods
field( name, options = {} )
click to toggle source
# File lib/unimatrix/activist/resources/base.rb, line 11 def field( name, options = {} ) self.fields[ name.to_sym ] = options.merge( name: name ) class_eval( "def #{ name }(); " + "@#{ name }.is_a?( FalseClass ) ? @#{ name } : (" + "@#{ name } || " + ( options[ :default ].nil? ? "nil" : ( options[ :default ].is_a?( String ) ? "'#{ options[ :default ] }'" : "#{ options[ :default ] }" ) ) + ");" + "end;" + " " + "attr_writer :#{ name };", __FILE__, __LINE__ ) end
has_many( name, options = {} )
click to toggle source
# File lib/unimatrix/activist/resources/base.rb, line 39 def has_many( name, options = {} ) define_method name do self.instance_variable_get( "@_#{ name }" ) || options[ :default ] || [] end end
has_one( name, options = {} )
click to toggle source
# File lib/unimatrix/activist/resources/base.rb, line 32 def has_one( name, options = {} ) define_method name do associations = self.instance_variable_get( "@_#{ name.to_s.pluralize }" ) associations.present? ? associations.first : options[ :default ] end end
inherited( subclass )
click to toggle source
# File lib/unimatrix/activist/resources/base.rb, line 7 def inherited( subclass ) subclass.fields = {}.merge( self.fields ) end
new( attributes={}, associations={} ) { |self| ... }
click to toggle source
# File lib/unimatrix/activist/resources/base.rb, line 54 def initialize( attributes={}, associations={} ) self.type_name = self.class.name.gsub( /Unimatrix::Activist::/, '' ).underscore attributes.each do | key, value | if !respond_to?( "#{ key }=" ) field( key ) end send( "#{ key }=", value ) end associations.each do | key, value | self.instance_variable_set( "@_#{ key }", value ) end yield self if block_given? end
Public Instance Methods
field( name, options = {} )
click to toggle source
# File lib/unimatrix/activist/resources/base.rb, line 72 def field( name, options = {} ) self.fields[ name.to_sym ] = options.merge( name: name ) class_eval( "def #{ name }(); " + "@#{ name }.is_a?( FalseClass ) ? @#{ name } : (" + "@#{ name } || " + ( options[ :default ].nil? ? "nil" : ( options[ :default ].is_a?( String ) ? "'#{ options[ :default ] }'" : "#{ options[ :default ] }" ) ) + ");" + "end;" + " " + "attr_writer :#{ name };", __FILE__, __LINE__ ) end