Module: AqBanking::Parsed::DefineField
- Included in:
- Account, Status, Transaction
- Defined in:
- lib/aq_banking/parsed/define_field.rb
Instance Method Summary collapse
Instance Method Details
#define_field(*fields, path: nil, default: nil, &transform_block) ⇒ Object
2 3 4 5 6 7 8 9 10 11 12 13 14 |
# File 'lib/aq_banking/parsed/define_field.rb', line 2 def define_field *fields, path: nil, default: nil, &transform_block fields.each do |field_name| define_method field_name do raise 'tree must be set' if tree.nil? default_block = lambda {|field| field.value } default_path = field_name.to_s.camelize(:lower).to_sym field = tree.query(path || default_path).first field.present? ? (transform_block || default_block).call(field) : default end end end |