Module: Amount::ActiveRecord

Defined in:
lib/amount/active_record.rb,
lib/amount/active_record/type.rb,
lib/amount/active_record/model.rb,
lib/amount/active_record/amount_validator.rb,
lib/amount/active_record/migration_methods.rb,
lib/amount/active_record/attribute_definition.rb

Overview

Optional Rails integration for ActiveRecord models and migrations.

This file is intentionally opt-in. Requiring ‘“amount/active_record”` extends ActiveRecord table definitions with `t.amount` and models with `has_amount`.

Examples:

Loading the integration in a Rails app

require "amount/active_record"

class Holding < ApplicationRecord
  has_amount :amount
  has_amount :fee, symbol: :SOL
end

Defined Under Namespace

Modules: InstanceMethods, MigrationMethods, Model Classes: AmountValidator, AttributeDefinition, Type

Class Method Summary collapse

Class Method Details

.install!void

This method returns an undefined value.

Installs the migration DSL and model macros into ActiveRecord.

This is called automatically when the file is required.



32
33
34
35
36
37
38
39
40
# File 'lib/amount/active_record.rb', line 32

def self.install!
  ::ActiveRecord::ConnectionAdapters::TableDefinition.include(MigrationMethods)
  if defined?(::ActiveRecord::ConnectionAdapters::Table)
    ::ActiveRecord::ConnectionAdapters::Table.include(MigrationMethods)
  end

  ::ActiveRecord::Base.extend(Model)
  ::ActiveRecord::Base.include(InstanceMethods)
end