Sha256: 1d0843b05f74f656a1e41876f85f4f6a1106f45560a40bc7faa3933f1b212aa8

Contents?: true

Size: 1.24 KB

Versions: 5

Compression:

Stored size: 1.24 KB

Contents

require 'rails_admin/adapters/mongoid'
require 'rails_admin/config/fields/types/string'
module RailsAdmin
  module Adapters
    module Mongoid
      alias_method :type_lookup_without_money, :type_lookup
      def type_lookup(name, field)
        if field.type.to_s == 'Money' || field.type.class.name == 'MoneyType'
          { :type => :money_field }
        else
          type_lookup_without_money(name, field)
        end
      end
    end
  end

  module Config
    module Fields
      module Types
        class MoneyField < RailsAdmin::Config::Fields::Types::String
          # Register field type for the type loader
          RailsAdmin::Config::Fields::Types::register(self)

          register_instance_option :pretty_value do
            ret = if value.class.name == 'Hash'
              value.stringify_keys!
              if value['cents']
                "%.2f" % ::Money.new(value['cents'], value['currency_iso']).to_f
              else
                value
              end
            elsif value.respond_to?(:cents)
              "%.2f" % value.to_f
            else
              value
            end
          end

          register_instance_option :formatted_value do
            pretty_value
          end
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
mongoid_money_field-4.0.8 lib/mongoid_money_field/rails_admin.rb
mongoid_money_field-4.0.7 lib/mongoid_money_field/rails_admin.rb
mongoid_money_field-4.0.6 lib/mongoid_money_field/rails_admin.rb
mongoid_money_field-4.0.5 lib/mongoid_money_field/rails_admin.rb
mongoid_money_field-4.0.4 lib/mongoid_money_field/rails_admin.rb