Sha256: d3bc1fb51d7e779a371a994cee63204b19142602e4acc24e92e0fab22e929660
Contents?: true
Size: 1.3 KB
Versions: 2
Compression:
Stored size: 1.3 KB
Contents
# coding: utf-8 class Money # Converts an object of this instance into a database friendly value. def mongoize { :cents => cents, :currency_iso => currency.iso_code } end class << self # Get the object as it was stored in the database, and instantiate # this custom class from it. 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 # Takes any possible object and converts it to how it would be # stored in the database. 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 # Converts the object that was supplied to a criteria and converts it # into a database friendly form. def evolve(object) case object when Money then object.mongoize else object end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
mongoid_money_field-4.0.1 | lib/mongoid_money_field/field.rb |
mongoid_money_field-4.0.0 | lib/mongoid_money_field/field.rb |