Sha256: a4340d8bfb0491ea8b8b2b513c392b5f9f8f0365d5066e0dfa41d445a0835758

Contents?: true

Size: 1.14 KB

Versions: 10

Compression:

Stored size: 1.14 KB

Contents

module Bankserv
  module Transmission
    module UserSet
  
      class Document < Set
    
        before_save :decorate_records
    
        def self.generate(options)
          set = self.new
          set.build_header(options)
          set.build_trailer(no_of_recs: options[:no_of_recs])
          set
        end
    
        def build_header(options = {})
          defaults = {
            client_code: Bankserv::Configuration.active.client_code,
            client_name: Bankserv::Configuration.active.client_name,
            date: Date.today.strftime("%Y%m%d"),
            destination: "0"
          }
          
          records.build(record_type: "header", data: defaults.merge(options))
        end
    
        def build_trailer(options = {})
          options[:no_of_recs] = options[:no_of_recs].to_s
          records.build(record_type: "trailer", data: options)
        end
        
        def decorate_records
          super
          set_trailer_number_of_records
        end
        
        def set_trailer_number_of_records
          trailer.data.merge!(no_of_recs: number_of_records.to_s)
        end
    
      end
  
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
bankserv-0.2.3 lib/bankserv/transmission/set/document.rb
bankserv-0.2.2 lib/bankserv/transmission/set/document.rb
bankserv-0.2.1 lib/bankserv/transmission/set/document.rb
bankserv-0.1.9 lib/bankserv/transmission/set/document.rb
bankserv-0.1.8 lib/bankserv/transmission/set/document.rb
bankserv-0.1.7 lib/bankserv/transmission/set/document.rb
bankserv-0.1.6 lib/bankserv/transmission/set/document.rb
bankserv-0.1.5 lib/bankserv/transmission/set/document.rb
bankserv-0.1.4 lib/bankserv/transmission/set/document.rb
bankserv-0.1.3 lib/bankserv/transmission/set/document.rb