Sha256: 7f16e5162288d3be75235f7fe314b5bb81dfc028f62d0b7164c51caa9c965d27
Contents?: true
Size: 1.58 KB
Versions: 1
Compression:
Stored size: 1.58 KB
Contents
require "easy_rails_money/active_record/money_dsl" require "easy_rails_money/active_record/migration/schema_statements" require "easy_rails_money/active_record/migration/table" require "easy_rails_money/active_record/migration/table_definition" require "easy_rails_money/money_validator" ActiveRecord::Base.send :include, EasyRailsMoney::ActiveRecord::MoneyDsl ActiveRecord::Migration.send :include, EasyRailsMoney::ActiveRecord::Migration::SchemaStatements ActiveRecord::ConnectionAdapters::TableDefinition.send :include, EasyRailsMoney::ActiveRecord::Migration::TableDefinition ActiveRecord::ConnectionAdapters::Table.send :include, EasyRailsMoney::ActiveRecord::Migration::Table class ActiveRecord::Base def self.validates_money *args options = args.extract_options! validates_with EasyRailsMoney::MoneyValidator, options.merge(:attributes => args) # validates lower-level columns args.each do |column_name| validates "#{column_name}_money", :numericality => { only_integer: true, greater_than_or_equal_to: 0 }, :allow_nil => options[:allow_nil] end allowed_currency = options[:allowed_currency] || EasyRailsMoney::MoneyValidator.currency_list if single_currency? # TODO: a version of inclusion_in validator that can compare # Symbol and string validates :currency, :inclusion => { in: allowed_currency }, :allow_nil => options[:allow_nil] else args.each do |column_name| validates "#{column_name}_currency", :presence => true, :inclusion => { in: allowed_currency }, :allow_nil => options[:allow_nil] end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
easy_rails_money-0.0.9.pre1 | lib/easy_rails_money/active_record.rb |