Class: TSV::Transformer
- Inherits:
-
Object
- Object
- TSV::Transformer
- Defined in:
- lib/scout/tsv/transformer.rb
Instance Attribute Summary collapse
-
#dumper ⇒ Object
Returns the value of attribute dumper.
-
#namespace ⇒ Object
Returns the value of attribute namespace.
-
#parser ⇒ Object
Returns the value of attribute parser.
-
#unnamed ⇒ Object
Returns the value of attribute unnamed.
Instance Method Summary collapse
- #[]=(key, value) ⇒ Object
- #all_fields ⇒ Object
- #each(*args, **kwargs, &block) ⇒ Object
- #fields ⇒ Object
- #fields=(fields) ⇒ Object
- #identify_field(name) ⇒ Object
- #include?(*args) ⇒ Boolean
-
#initialize(parser, dumper = nil, unnamed: nil, namespace: nil) ⇒ Transformer
constructor
A new instance of Transformer.
- #key_field ⇒ Object
- #key_field=(key_field) ⇒ Object
- #options ⇒ Object
- #sep=(sep) ⇒ Object
- #stream ⇒ Object
- #traverse(*args, **kwargs, &block) ⇒ Object
- #tsv(*args) ⇒ Object
- #type ⇒ Object
- #type=(type) ⇒ Object
- #with_unnamed ⇒ Object
Constructor Details
#initialize(parser, dumper = nil, unnamed: nil, namespace: nil) ⇒ Transformer
Returns a new instance of Transformer.
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/scout/tsv/transformer.rb', line 5 def initialize(parser, dumper = nil, unnamed: nil, namespace: nil) if TSV::Parser === parser @parser = parser elsif TSV === parser @parser = parser @unnamed = parser.unnamed else @parser = TSV::Parser.new parser end @unnamed = unnamed unless unnamed.nil? if dumper.nil? @dumper = TSV::Dumper.new(@parser) @dumper.sep = "\t" else @dumper = dumper end end |
Instance Attribute Details
#dumper ⇒ Object
Returns the value of attribute dumper.
3 4 5 |
# File 'lib/scout/tsv/transformer.rb', line 3 def dumper @dumper end |
#namespace ⇒ Object
Returns the value of attribute namespace.
3 4 5 |
# File 'lib/scout/tsv/transformer.rb', line 3 def namespace @namespace end |
#parser ⇒ Object
Returns the value of attribute parser.
3 4 5 |
# File 'lib/scout/tsv/transformer.rb', line 3 def parser @parser end |
#unnamed ⇒ Object
Returns the value of attribute unnamed.
3 4 5 |
# File 'lib/scout/tsv/transformer.rb', line 3 def unnamed @unnamed end |
Instance Method Details
#[]=(key, value) ⇒ Object
103 104 105 106 |
# File 'lib/scout/tsv/transformer.rb', line 103 def []=(key, value) @dumper.init if @dumper.respond_to?(:init) && ! @dumper.initialized @dumper.add key, value end |
#all_fields ⇒ Object
56 57 58 59 |
# File 'lib/scout/tsv/transformer.rb', line 56 def all_fields return nil if fields.nil? [key_field] + fields end |
#each(*args, **kwargs, &block) ⇒ Object
81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/scout/tsv/transformer.rb', line 81 def each(*args, **kwargs, &block) kwargs[:into] = @dumper kwargs[:bar] = "Transform #{Log.fingerprint @parser} into #{Log.fingerprint @target}" if TrueClass === kwargs[:bar] @dumper.namespace ||= @namespace @dumper.init if @dumper.respond_to?(:init) && ! @dumper.initialized Open.traverse(@parser, *args, **kwargs) do |k,v| NamedArray.setup(v, @parser.fields, k) unless @unnamed block.call k, v [k, v] end end |
#fields ⇒ Object
52 53 54 |
# File 'lib/scout/tsv/transformer.rb', line 52 def fields @dumper.fields end |
#fields=(fields) ⇒ Object
28 29 30 |
# File 'lib/scout/tsv/transformer.rb', line 28 def fields=(fields) @dumper.fields = fields end |
#identify_field(name) ⇒ Object
65 66 67 |
# File 'lib/scout/tsv/transformer.rb', line 65 def identify_field(name) TSV.identify_field key_field, fields, name end |
#include?(*args) ⇒ Boolean
44 45 46 |
# File 'lib/scout/tsv/transformer.rb', line 44 def include?(*args) false end |
#key_field ⇒ Object
48 49 50 |
# File 'lib/scout/tsv/transformer.rb', line 48 def key_field @dumper.key_field end |
#key_field=(key_field) ⇒ Object
24 25 26 |
# File 'lib/scout/tsv/transformer.rb', line 24 def key_field=(key_field) @dumper.key_field = key_field end |
#options ⇒ Object
61 62 63 |
# File 'lib/scout/tsv/transformer.rb', line 61 def @dumper. end |
#sep=(sep) ⇒ Object
40 41 42 |
# File 'lib/scout/tsv/transformer.rb', line 40 def sep=(sep) @dumper.sep = sep end |
#stream ⇒ Object
108 109 110 |
# File 'lib/scout/tsv/transformer.rb', line 108 def stream @dumper.stream end |
#traverse(*args, **kwargs, &block) ⇒ Object
69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/scout/tsv/transformer.rb', line 69 def traverse(*args, **kwargs, &block) kwargs[:into] = @dumper kwargs[:bar] = "Transform #{Log.fingerprint @parser} into #{Log.fingerprint @target}" if TrueClass === kwargs[:bar] @dumper.namespace ||= @namespace @dumper.init if @dumper.respond_to?(:init) && ! @dumper.initialized Log.debug "Transform #{Log.fingerprint @parser} into #{Log.fingerprint @dumper}" Open.traverse(@parser, *args, **kwargs) do |k,v| NamedArray.setup(v, @parser.fields, k) unless @unnamed || @parser.fields.nil? block.call k, v end end |
#tsv(*args) ⇒ Object
112 113 114 |
# File 'lib/scout/tsv/transformer.rb', line 112 def tsv(*args) TSV === @dumper ? @dumper : TSV.open(@dumper, *args) end |
#type ⇒ Object
36 37 38 |
# File 'lib/scout/tsv/transformer.rb', line 36 def type @dumper.type end |
#type=(type) ⇒ Object
32 33 34 |
# File 'lib/scout/tsv/transformer.rb', line 32 def type=(type) @dumper.type = type end |
#with_unnamed ⇒ Object
93 94 95 96 97 98 99 100 101 |
# File 'lib/scout/tsv/transformer.rb', line 93 def with_unnamed begin old_unnamed = @unnamed @unnamed = true yield ensure @unnamed = old_unnamed end end |