Sha256: da75f89c2e471507f7d48205cbd4f5b71fefca6513717a7c574f9c8f111f8636
Contents?: true
Size: 1.07 KB
Versions: 1
Compression:
Stored size: 1.07 KB
Contents
module TSV def self.melt(tsv, key_field, header_field, fields, *info_fields, &block) dumper = TSV::Dumper.new :key_field => "ID", :fields => [key_field] + info_fields, :type => :list dumper.init TSV.traverse tsv, :into => dumper, :fields => info_fields do |k,values| values = [values] if tsv.type == :flat values = Misc.zip_fields(values) if tsv.type == :double res = [] values.each_with_index do |value,i| info_values = if block_given? new = block.call value next if new.nil? new else value end info_values = [info_values] unless tsv.type == :double id = [k, i] * ":" res << [id, [k] + [info_values].flatten] end res.extend MultipleResult res end end def melt(header_field = nil, *info_fields, &block) info_fields = fields if info_fields.nil? || info_fields.empty? TSV.melt self, key_field, header_field, fields, *info_fields, &block end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rbbt-util-5.26.10 | lib/rbbt/tsv/melt.rb |