Sha256: 5994bb79019730924d2d8917dea1a770a11349f28e871d9dbebf64cc0d528496

Contents?: true

Size: 744 Bytes

Versions: 4

Compression:

Stored size: 744 Bytes

Contents

require 'money'

module CollectiveIdea #:nodoc:
  module Acts
    module Money #:nodoc:
      def self.included(base) #:nodoc:
        base.extend ClassMethods
      end

      module ClassMethods
        
        def default_currency
          'USD'
        end
        
        def money(name, options = {})
          options = {:cents => "#{name}_in_cents".to_sym, :currency => default_currency}.merge(options)
          mapping = [[options[:cents].to_s, 'cents']]
          mapping << [options[:currency].to_s, 'currency'] if options[:currency]
          
          composed_of name, :class_name => 'Money', :allow_nil => true, :mapping => mapping,
            :converter => lambda {|m| m.to_money }
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
brisk-bills-0.8.2 vendor/plugins/acts_as_money/lib/acts_as_money.rb
brisk-bills-0.8.1 vendor/plugins/acts_as_money/lib/acts_as_money.rb
brisk-bills-0.7.0 vendor/plugins/acts_as_money/lib/acts_as_money.rb
brisk-bills-0.6.0 vendor/plugins/acts_as_money/lib/acts_as_money.rb