Sha256: f4223afe3b6b6b20374bd04ce9ab498ca8faac1e6b0719c42e53705b1e2f3065

Contents?: true

Size: 1.05 KB

Versions: 1

Compression:

Stored size: 1.05 KB

Contents

require "active_model"

require "einvoice/neweb/validator/carrier_id1_validator"
require "einvoice/neweb/validator/carrier_id2_validator"
require "einvoice/neweb/validator/customs_clearance_mark_validator"
require "einvoice/neweb/validator/print_mark_validator"

module Einvoice
  module Neweb
    module Model
      class Base
        include ActiveModel::Model
        include ActiveModel::Validations
        include ActiveModel::Serialization
        include ActiveModel::Serializers::JSON

        def attributes=(hash)
          @invoice_item ||= []
          hash.each do |key, value|
            case key.to_sym
            when :invoice_item
              value.each { |v| @invoice_item << InvoiceItem.new(v) }
            when :contact
              @contact = Contact.new(value)
            when :customer_defined
              @customer_defined = CustomerDefined.new(value)
            else
              send("#{key}=", value)
            end
          end
        end

        def attributes
          instance_values
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
einvoice-0.2.0 lib/einvoice/neweb/model/base.rb