class ArtirixDataModels::ActiveNull::NullModelBuilder

Attributes

model[R]
overrides[R]

Public Class Methods

new(model, overrides) click to toggle source
# File lib/artirix_data_models/active_null.rb, line 21
def initialize(model, overrides)
  @model     = model
  @overrides = overrides
end

Public Instance Methods

applied_decorators() click to toggle source
# File lib/artirix_data_models/active_null.rb, line 108
def applied_decorators
  []
end
blank?() click to toggle source
# File lib/artirix_data_models/active_null.rb, line 40
def blank?
  true
end
build() click to toggle source
# File lib/artirix_data_models/active_null.rb, line 26
def build
  model = self.model
  null  = Naught.build do |config|
    config.impersonate model
    config.predicates_return false

    def nil?
      true
    end

    def present?
      false
    end

    def blank?
      true
    end

    def to_json
      '{}'
    end

    ##########################
    # ACTIVE MODEL COMPLIANT #
    ##########################

    def to_model
      self
    end

    def to_partial_path
      model._to_partial_path
    end

    def persisted?
      true
    end

    def valid?
      true
    end

    def new_record?
      false
    end

    def destroyed?
      false
    end

    def errors
      obj = Object.new

      def obj.[](key)
        []
      end

      def obj.full_messages()
        []
      end

      obj
    end


    ##########
    # DRAPER #
    ##########

    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
  null.send(:include, ArtirixDataModels::Model::ActiveModelCompliant)
  set_null_model null
end
decorate(options = {}) click to toggle source
# File lib/artirix_data_models/active_null.rb, line 96
def decorate(options = {})
  decorator_class.decorate(self, options)
end
decorated?() click to toggle source
# File lib/artirix_data_models/active_null.rb, line 116
def decorated?
  false
end
decorated_with?(decorator_class) click to toggle source
# File lib/artirix_data_models/active_null.rb, line 112
def decorated_with?(decorator_class)
  false
end
decorator_class() click to toggle source
# File lib/artirix_data_models/active_null.rb, line 100
def decorator_class
  self.class.decorator_class
end
decorator_class?() click to toggle source
# File lib/artirix_data_models/active_null.rb, line 104
def decorator_class?
  self.class.decorator_class?
end
destroyed?() click to toggle source
# File lib/artirix_data_models/active_null.rb, line 72
def destroyed?
  false
end
errors() click to toggle source
# File lib/artirix_data_models/active_null.rb, line 76
def errors
  obj = Object.new

  def obj.[](key)
    []
  end

  def obj.full_messages()
    []
  end

  obj
end
full_name() click to toggle source
# File lib/artirix_data_models/active_null.rb, line 132
def full_name
  return name if model.parent == Object
  "#{model.parent.name}::#{name}"
end
name() click to toggle source
# File lib/artirix_data_models/active_null.rb, line 127
def name
  base_name = model.name.split('::').last
  "Null#{base_name}"
end
new_record?() click to toggle source
# File lib/artirix_data_models/active_null.rb, line 68
def new_record?
  false
end
nil?() click to toggle source
# File lib/artirix_data_models/active_null.rb, line 32
def nil?
  true
end
persisted?() click to toggle source
# File lib/artirix_data_models/active_null.rb, line 60
def persisted?
  true
end
present?() click to toggle source
# File lib/artirix_data_models/active_null.rb, line 36
def present?
  false
end
set_null_model(null) click to toggle source
# File lib/artirix_data_models/active_null.rb, line 137
def set_null_model(null)
  model.parent.const_set name, null
end
to_json() click to toggle source
# File lib/artirix_data_models/active_null.rb, line 44
def to_json
  '{}'
end
to_model() click to toggle source

ACTIVE MODEL COMPLIANT #

# File lib/artirix_data_models/active_null.rb, line 52
def to_model
  self
end
to_partial_path() click to toggle source
# File lib/artirix_data_models/active_null.rb, line 56
def to_partial_path
  model._to_partial_path
end
valid?() click to toggle source
# File lib/artirix_data_models/active_null.rb, line 64
def valid?
  true
end