Sha256: a04786fa321bef54353e2e780b37c989badc152648be5ca60aeaaf27209d09af

Contents?: true

Size: 782 Bytes

Versions: 405

Compression:

Stored size: 782 Bytes

Contents

module TSV
  def self.melt(tsv, key_field, header_field, fields, *info_fields, &block)
    info_fields.unshift header_field
    TSV.traverse tsv, :into => :dumper, :key_field => key_field, :fields => info_fields do |k,values|
      res = fields.zip(values).collect do |field, value|
        info_values = if block_given?
                        new = block.call value
                        next if new.nil?
                        new
                      else
                        [value]
                      end
        info_values.unshift field
        [field, info_values]
      end
      res.extend MultipleResult
      res
    end
  end

  def melt(header_field, *info_fields, &block)
    TSV.melt self, key_field, header_field, fields, *info_fields, &block
  end
end

Version data entries

405 entries across 405 versions & 1 rubygems

Version Path
rbbt-util-5.26.9 lib/rbbt/tsv/melt.rb
rbbt-util-5.26.8 lib/rbbt/tsv/melt.rb
rbbt-util-5.26.6 lib/rbbt/tsv/melt.rb
rbbt-util-5.26.5 lib/rbbt/tsv/melt.rb
rbbt-util-5.26.4 lib/rbbt/tsv/melt.rb
rbbt-util-5.26.3 lib/rbbt/tsv/melt.rb
rbbt-util-5.26.2 lib/rbbt/tsv/melt.rb
rbbt-util-5.26.1 lib/rbbt/tsv/melt.rb
rbbt-util-5.26.0 lib/rbbt/tsv/melt.rb
rbbt-util-5.25.56 lib/rbbt/tsv/melt.rb
rbbt-util-5.25.55 lib/rbbt/tsv/melt.rb
rbbt-util-5.25.53 lib/rbbt/tsv/melt.rb
rbbt-util-5.25.52 lib/rbbt/tsv/melt.rb
rbbt-util-5.25.51 lib/rbbt/tsv/melt.rb
rbbt-util-5.25.50 lib/rbbt/tsv/melt.rb
rbbt-util-5.25.49 lib/rbbt/tsv/melt.rb
rbbt-util-5.25.48 lib/rbbt/tsv/melt.rb
rbbt-util-5.25.47 lib/rbbt/tsv/melt.rb
rbbt-util-5.25.46 lib/rbbt/tsv/melt.rb
rbbt-util-5.25.45 lib/rbbt/tsv/melt.rb