Module: MoneyAttribute
- Defined in:
- lib/money_attribute/type.rb,
lib/money_attribute/macro.rb,
lib/money_attribute/query.rb,
lib/money_attribute/current.rb,
lib/money_attribute/railtie.rb,
lib/money_attribute/version.rb,
lib/money_attribute/converter.rb,
lib/money_attribute/query/sum.rb,
lib/money_attribute/query/pick.rb,
lib/money_attribute/query/pluck.rb,
lib/money_attribute/money_amount.rb,
lib/money_attribute/configuration.rb,
lib/money_attribute/query/helpers.rb,
lib/money_attribute/attribute_spec.rb,
lib/money_attribute/query/amount_order.rb,
lib/money_attribute/form_builder_extension.rb,
lib/money_attribute/query/amount_condition.rb,
lib/money_attribute/attribute_spec_registry.rb,
lib/money_attribute/query/currency_condition.rb,
lib/money_attribute/migration_extensions/helper.rb,
lib/generators/money_attribute/initializer_generator.rb,
lib/money_attribute/migration_extensions/table_definition.rb,
lib/money_attribute/migration_extensions/schema_statements.rb
Defined Under Namespace
Modules: AmountCondition, AmountOrder, AttributeSpecRegistry, CurrencyCondition, FormBuilderExtension, Generators, Macro, MigrationExtensions, MoneyAmount, PickAmount, PluckAmount, Query, QueryHelpers, QueryMethods, SumAmount Classes: AmountType, AttributeSpec, Config, Converter, Current, DecimalAmountType, IntegerAmountType, Railtie
Constant Summary collapse
- VERSION =
'1.2.0'- CONFIG_MUTEX =
Mutex.new
- INTEGER_CONSTRUCTOR =
lambda do |amount, currency| next nil if amount.nil? resolved = Money::Currency.resolve(currency.presence || MoneyAttribute.default_currency) || 'XXX' Mint::Money.from_subunits(amount, resolved) end.freeze
- DECIMAL_CONSTRUCTOR =
lambda do |amount, currency| next nil if amount.nil? resolved = Money::Currency.resolve(currency.presence || MoneyAttribute.default_currency) || 'XXX' Mint::Money.from(amount, resolved) end.freeze
Class Method Summary collapse
-
.config ⇒ Config
Returns the lazily initialized gem configuration.
-
.configure {|config| ... } ⇒ void
Yields the current configuration object for mutation.
-
.default_currency ⇒ Mint::Currency
Returns the current request or default currency as a resolved currency.
Class Method Details
.config ⇒ Config
Returns the lazily initialized gem configuration.
11 12 13 |
# File 'lib/money_attribute/configuration.rb', line 11 def config CONFIG_MUTEX.synchronize { @config ||= Config.new } end |
.configure {|config| ... } ⇒ void
This method returns an undefined value.
Yields the current configuration object for mutation.
19 |
# File 'lib/money_attribute/configuration.rb', line 19 def configure = yield config |
.default_currency ⇒ Mint::Currency
Returns the current request or default currency as a resolved currency. Memoized per-thread — within a request, Current.currency is stable.
25 26 27 28 29 30 31 32 33 34 |
# File 'lib/money_attribute/configuration.rb', line 25 def default_currency code = MoneyAttribute::Current.currency.presence || config.default_currency last_code, last_currency = Thread.current[:money_attribute_default_currency] return last_currency if last_code == code currency = Money::Currency.resolve!(code) Thread.current[:money_attribute_default_currency] = [code, currency] currency end |