class ReactiveRecord::Base::DummyValue

DummyValue uses the ActiveRecord type info to act like an appropriate loaded value.

Public Class Methods

dummy_date() click to toggle source
# File lib/reactive_record/active_record/reactive_record/dummy_value.rb, line 188
def self.dummy_date
  @dummy_date ||= Date.parse('1/1/2001')
end
dummy_time() click to toggle source
# File lib/reactive_record/active_record/reactive_record/dummy_value.rb, line 184
def self.dummy_time
  @dummy_time ||= Time.parse('2001-01-01T00:00:00.000-00:00')
end
new(column_hash = nil) click to toggle source
# File lib/reactive_record/active_record/reactive_record/dummy_value.rb, line 25
def initialize(column_hash = nil)
  column_hash ||= {}
  notify
  @column_hash = column_hash
  column_type = (
    @column_hash[:sql_type_metadata] &&
    @column_hash[:sql_type_metadata][:type]
  ) || 'nil'
  default_value_method = "build_default_value_for_#{column_type}"
  @object = __send__ default_value_method
rescue Exception
end

Public Instance Methods

!() click to toggle source
# File lib/reactive_record/active_record/reactive_record/dummy_value.rb, line 105
def !
  true
end
==(other) click to toggle source
# File lib/reactive_record/active_record/reactive_record/dummy_value.rb, line 132
def ==(other)
  # notify # why are we not notifying here
  other.object_id == object_id
end
acts_as_string?() click to toggle source
# File lib/reactive_record/active_record/reactive_record/dummy_value.rb, line 204
def acts_as_string?
  return true if @object.is_a? String
  return @object.acts_as_string? if @object
  true
end
build_default_value_for_bigint()
build_default_value_for_boolean() click to toggle source
# File lib/reactive_record/active_record/reactive_record/dummy_value.rb, line 61
def build_default_value_for_boolean
  @column_hash[:default] || false
end
build_default_value_for_date() click to toggle source
# File lib/reactive_record/active_record/reactive_record/dummy_value.rb, line 53
def build_default_value_for_date
  if @column_hash[:default]
    Date.parse(@column_hash[:default])
  else
    ::ReactiveRecord::Base::DummyValue.dummy_date
  end
end
build_default_value_for_datetime() click to toggle source
# File lib/reactive_record/active_record/reactive_record/dummy_value.rb, line 42
def build_default_value_for_datetime
  if @column_hash[:default]
    Time.parse(@column_hash[:default].gsub(' ','T')+'+00:00')
  else
    ::ReactiveRecord::Base::DummyValue.dummy_time
  end
end
build_default_value_for_decimal()
build_default_value_for_float() click to toggle source
# File lib/reactive_record/active_record/reactive_record/dummy_value.rb, line 65
def build_default_value_for_float
  @column_hash[:default] || Float(0.0)
end
build_default_value_for_integer() click to toggle source
# File lib/reactive_record/active_record/reactive_record/dummy_value.rb, line 71
def build_default_value_for_integer
  @column_hash[:default] || Integer(0)
end
build_default_value_for_nil() click to toggle source
# File lib/reactive_record/active_record/reactive_record/dummy_value.rb, line 38
def build_default_value_for_nil
  @column_hash[:default] || nil
end
build_default_value_for_string() click to toggle source
# File lib/reactive_record/active_record/reactive_record/dummy_value.rb, line 77
def build_default_value_for_string
  @column_hash[:default] || ''
end
Also aliased as: build_default_value_for_text
build_default_value_for_text()
build_default_value_for_time()
build_default_value_for_timestamp()
coerce(s) click to toggle source
# File lib/reactive_record/active_record/reactive_record/dummy_value.rb, line 126
def coerce(s)
  # notify # why are we not notifying here
  return @object.coerce(s) if @object
  [__send__("to_#{s.class.name.downcase}"), s]
end
inspect()
Alias for: to_s
is_a?(klass) click to toggle source
# File lib/reactive_record/active_record/reactive_record/dummy_value.rb, line 141
def is_a?(klass)
  klass == ::ReactiveRecord::Base::DummyValue
end
loaded?() click to toggle source
# File lib/reactive_record/active_record/reactive_record/dummy_value.rb, line 93
def loaded?
  false
end
loading?() click to toggle source
# File lib/reactive_record/active_record/reactive_record/dummy_value.rb, line 89
def loading?
  true
end
method_missing(method, *args, &block) click to toggle source
Calls superclass method
# File lib/reactive_record/active_record/reactive_record/dummy_value.rb, line 109
def method_missing(method, *args, &block)
  if method =~ /^build_default_value_for_/
    nil
  elsif @object || @object.respond_to?(method)
    notify
    @object.send method, *args, &block
  elsif 0.respond_to? method
    notify
    0.send(method, *args, &block)
  elsif ''.respond_to? method
    notify
    ''.send(method, *args, &block)
  else
    super
  end
end
nil?() click to toggle source
# File lib/reactive_record/active_record/reactive_record/dummy_value.rb, line 101
def nil?
  true
end
notify() click to toggle source
# File lib/reactive_record/active_record/reactive_record/dummy_value.rb, line 83
def notify
  return if ReactiveRecord::Base.data_loading?
  ReactiveRecord.loads_pending!
  ReactiveRecord::WhileLoading.loading!
end
object_id() click to toggle source
# File lib/reactive_record/active_record/reactive_record/dummy_value.rb, line 137
def object_id
  `self.$$id`
end
present?() click to toggle source
# File lib/reactive_record/active_record/reactive_record/dummy_value.rb, line 97
def present?
  false
end
to_date() click to toggle source
# File lib/reactive_record/active_record/reactive_record/dummy_value.rb, line 192
def to_date
  notify
  return @object.to_date if @object
  ReactiveRecord::Base::DummyValue.dummy_date
end
to_f() click to toggle source
# File lib/reactive_record/active_record/reactive_record/dummy_value.rb, line 160
def to_f
  notify
  return @object.to_f if @object
  0.0
end
to_i() click to toggle source
# File lib/reactive_record/active_record/reactive_record/dummy_value.rb, line 166
def to_i
  notify
  return @object.to_i if @object
  0
end
to_number() click to toggle source
# File lib/reactive_record/active_record/reactive_record/dummy_value.rb, line 178
def to_number
  notify
  return @object.to_number if @object
  0
end
to_numeric() click to toggle source
# File lib/reactive_record/active_record/reactive_record/dummy_value.rb, line 172
def to_numeric
  notify
  return @object.to_numeric if @object
  0
end
to_s() click to toggle source
# File lib/reactive_record/active_record/reactive_record/dummy_value.rb, line 150
def to_s
  notify
  return @object.to_s if @object
  ''
end
Also aliased as: inspect
to_time() click to toggle source
# File lib/reactive_record/active_record/reactive_record/dummy_value.rb, line 198
def to_time
  notify
  return @object.to_time if @object
  ReactiveRecord::Base::DummyValue.dummy_time
end
try(*args) { |self| ... } click to toggle source
# File lib/reactive_record/active_record/reactive_record/dummy_value.rb, line 210
def try(*args, &b)
  if args.empty? && block_given?
    yield self
  else
    __send__(*args, &b)
  end
rescue
  nil
end
zero?() click to toggle source
# File lib/reactive_record/active_record/reactive_record/dummy_value.rb, line 145
def zero?
  return @object.zero? if @object
  false
end