class Midos::Writer
Constants
- DEFAULT_IO
Public Class Methods
new(options = {})
click to toggle source
Calls superclass method
Midos::Base::new
# File lib/midos/writer.rb 66 def initialize(options = {}) 67 @sort = options[:sort] 68 super 69 end
open(*args, &block)
click to toggle source
# File lib/midos/writer.rb 47 def open(*args, &block) 48 file_method(nil, 'wb', *args, &block) 49 end
transform(value, vs, nl)
click to toggle source
# File lib/midos/writer.rb 51 def transform(value, vs, nl) 52 rvs, rnl = replacements_for(vs, nl) 53 54 value = !value.is_a?(Array) ? 55 value.to_s.gsub(vs, rvs) : 56 value.map { |v| v.gsub(vs, rvs) }.join(vs) 57 58 value.gsub!(nl, rnl) 59 value.gsub!(/\r\n?|\n/, nl) 60 61 value 62 end
write(*args, &block)
click to toggle source
# File lib/midos/writer.rb 39 def write(*args, &block) 40 new(args.extract_options!, &block).write(*args) 41 end
write_file(*args, &block)
click to toggle source
# File lib/midos/writer.rb 43 def write_file(*args, &block) 44 file_method(:write, 'wb', *args, &block) 45 end
Public Instance Methods
[]=(id, record)
click to toggle source
# File lib/midos/writer.rb 94 def []=(id, record) 95 write_i(id, record) 96 end
put(record, *args)
click to toggle source
# File lib/midos/writer.rb 84 def put(record, *args) 85 record.is_a?(Hash) ? 86 write_i(nil, record, *args) : 87 write_i(*args.unshift(*record)) 88 89 self 90 end
Also aliased as: <<
vs=(vs)
click to toggle source
# File lib/midos/writer.rb 71 def vs=(vs) 72 vs.is_a?(String) ? @vs = vs : raise(TypeError, 73 "wrong argument type #{vs.class} (expected String)") 74 end
write(records, *args)
click to toggle source
# File lib/midos/writer.rb 76 def write(records, *args) 77 !records.is_a?(Hash) ? 78 records.each { |record| write_i(nil, record, *args) } : 79 records.each { |id, record| write_i(id, record, *args) } 80 81 self 82 end
Private Instance Methods
transform(value)
click to toggle source
# File lib/midos/writer.rb 115 def transform(value) 116 self.class.transform(value, vs, nl) 117 end
write_i(id, record, io = io())
click to toggle source
# File lib/midos/writer.rb 100 def write_i(id, record, io = io()) 101 return if record.empty? 102 103 if key && !record.key?(key) 104 record = { key => id || auto_id.call }.update(record) 105 end 106 107 (@sort ? Hash[record.sort] : record).each { |k, v| 108 k ? io << k << fs << transform(v) << le : 109 Array(v).each { |w| io << w.to_s << le } if v 110 } 111 112 io << rs << le << le 113 end