Module: Tritech
- Defined in:
- lib/tritech.rb,
lib/tritech/version.rb
Constant Summary collapse
- SPECIFICATION =
Slither.define :tritech do |batch| batch.template :record do |r| r.column :record_type, 3 end batch.template :call_record do |r| r.column :record_type, 3 r.spacer 1 r.column :call_number, 15, :align => :left #pkey r.column :leg, 1, :type => :integer, :align =>:right, :padding=>:zero r.column :patient_rank, 1 end batch.header do |header| header.trap { |line| line[0,3] == 'HDR'} header.template :record header.column :batch_number, 6, :padding => :zero end dir = File.join(File.('../lib/tritech',__FILE__), "sections/**/*.rb") Dir[dir].each { |section|batch.instance_eval(File.read(section)) } end
- VERSION =
'0.5.2'
Class Method Summary collapse
Class Method Details
.generate(data) ⇒ Object
38 39 40 41 42 43 44 45 46 47 |
# File 'lib/tritech.rb', line 38 def self.generate(data) builder = [] data.each do |record| section = SPECIFICATION.sections.find { |s| s.match(record[:record_type])} builder << section.format(record) end #Tritech Amazon is a windows product, so it needs #windows style line endings. builder.join("\r\n") end |
.parse(file) ⇒ Object
29 30 31 32 33 34 35 36 |
# File 'lib/tritech.rb', line 29 def self.parse(file) parsed = [] content = File.foreach(file) do |line| section = SPECIFICATION.sections.find { |s|s.match(line)} parsed << section.parse(line) if section end parsed end |
.write(filename, data) ⇒ Object
49 50 51 52 53 |
# File 'lib/tritech.rb', line 49 def self.write(filename, data) File.open(filename, 'w') do |f| f.write generate(data) end end |