module CouchRest::CastedModel

Public Instance Methods

[](key) click to toggle source
# File lib/couchrest/casted_model.rb, line 23
def [] key
  super(key.to_s)
end
[]=(key, value) click to toggle source
# File lib/couchrest/casted_model.rb, line 19
def []= key, value
  super(key.to_s, value)
end
attributes=(hash) click to toggle source
base_doc() click to toggle source

Gets a reference to the top level extended document that a model is saved inside of

# File lib/couchrest/casted_model.rb, line 29
def base_doc
  return nil unless @casted_by
  @casted_by.base_doc
end
new?() click to toggle source

False if the casted model has already been saved in the containing document

# File lib/couchrest/casted_model.rb, line 36
def new?
  @casted_by.nil? ? true : @casted_by.new?
end
Also aliased as: new_record?
new_record?() click to toggle source
Alias for: new?
update_attributes_without_saving(hash) click to toggle source

Sets the attributes from a hash

# File lib/couchrest/casted_model.rb, line 42
def update_attributes_without_saving(hash)
  hash.each do |k, v|
    raise NoMethodError, "#{k}= method not available, use property :#{k}" unless self.respond_to?("#{k}=")
  end      
  hash.each do |k, v|
    self.send("#{k}=",v)
  end
end
Also aliased as: attributes=

Public Class Methods

included(base) click to toggle source
# File lib/couchrest/casted_model.rb, line 4
def self.included(base)
  base.send(:include, ::CouchRest::Mixins::Callbacks)
  base.send(:include, ::CouchRest::Mixins::Properties)
  base.send(:attr_accessor, :casted_by)
end
new(keys={}) click to toggle source
# File lib/couchrest/casted_model.rb, line 10
def initialize(keys={})
  raise StandardError unless self.is_a? Hash
  apply_all_property_defaults # defined in CouchRest::Mixins::Properties
  super()
  keys.each do |k,v|
    write_attribute(k.to_s, v)
  end if keys
end