Module: Moolah::ChargeClassBuilder
- Defined in:
- lib/moolah/charge_class_builder.rb
Defined Under Namespace
Modules: ClassMethods, InstanceMethods
Class Method Summary collapse
Class Method Details
.build(charge_attributes) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/moolah/charge_class_builder.rb', line 40 def self.build(charge_attributes) Class.new do include Anemic::Model charge_attributes.each do |attr| attribute attr.to_sym, Money, default: Money.zero end extend ClassMethods include InstanceMethods def initialize(construct_attributes = {}) unexpected_attributes = construct_attributes.to_h.keys.reject { |k| self.class.attribute_defaults.include?(k.to_sym) } if unexpected_attributes.any? raise ArgumentError, "unexpected attributes given: #{unexpected_attributes}. Only #{self.attributes.keys} allowed" end super end end end |