class Money

from github.com/RubyMoney/money-rails/blob/master/lib/money-rails/mongoid/money.rb

Public Class Methods

demongoize(object) click to toggle source

Get the object as it was stored in the database, and instantiate this custom class from it.

# File lib/mongoid_money_field/field.rb, line 17
def demongoize(object)
  if object.is_a?(Hash)
    object = object.symbolize_keys
    object.has_key?(:cents) ? ::Money.new(object[:cents], object[:currency_iso]) : nil
  else
    nil
  end
end
evolve(object) click to toggle source

Converts the object that was supplied to a criteria and converts it into a database friendly form.

# File lib/mongoid_money_field/field.rb, line 42
def evolve(object)
  case object
    when Money then object.mongoize
    else object
  end
end
mongoize(object) click to toggle source

Takes any possible object and converts it to how it would be stored in the database.

# File lib/mongoid_money_field/field.rb, line 28
def mongoize(object)
  case
    when object.is_a?(Money) then object.mongoize
    when object.is_a?(Hash) then
      object.symbolize_keys! if object.respond_to?(:symbolize_keys!)
      ::Money.new(object[:cents], object[:currency_iso]).mongoize
    when object.respond_to?(:to_money) then
      object.to_money.mongoize
    else object
  end
end

Public Instance Methods

mongoize() click to toggle source

Converts an object of this instance into a database friendly value.

# File lib/mongoid_money_field/field.rb, line 6
def mongoize
  {
      :cents => cents,
      :currency_iso => currency.iso_code
  }
end