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

<<(record, *args)
Alias for: put
[]=(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