class ActiveNull::NullModelBuilder
Attributes
model[R]
overrides[R]
Public Class Methods
new(model, overrides)
click to toggle source
# File lib/active_null/null_model_builder.rb, line 7 def initialize(model, overrides) @model = model @overrides = overrides end
Public Instance Methods
applied_decorators()
click to toggle source
# File lib/active_null/null_model_builder.rb, line 71 def applied_decorators [] end
blank?()
click to toggle source
# File lib/active_null/null_model_builder.rb, line 50 def blank? true end
build()
click to toggle source
# File lib/active_null/null_model_builder.rb, line 12 def build model = self.model null = Naught.build do |config| config.impersonate model model.reflect_on_all_associations.each do |relation| klass = begin if relation.options[:polymorphic] model.polymorphic_null_defaults[relation.name].constantize else relation.klass end rescue nil end next unless klass if relation.collection? define_method(relation.name) { klass.none } else define_method(relation.name) do return unless klass.respond_to? :null klass.null end end end model.column_defaults.each do |field, default| define_method(field.to_sym) { default } end def nil? true end def present? false end def blank? true end def to_json '{}' end if Object.const_defined? 'Draper' def decorate(options = {}) decorator_class.decorate(self, options) end def decorator_class self.class.decorator_class end def decorator_class? self.class.decorator_class? end def applied_decorators [] end def decorated_with?(decorator_class) false end def decorated? false end end end null.send(:include, Draper::Decoratable) if Object.const_defined? 'Draper' null.send(:include, overrides) if overrides set_null_model null end
decorate(options = {})
click to toggle source
# File lib/active_null/null_model_builder.rb, line 59 def decorate(options = {}) decorator_class.decorate(self, options) end
decorated?()
click to toggle source
# File lib/active_null/null_model_builder.rb, line 79 def decorated? false end
decorated_with?(decorator_class)
click to toggle source
# File lib/active_null/null_model_builder.rb, line 75 def decorated_with?(decorator_class) false end
decorator_class()
click to toggle source
# File lib/active_null/null_model_builder.rb, line 63 def decorator_class self.class.decorator_class end
decorator_class?()
click to toggle source
# File lib/active_null/null_model_builder.rb, line 67 def decorator_class? self.class.decorator_class? end
full_name()
click to toggle source
# File lib/active_null/null_model_builder.rb, line 94 def full_name return name if module_parent == Object "#{module_parent_name}::#{name}" end
name()
click to toggle source
# File lib/active_null/null_model_builder.rb, line 89 def name base_name = model.name.split('::').last "Null#{base_name}" end
nil?()
click to toggle source
# File lib/active_null/null_model_builder.rb, line 42 def nil? true end
present?()
click to toggle source
# File lib/active_null/null_model_builder.rb, line 46 def present? false end
set_null_model(null)
click to toggle source
# File lib/active_null/null_model_builder.rb, line 99 def set_null_model(null) module_parent.const_set name, null end
to_json()
click to toggle source
# File lib/active_null/null_model_builder.rb, line 54 def to_json '{}' end
Private Instance Methods
module_parent()
click to toggle source
# File lib/active_null/null_model_builder.rb, line 105 def module_parent @module_parent ||= model.try(:module_parent) || model.parent end
module_parent_name()
click to toggle source
# File lib/active_null/null_model_builder.rb, line 109 def module_parent_name @module_parent_name ||= model.try(:module_parent_name) || model.parent.name end