sycsvpro 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 667ff2c450da872ce5ad260befa8a88e6ae10a8a
4
- data.tar.gz: acdff20054e66a346444891324926d9b30706162
3
+ metadata.gz: 738f8fd1604b67445b553bb91b955b47ee3731b6
4
+ data.tar.gz: e69dc77c8139f8c80dd7f69d92eccc94f5181e03
5
5
  SHA512:
6
- metadata.gz: 8b6721313dbcaa99e8655ef74889fe812e711ec9321104e247830581d12532f68629818f4bf16452e07b4668058ee5286fc918203e7d565cf639bcd27afbb7f2
7
- data.tar.gz: 69f3acda440ea098a05c4e905ee4dc8bfcd110f05d3093e93c4ba6244a1dc3d60f144c09b4ba1e065ed45a5e4901d362e6b02f29eb869060944c08ab7b124176
6
+ metadata.gz: aa434e1a18c780427d5a7ca3afdd955a2202b458b821a281db35782718bfad2bf1d2d624fc1f32f5cde95cc6a0e85f371a3387e9520de59983ed1f5be4567924
7
+ data.tar.gz: 2c26c5c1b652ef58ac376e369094f2bb40311ea0424ff60ff5489c0767c2de952c0b4b8f50aa68813b3a625df976c605353e5723594d42649f551bff2e3fd6bb
data/bin/sycsvpro CHANGED
@@ -86,11 +86,38 @@ command :collect do |c|
86
86
  end
87
87
  end
88
88
 
89
+ desc 'Allocate specified columns from the file to a key value'
90
+ command :allocate do |c|
91
+ c.desc 'Rows to consider'
92
+ c.arg_name '1,2,10-30|REGEXP'
93
+ c.flag [:r, :row], :must_match => /\d+(?:,\d+|-\d+|,\/.*\/)*|\/.*\/(?:,\/.*\/|\d+)*/
94
+
95
+ c.desc 'Key to allocate columns to'
96
+ c.arg_name '0'
97
+ c.flag [:k, :key], :must_match => /\d+/
98
+
99
+ c.desc 'Columns to allocate'
100
+ c.arg_name '1,2,10-30'
101
+ c.flag [:c, :col], :must_match => /\d+(?:,\d+|-\d+)*/
102
+
103
+ c.action do |global_options,options,args|
104
+ help_now! "You need to provide a file to read data from '-f FILE'" if global_options[:f].nil?
105
+ help_now! "You need to provide a result file '-o OUT_FILE'" if global_options[:o].nil?
106
+
107
+ puts "Allocating ..."
108
+ allocator = Sycsvpro::Allocator.new(infile: global_options[:f], outfile: global_options[:o],
109
+ key: options[:k], rows: options[:r], cols: options[:c])
110
+ allocator.execute
111
+ puts "allocation done"
112
+ end
113
+ end
114
+
89
115
  desc 'Executes the code provided in a file'
90
116
  arg_name 'PRO_FILE METHOD'
91
117
  command :execute do |c|
92
118
  c.action do |global_options,options,args|
93
119
  help_now! "You need to provide a script FILE and a METHOD to call" if args.size < 2
120
+ puts "Executing..."
94
121
  profiler = Sycsvpro::Profiler.new(args[0])
95
122
  profiler.execute(args[1])
96
123
  puts "execute done"
@@ -123,6 +150,7 @@ command :count do |c|
123
150
  help_now! "You need to provide a file to count data from '-f FILE'" if global_options[:f].nil?
124
151
  help_now! "You need to provide a result file '-o OUT_FILE'" if global_options[:o].nil?
125
152
 
153
+ puts "Counting..."
126
154
  counter = Sycsvpro::Counter.new(infile: global_options[:f], outfile: global_options[:o],
127
155
  key: options[:k], rows: options[:r], cols: options[:c],
128
156
  df: options[:df])
@@ -147,6 +175,7 @@ command :map do |c|
147
175
  help_now! "You need to provide a result file '-o OUT_FILE'" if global_options[:o].nil?
148
176
  help_now! "You need to provide a mapping file" if args.size == 0
149
177
 
178
+ puts "Mapping..."
150
179
  mapper = Sycsvpro::Mapper.new(infile: global_options[:f], outfile: global_options[:o],
151
180
  mapping: args[0], rows: options[:r], cols: options[:c])
152
181
  mapper.execute
@@ -177,6 +206,7 @@ command :calc do |c|
177
206
  help_now! "You need to provide a result file '-o OUT_FILE'" if global_options[:o].nil?
178
207
  help_now! "You need to provide the column flag" if options[:c].nil?
179
208
 
209
+ puts "Calculating..."
180
210
  calculator = Sycsvpro::Calculator.new(infile: global_options[:f], outfile: global_options[:o],
181
211
  header: options[:h], rows: options[:r], cols: options[:c])
182
212
  calculator.execute
@@ -0,0 +1,293 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <meta charset="UTF-8">
6
+
7
+ <title>class Sycsvpro::Allocator - Your application title</title>
8
+
9
+ <link href="../fonts.css" rel="stylesheet">
10
+ <link href="../rdoc.css" rel="stylesheet">
11
+
12
+ <script type="text/javascript">
13
+ var rdoc_rel_prefix = "../";
14
+ </script>
15
+
16
+ <script src="../js/jquery.js"></script>
17
+ <script src="../js/navigation.js"></script>
18
+ <script src="../js/search_index.js"></script>
19
+ <script src="../js/search.js"></script>
20
+ <script src="../js/searcher.js"></script>
21
+ <script src="../js/darkfish.js"></script>
22
+
23
+
24
+ <body id="top" role="document" class="class">
25
+ <nav role="navigation">
26
+ <div id="project-navigation">
27
+ <div id="home-section" role="region" title="Quick navigation" class="nav-section">
28
+ <h2>
29
+ <a href="../index.html" rel="home">Home</a>
30
+ </h2>
31
+
32
+ <div id="table-of-contents-navigation">
33
+ <a href="../table_of_contents.html#pages">Pages</a>
34
+ <a href="../table_of_contents.html#classes">Classes</a>
35
+ <a href="../table_of_contents.html#methods">Methods</a>
36
+ </div>
37
+ </div>
38
+
39
+ <div id="search-section" role="search" class="project-section initially-hidden">
40
+ <form action="#" method="get" accept-charset="utf-8">
41
+ <div id="search-field-wrapper">
42
+ <input id="search-field" role="combobox" aria-label="Search"
43
+ aria-autocomplete="list" aria-controls="search-results"
44
+ type="text" name="search" placeholder="Search" spellcheck="false"
45
+ title="Type to search, Up and Down to navigate, Enter to load">
46
+ </div>
47
+
48
+ <ul id="search-results" aria-label="Search Results"
49
+ aria-busy="false" aria-expanded="false"
50
+ aria-atomic="false" class="initially-hidden"></ul>
51
+ </form>
52
+ </div>
53
+
54
+ </div>
55
+
56
+
57
+
58
+ <div id="class-metadata">
59
+
60
+ <div id="parent-class-section" class="nav-section">
61
+ <h3>Parent</h3>
62
+
63
+
64
+ <p class="link"><a href="../Object.html">Object</a>
65
+
66
+ </div>
67
+
68
+
69
+
70
+ <!-- Method Quickref -->
71
+ <div id="method-list-section" class="nav-section">
72
+ <h3>Methods</h3>
73
+
74
+ <ul class="link-list" role="directory">
75
+
76
+ <li ><a href="#method-c-new">::new</a>
77
+
78
+ <li ><a href="#method-i-execute">#execute</a>
79
+
80
+ </ul>
81
+ </div>
82
+
83
+ </div>
84
+ </nav>
85
+
86
+ <main role="main" aria-labelledby="class-Sycsvpro::Allocator">
87
+ <h1 id="class-Sycsvpro::Allocator" class="class">
88
+ class Sycsvpro::Allocator
89
+ </h1>
90
+
91
+ <section class="description">
92
+
93
+ <p>Allocates columns to a key column</p>
94
+
95
+ </section>
96
+
97
+
98
+
99
+
100
+ <section id="5Buntitled-5D" class="documentation-section">
101
+
102
+
103
+
104
+
105
+
106
+
107
+
108
+ <section class="attribute-method-details" class="method-section">
109
+ <header>
110
+ <h3>Attributes</h3>
111
+ </header>
112
+
113
+
114
+ <div id="attribute-i-col_filter" class="method-detail">
115
+ <div class="method-heading attribute-method-heading">
116
+ <span class="method-name">col_filter</span><span
117
+ class="attribute-access-type">[R]</span>
118
+ </div>
119
+
120
+ <div class="method-description">
121
+
122
+ <p><a href="Filter.html">Filter</a> for columns to allocate</p>
123
+
124
+ </div>
125
+ </div>
126
+
127
+ <div id="attribute-i-infile" class="method-detail">
128
+ <div class="method-heading attribute-method-heading">
129
+ <span class="method-name">infile</span><span
130
+ class="attribute-access-type">[R]</span>
131
+ </div>
132
+
133
+ <div class="method-description">
134
+
135
+ <p>File from that values are read</p>
136
+
137
+ </div>
138
+ </div>
139
+
140
+ <div id="attribute-i-key_filter" class="method-detail">
141
+ <div class="method-heading attribute-method-heading">
142
+ <span class="method-name">key_filter</span><span
143
+ class="attribute-access-type">[R]</span>
144
+ </div>
145
+
146
+ <div class="method-description">
147
+
148
+ <p><a href="Filter.html">Filter</a> for the key column that the values are
149
+ allocated at</p>
150
+
151
+ </div>
152
+ </div>
153
+
154
+ <div id="attribute-i-outfile" class="method-detail">
155
+ <div class="method-heading attribute-method-heading">
156
+ <span class="method-name">outfile</span><span
157
+ class="attribute-access-type">[R]</span>
158
+ </div>
159
+
160
+ <div class="method-description">
161
+
162
+ <p>File to that result of allocation is written</p>
163
+
164
+ </div>
165
+ </div>
166
+
167
+ <div id="attribute-i-row_filter" class="method-detail">
168
+ <div class="method-heading attribute-method-heading">
169
+ <span class="method-name">row_filter</span><span
170
+ class="attribute-access-type">[R]</span>
171
+ </div>
172
+
173
+ <div class="method-description">
174
+
175
+ <p><a href="Filter.html">Filter</a> for rows to consider</p>
176
+
177
+ </div>
178
+ </div>
179
+
180
+ </section>
181
+
182
+
183
+
184
+ <section id="public-class-5Buntitled-5D-method-details" class="method-section">
185
+ <header>
186
+ <h3>Public Class Methods</h3>
187
+ </header>
188
+
189
+
190
+ <div id="method-c-new" class="method-detail ">
191
+
192
+ <div class="method-heading">
193
+ <span class="method-name">new</span><span
194
+ class="method-args">(options={})</span>
195
+
196
+ <span class="method-click-advice">click to toggle source</span>
197
+
198
+ </div>
199
+
200
+
201
+ <div class="method-description">
202
+
203
+ <p>Creates a new allocator. Options are infile, outfile, key, rows and columns
204
+ to allocate to key</p>
205
+
206
+
207
+
208
+
209
+ <div class="method-source-code" id="new-source">
210
+ <pre><span class="ruby-comment"># File lib/sycsvpro/allocator.rb, line 19</span>
211
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">options</span>={})
212
+ <span class="ruby-ivar">@infile</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:infile</span>]
213
+ <span class="ruby-ivar">@outfile</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:outfile</span>]
214
+ <span class="ruby-ivar">@key_filter</span> = <span class="ruby-constant">ColumnFilter</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">options</span>[<span class="ruby-value">:key</span>])
215
+ <span class="ruby-ivar">@row_filter</span> = <span class="ruby-constant">RowFilter</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">options</span>[<span class="ruby-value">:rows</span>])
216
+ <span class="ruby-ivar">@col_filter</span> = <span class="ruby-constant">ColumnFilter</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">options</span>[<span class="ruby-value">:cols</span>])
217
+ <span class="ruby-keyword">end</span></pre>
218
+ </div>
219
+
220
+ </div>
221
+
222
+
223
+
224
+
225
+ </div>
226
+
227
+
228
+ </section>
229
+
230
+ <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
231
+ <header>
232
+ <h3>Public Instance Methods</h3>
233
+ </header>
234
+
235
+
236
+ <div id="method-i-execute" class="method-detail ">
237
+
238
+ <div class="method-heading">
239
+ <span class="method-name">execute</span><span
240
+ class="method-args">()</span>
241
+
242
+ <span class="method-click-advice">click to toggle source</span>
243
+
244
+ </div>
245
+
246
+
247
+ <div class="method-description">
248
+
249
+ <p>Executes the allocator and assigns column values to the key</p>
250
+
251
+
252
+
253
+
254
+ <div class="method-source-code" id="execute-source">
255
+ <pre><span class="ruby-comment"># File lib/sycsvpro/allocator.rb, line 28</span>
256
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">execute</span>
257
+ <span class="ruby-identifier">allocation</span> = {}
258
+ <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">infile</span>).<span class="ruby-identifier">each_with_index</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span>, <span class="ruby-identifier">index</span><span class="ruby-operator">|</span>
259
+ <span class="ruby-identifier">row</span> = <span class="ruby-identifier">row_filter</span>.<span class="ruby-identifier">process</span>(<span class="ruby-identifier">line</span>, <span class="ruby-identifier">row</span><span class="ruby-operator">:</span> <span class="ruby-identifier">index</span>)
260
+ <span class="ruby-keyword">next</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">row</span>.<span class="ruby-identifier">nil?</span>
261
+ <span class="ruby-identifier">key</span> = <span class="ruby-identifier">key_filter</span>.<span class="ruby-identifier">process</span>(<span class="ruby-identifier">row</span>)
262
+ <span class="ruby-identifier">allocation</span>[<span class="ruby-identifier">key</span>] = [] <span class="ruby-keyword">if</span> <span class="ruby-identifier">allocation</span>[<span class="ruby-identifier">key</span>].<span class="ruby-identifier">nil?</span>
263
+ <span class="ruby-identifier">allocation</span>[<span class="ruby-identifier">key</span>] <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">col_filter</span>.<span class="ruby-identifier">process</span>(<span class="ruby-identifier">row</span>).<span class="ruby-identifier">split</span>(<span class="ruby-string">&#39;;&#39;</span>)
264
+ <span class="ruby-keyword">end</span>
265
+
266
+ <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">outfile</span>, <span class="ruby-string">&#39;w&#39;</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">out</span><span class="ruby-operator">|</span>
267
+ <span class="ruby-identifier">allocation</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">values</span><span class="ruby-operator">|</span>
268
+ <span class="ruby-identifier">out</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{key};#{values.flatten.uniq.sort.join(&#39;;&#39;)}&quot;</span>
269
+ <span class="ruby-keyword">end</span>
270
+ <span class="ruby-keyword">end</span>
271
+ <span class="ruby-keyword">end</span></pre>
272
+ </div>
273
+
274
+ </div>
275
+
276
+
277
+
278
+
279
+ </div>
280
+
281
+
282
+ </section>
283
+
284
+ </section>
285
+ </main>
286
+
287
+
288
+ <footer id="validator-badges" role="contentinfo">
289
+ <p><a href="http://validator.w3.org/check/referer">Validate</a>
290
+ <p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.1.
291
+ <p>Based on <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
292
+ </footer>
293
+
data/html/Sycsvpro.html CHANGED
@@ -93,6 +93,8 @@
93
93
 
94
94
  <p>Operating csv files</p>
95
95
 
96
+ <p>Operating csv files</p>
97
+
96
98
  <p>Operating csv files</p>
97
99
 
98
100
  </section>
data/html/created.rid CHANGED
@@ -1,6 +1,7 @@
1
- Tue, 18 Feb 2014 21:41:43 +0100
1
+ Wed, 19 Feb 2014 21:12:37 +0100
2
2
  README.rdoc Sun, 16 Feb 2014 22:01:46 +0100
3
- lib/sycsvpro.rb Sun, 16 Feb 2014 21:33:36 +0100
3
+ lib/sycsvpro.rb Wed, 19 Feb 2014 18:42:14 +0100
4
+ lib/sycsvpro/allocator.rb Wed, 19 Feb 2014 20:34:28 +0100
4
5
  lib/sycsvpro/analyzer.rb Tue, 18 Feb 2014 19:57:28 +0100
5
6
  lib/sycsvpro/calculator.rb Tue, 18 Feb 2014 19:53:34 +0100
6
7
  lib/sycsvpro/collector.rb Sun, 16 Feb 2014 20:59:27 +0100
@@ -14,4 +15,4 @@ lib/sycsvpro/mapper.rb Tue, 18 Feb 2014 19:45:47 +0100
14
15
  lib/sycsvpro/profiler.rb Sun, 16 Feb 2014 21:31:39 +0100
15
16
  lib/sycsvpro/row_filter.rb Tue, 18 Feb 2014 19:45:25 +0100
16
17
  lib/sycsvpro/version.rb Tue, 18 Feb 2014 20:01:04 +0100
17
- bin/sycsvpro Sun, 16 Feb 2014 18:17:16 +0100
18
+ bin/sycsvpro Wed, 19 Feb 2014 20:59:05 +0100
data/html/index.html CHANGED
@@ -76,6 +76,8 @@
76
76
 
77
77
  <li><a href="./Sycsvpro.html">Sycsvpro</a>
78
78
 
79
+ <li><a href="./Sycsvpro/Allocator.html">Sycsvpro::Allocator</a>
80
+
79
81
  <li><a href="./Sycsvpro/Analyzer.html">Sycsvpro::Analyzer</a>
80
82
 
81
83
  <li><a href="./Sycsvpro/Calculator.html">Sycsvpro::Calculator</a>
@@ -1 +1 @@
1
- var search_data = {"index":{"searchIndex":["dsl","object","sycsvpro","analyzer","calculator","collector","columnfilter","counter","extractor","filter","header","mapper","profiler","rowfilter","execute()","execute()","execute()","execute()","execute()","execute()","has_filter?()","method_missing()","method_missing()","new()","new()","new()","new()","new()","new()","new()","new()","new()","pivot_each_column()","process()","process()","process()","process()","process_file()","result()","rows()","unstring()","write_result()","write_to()","readme"],"longSearchIndex":["dsl","object","sycsvpro","sycsvpro::analyzer","sycsvpro::calculator","sycsvpro::collector","sycsvpro::columnfilter","sycsvpro::counter","sycsvpro::extractor","sycsvpro::filter","sycsvpro::header","sycsvpro::mapper","sycsvpro::profiler","sycsvpro::rowfilter","sycsvpro::calculator#execute()","sycsvpro::collector#execute()","sycsvpro::counter#execute()","sycsvpro::extractor#execute()","sycsvpro::mapper#execute()","sycsvpro::profiler#execute()","sycsvpro::filter#has_filter?()","sycsvpro::calculator#method_missing()","sycsvpro::filter#method_missing()","sycsvpro::analyzer::new()","sycsvpro::calculator::new()","sycsvpro::collector::new()","sycsvpro::counter::new()","sycsvpro::extractor::new()","sycsvpro::filter::new()","sycsvpro::header::new()","sycsvpro::mapper::new()","sycsvpro::profiler::new()","sycsvpro::filter#pivot_each_column()","sycsvpro::columnfilter#process()","sycsvpro::filter#process()","sycsvpro::header#process()","sycsvpro::rowfilter#process()","sycsvpro::counter#process_file()","sycsvpro::analyzer#result()","dsl#rows()","dsl#unstring()","sycsvpro::counter#write_result()","dsl#write_to()",""],"info":[["Dsl","","Dsl.html","","<p>Methods to be used in customer specific script files\n"],["Object","","Object.html","",""],["Sycsvpro","","Sycsvpro.html","","<p>Operating csv files\n<p>Operating csv files\n<p>Operating csv files\n"],["Sycsvpro::Analyzer","","Sycsvpro/Analyzer.html","","<p>Analyzes the file structure\n"],["Sycsvpro::Calculator","","Sycsvpro/Calculator.html","","<p>Processes arithmetic operations on columns of a csv file. A column value\nhas to be a number. Possible …\n"],["Sycsvpro::Collector","","Sycsvpro/Collector.html","","<p>Collects values from rows and groups them in categories\n"],["Sycsvpro::ColumnFilter","","Sycsvpro/ColumnFilter.html","","<p>Creates a new column filter\n"],["Sycsvpro::Counter","","Sycsvpro/Counter.html","","<p>Creates a new counter that counts values and uses the values as column\nnames and uses the count as the …\n"],["Sycsvpro::Extractor","","Sycsvpro/Extractor.html","","<p>Extracts rows and columns from a csv file\n"],["Sycsvpro::Filter","","Sycsvpro/Filter.html","","<p>Creates a new filter that can be extended by sub-classes. A sub-class needs\nto override the process method …\n"],["Sycsvpro::Header","","Sycsvpro/Header.html","","<p>Creates a header\n"],["Sycsvpro::Mapper","","Sycsvpro/Mapper.html","","<p>Map values to new values described in a mapping file\n"],["Sycsvpro::Profiler","","Sycsvpro/Profiler.html","","<p>A profiler takes a Ruby script and executes the provided method in the\nscript\n"],["Sycsvpro::RowFilter","","Sycsvpro/RowFilter.html","","<p>Filters rows based on provided patterns\n"],["execute","Sycsvpro::Calculator","Sycsvpro/Calculator.html#method-i-execute","()","<p>Executes the calculator\n"],["execute","Sycsvpro::Collector","Sycsvpro/Collector.html#method-i-execute","()","<p>Execute the collector\n"],["execute","Sycsvpro::Counter","Sycsvpro/Counter.html#method-i-execute","()","<p>Executes the counter\n"],["execute","Sycsvpro::Extractor","Sycsvpro/Extractor.html#method-i-execute","()","<p>Executes the extractor\n"],["execute","Sycsvpro::Mapper","Sycsvpro/Mapper.html#method-i-execute","()","<p>Executes the mapper\n"],["execute","Sycsvpro::Profiler","Sycsvpro/Profiler.html#method-i-execute","(method)","<p>Executes the provided method in the Ruby script\n"],["has_filter?","Sycsvpro::Filter","Sycsvpro/Filter.html#method-i-has_filter-3F","()","<p>Checks whether a filter has been set. Returns true if filter has been set\notherwise false\n"],["method_missing","Sycsvpro::Calculator","Sycsvpro/Calculator.html#method-i-method_missing","(id, *args, &block)","<p>Retrieves the values from a row as the result of a arithmetic operation\n"],["method_missing","Sycsvpro::Filter","Sycsvpro/Filter.html#method-i-method_missing","(id, *args, &block)","<p>Creates the filters based on the given patterns\n"],["new","Sycsvpro::Analyzer","Sycsvpro/Analyzer.html#method-c-new","(file)","<p>Creates a new analyzer\n"],["new","Sycsvpro::Calculator","Sycsvpro/Calculator.html#method-c-new","(options={})","<p>Creates a new Calculator. Options expects :infile, :outfile, :rows and\n:columns. Optionally a header …\n"],["new","Sycsvpro::Collector","Sycsvpro/Collector.html#method-c-new","(options={})","<p>Creates a new Collector\n"],["new","Sycsvpro::Counter","Sycsvpro/Counter.html#method-c-new","(options={})","<p>Creates a new counter\n"],["new","Sycsvpro::Extractor","Sycsvpro/Extractor.html#method-c-new","(options={})","<p>Creates a new extractor\n"],["new","Sycsvpro::Filter","Sycsvpro/Filter.html#method-c-new","(values, options={})","<p>Creates a new filter\n"],["new","Sycsvpro::Header","Sycsvpro/Header.html#method-c-new","(header)","<p>Create a new header\n"],["new","Sycsvpro::Mapper","Sycsvpro/Mapper.html#method-c-new","(options={})","<p>Creates new mapper\n"],["new","Sycsvpro::Profiler","Sycsvpro/Profiler.html#method-c-new","(pro_file)","<p>Creates a new profiler\n"],["pivot_each_column","Sycsvpro::Filter","Sycsvpro/Filter.html#method-i-pivot_each_column","(values=[])","<p>Yields the column value and whether the filter matches the column\n"],["process","Sycsvpro::ColumnFilter","Sycsvpro/ColumnFilter.html#method-i-process","(object, options={})","<p>Processes the filter and returns the values that respect the filter\n"],["process","Sycsvpro::Filter","Sycsvpro/Filter.html#method-i-process","(object, options={})","<p>Processes the filter. Needs to be overridden by the sub-class\n"],["process","Sycsvpro::Header","Sycsvpro/Header.html#method-i-process","(line)","<p>Returns the header\n"],["process","Sycsvpro::RowFilter","Sycsvpro/RowFilter.html#method-i-process","(object, options={})","<p>Processes the filter on the given row\n"],["process_file","Sycsvpro::Counter","Sycsvpro/Counter.html#method-i-process_file","()","<p>Processes the counting on the in file\n"],["result","Sycsvpro::Analyzer","Sycsvpro/Analyzer.html#method-i-result","()","<p>Analyzes the file and returns the result\n"],["rows","Dsl","Dsl.html#method-i-rows","(options={})","<p>Retrieves rows and columns from the file and returns them to the block\nprovided by the caller\n"],["unstring","Dsl","Dsl.html#method-i-unstring","(line)","<p>Remove leading and trailing “ and spaces as well as reducing more than 2\nspaces between words from …\n"],["write_result","Sycsvpro::Counter","Sycsvpro/Counter.html#method-i-write_result","()","<p>Writes the results\n"],["write_to","Dsl","Dsl.html#method-i-write_to","(file)","<p>writes values provided by a block to the given file\n"],["README","","README_rdoc.html","","<p>sycsvpro\n<p>Author &mdash; Pierre Sugar (pierre@sugaryourcoffee.de)\n<p>Copyright &mdash; Copyright © 2014 by Pierre Sugar\n"]]}}
1
+ var search_data = {"index":{"searchIndex":["dsl","object","sycsvpro","allocator","analyzer","calculator","collector","columnfilter","counter","extractor","filter","header","mapper","profiler","rowfilter","execute()","execute()","execute()","execute()","execute()","execute()","execute()","has_filter?()","method_missing()","method_missing()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","pivot_each_column()","process()","process()","process()","process()","process_file()","result()","rows()","unstring()","write_result()","write_to()","readme"],"longSearchIndex":["dsl","object","sycsvpro","sycsvpro::allocator","sycsvpro::analyzer","sycsvpro::calculator","sycsvpro::collector","sycsvpro::columnfilter","sycsvpro::counter","sycsvpro::extractor","sycsvpro::filter","sycsvpro::header","sycsvpro::mapper","sycsvpro::profiler","sycsvpro::rowfilter","sycsvpro::allocator#execute()","sycsvpro::calculator#execute()","sycsvpro::collector#execute()","sycsvpro::counter#execute()","sycsvpro::extractor#execute()","sycsvpro::mapper#execute()","sycsvpro::profiler#execute()","sycsvpro::filter#has_filter?()","sycsvpro::calculator#method_missing()","sycsvpro::filter#method_missing()","sycsvpro::allocator::new()","sycsvpro::analyzer::new()","sycsvpro::calculator::new()","sycsvpro::collector::new()","sycsvpro::counter::new()","sycsvpro::extractor::new()","sycsvpro::filter::new()","sycsvpro::header::new()","sycsvpro::mapper::new()","sycsvpro::profiler::new()","sycsvpro::filter#pivot_each_column()","sycsvpro::columnfilter#process()","sycsvpro::filter#process()","sycsvpro::header#process()","sycsvpro::rowfilter#process()","sycsvpro::counter#process_file()","sycsvpro::analyzer#result()","dsl#rows()","dsl#unstring()","sycsvpro::counter#write_result()","dsl#write_to()",""],"info":[["Dsl","","Dsl.html","","<p>Methods to be used in customer specific script files\n"],["Object","","Object.html","",""],["Sycsvpro","","Sycsvpro.html","","<p>Operating csv files\n<p>Operating csv files\n<p>Operating csv files\n"],["Sycsvpro::Allocator","","Sycsvpro/Allocator.html","","<p>Allocates columns to a key column\n"],["Sycsvpro::Analyzer","","Sycsvpro/Analyzer.html","","<p>Analyzes the file structure\n"],["Sycsvpro::Calculator","","Sycsvpro/Calculator.html","","<p>Processes arithmetic operations on columns of a csv file. A column value\nhas to be a number. Possible …\n"],["Sycsvpro::Collector","","Sycsvpro/Collector.html","","<p>Collects values from rows and groups them in categories\n"],["Sycsvpro::ColumnFilter","","Sycsvpro/ColumnFilter.html","","<p>Creates a new column filter\n"],["Sycsvpro::Counter","","Sycsvpro/Counter.html","","<p>Creates a new counter that counts values and uses the values as column\nnames and uses the count as the …\n"],["Sycsvpro::Extractor","","Sycsvpro/Extractor.html","","<p>Extracts rows and columns from a csv file\n"],["Sycsvpro::Filter","","Sycsvpro/Filter.html","","<p>Creates a new filter that can be extended by sub-classes. A sub-class needs\nto override the process method …\n"],["Sycsvpro::Header","","Sycsvpro/Header.html","","<p>Creates a header\n"],["Sycsvpro::Mapper","","Sycsvpro/Mapper.html","","<p>Map values to new values described in a mapping file\n"],["Sycsvpro::Profiler","","Sycsvpro/Profiler.html","","<p>A profiler takes a Ruby script and executes the provided method in the\nscript\n"],["Sycsvpro::RowFilter","","Sycsvpro/RowFilter.html","","<p>Filters rows based on provided patterns\n"],["execute","Sycsvpro::Allocator","Sycsvpro/Allocator.html#method-i-execute","()","<p>Executes the allocator and assigns column values to the key\n"],["execute","Sycsvpro::Calculator","Sycsvpro/Calculator.html#method-i-execute","()","<p>Executes the calculator\n"],["execute","Sycsvpro::Collector","Sycsvpro/Collector.html#method-i-execute","()","<p>Execute the collector\n"],["execute","Sycsvpro::Counter","Sycsvpro/Counter.html#method-i-execute","()","<p>Executes the counter\n"],["execute","Sycsvpro::Extractor","Sycsvpro/Extractor.html#method-i-execute","()","<p>Executes the extractor\n"],["execute","Sycsvpro::Mapper","Sycsvpro/Mapper.html#method-i-execute","()","<p>Executes the mapper\n"],["execute","Sycsvpro::Profiler","Sycsvpro/Profiler.html#method-i-execute","(method)","<p>Executes the provided method in the Ruby script\n"],["has_filter?","Sycsvpro::Filter","Sycsvpro/Filter.html#method-i-has_filter-3F","()","<p>Checks whether a filter has been set. Returns true if filter has been set\notherwise false\n"],["method_missing","Sycsvpro::Calculator","Sycsvpro/Calculator.html#method-i-method_missing","(id, *args, &block)","<p>Retrieves the values from a row as the result of a arithmetic operation\n"],["method_missing","Sycsvpro::Filter","Sycsvpro/Filter.html#method-i-method_missing","(id, *args, &block)","<p>Creates the filters based on the given patterns\n"],["new","Sycsvpro::Allocator","Sycsvpro/Allocator.html#method-c-new","(options={})","<p>Creates a new allocator. Options are infile, outfile, key, rows and columns\nto allocate to key\n"],["new","Sycsvpro::Analyzer","Sycsvpro/Analyzer.html#method-c-new","(file)","<p>Creates a new analyzer\n"],["new","Sycsvpro::Calculator","Sycsvpro/Calculator.html#method-c-new","(options={})","<p>Creates a new Calculator. Options expects :infile, :outfile, :rows and\n:columns. Optionally a header …\n"],["new","Sycsvpro::Collector","Sycsvpro/Collector.html#method-c-new","(options={})","<p>Creates a new Collector\n"],["new","Sycsvpro::Counter","Sycsvpro/Counter.html#method-c-new","(options={})","<p>Creates a new counter\n"],["new","Sycsvpro::Extractor","Sycsvpro/Extractor.html#method-c-new","(options={})","<p>Creates a new extractor\n"],["new","Sycsvpro::Filter","Sycsvpro/Filter.html#method-c-new","(values, options={})","<p>Creates a new filter\n"],["new","Sycsvpro::Header","Sycsvpro/Header.html#method-c-new","(header)","<p>Create a new header\n"],["new","Sycsvpro::Mapper","Sycsvpro/Mapper.html#method-c-new","(options={})","<p>Creates new mapper\n"],["new","Sycsvpro::Profiler","Sycsvpro/Profiler.html#method-c-new","(pro_file)","<p>Creates a new profiler\n"],["pivot_each_column","Sycsvpro::Filter","Sycsvpro/Filter.html#method-i-pivot_each_column","(values=[])","<p>Yields the column value and whether the filter matches the column\n"],["process","Sycsvpro::ColumnFilter","Sycsvpro/ColumnFilter.html#method-i-process","(object, options={})","<p>Processes the filter and returns the values that respect the filter\n"],["process","Sycsvpro::Filter","Sycsvpro/Filter.html#method-i-process","(object, options={})","<p>Processes the filter. Needs to be overridden by the sub-class\n"],["process","Sycsvpro::Header","Sycsvpro/Header.html#method-i-process","(line)","<p>Returns the header\n"],["process","Sycsvpro::RowFilter","Sycsvpro/RowFilter.html#method-i-process","(object, options={})","<p>Processes the filter on the given row\n"],["process_file","Sycsvpro::Counter","Sycsvpro/Counter.html#method-i-process_file","()","<p>Processes the counting on the in file\n"],["result","Sycsvpro::Analyzer","Sycsvpro/Analyzer.html#method-i-result","()","<p>Analyzes the file and returns the result\n"],["rows","Dsl","Dsl.html#method-i-rows","(options={})","<p>Retrieves rows and columns from the file and returns them to the block\nprovided by the caller\n"],["unstring","Dsl","Dsl.html#method-i-unstring","(line)","<p>Remove leading and trailing “ and spaces as well as reducing more than 2\nspaces between words from …\n"],["write_result","Sycsvpro::Counter","Sycsvpro/Counter.html#method-i-write_result","()","<p>Writes the results\n"],["write_to","Dsl","Dsl.html#method-i-write_to","(file)","<p>writes values provided by a block to the given file\n"],["README","","README_rdoc.html","","<p>sycsvpro\n<p>Author &mdash; Pierre Sugar (pierre@sugaryourcoffee.de)\n<p>Copyright &mdash; Copyright © 2014 by Pierre Sugar\n"]]}}
@@ -52,6 +52,9 @@
52
52
  <li class="module">
53
53
  <a href="Sycsvpro.html">Sycsvpro</a>
54
54
  </li>
55
+ <li class="class">
56
+ <a href="Sycsvpro/Allocator.html">Sycsvpro::Allocator</a>
57
+ </li>
55
58
  <li class="class">
56
59
  <a href="Sycsvpro/Analyzer.html">Sycsvpro::Analyzer</a>
57
60
  </li>
@@ -90,15 +93,25 @@
90
93
  <h2 id="methods">Methods</h2>
91
94
  <ul>
92
95
 
96
+ <li class="method">
97
+ <a href="Sycsvpro/Allocator.html#method-c-new">::new</a>
98
+ &mdash;
99
+ <span class="container">Sycsvpro::Allocator</span>
100
+
101
+ <li class="method">
102
+ <a href="Sycsvpro/Extractor.html#method-c-new">::new</a>
103
+ &mdash;
104
+ <span class="container">Sycsvpro::Extractor</span>
105
+
93
106
  <li class="method">
94
107
  <a href="Sycsvpro/Analyzer.html#method-c-new">::new</a>
95
108
  &mdash;
96
109
  <span class="container">Sycsvpro::Analyzer</span>
97
110
 
98
111
  <li class="method">
99
- <a href="Sycsvpro/Profiler.html#method-c-new">::new</a>
112
+ <a href="Sycsvpro/Header.html#method-c-new">::new</a>
100
113
  &mdash;
101
- <span class="container">Sycsvpro::Profiler</span>
114
+ <span class="container">Sycsvpro::Header</span>
102
115
 
103
116
  <li class="method">
104
117
  <a href="Sycsvpro/Calculator.html#method-c-new">::new</a>
@@ -106,14 +119,14 @@
106
119
  <span class="container">Sycsvpro::Calculator</span>
107
120
 
108
121
  <li class="method">
109
- <a href="Sycsvpro/Mapper.html#method-c-new">::new</a>
122
+ <a href="Sycsvpro/Profiler.html#method-c-new">::new</a>
110
123
  &mdash;
111
- <span class="container">Sycsvpro::Mapper</span>
124
+ <span class="container">Sycsvpro::Profiler</span>
112
125
 
113
126
  <li class="method">
114
- <a href="Sycsvpro/Header.html#method-c-new">::new</a>
127
+ <a href="Sycsvpro/Mapper.html#method-c-new">::new</a>
115
128
  &mdash;
116
- <span class="container">Sycsvpro::Header</span>
129
+ <span class="container">Sycsvpro::Mapper</span>
117
130
 
118
131
  <li class="method">
119
132
  <a href="Sycsvpro/Collector.html#method-c-new">::new</a>
@@ -126,29 +139,34 @@
126
139
  <span class="container">Sycsvpro::Counter</span>
127
140
 
128
141
  <li class="method">
129
- <a href="Sycsvpro/Extractor.html#method-c-new">::new</a>
142
+ <a href="Sycsvpro/Filter.html#method-c-new">::new</a>
130
143
  &mdash;
131
- <span class="container">Sycsvpro::Extractor</span>
144
+ <span class="container">Sycsvpro::Filter</span>
132
145
 
133
146
  <li class="method">
134
- <a href="Sycsvpro/Filter.html#method-c-new">::new</a>
147
+ <a href="Sycsvpro/Mapper.html#method-i-execute">#execute</a>
135
148
  &mdash;
136
- <span class="container">Sycsvpro::Filter</span>
149
+ <span class="container">Sycsvpro::Mapper</span>
137
150
 
138
151
  <li class="method">
139
152
  <a href="Sycsvpro/Counter.html#method-i-execute">#execute</a>
140
153
  &mdash;
141
154
  <span class="container">Sycsvpro::Counter</span>
142
155
 
156
+ <li class="method">
157
+ <a href="Sycsvpro/Calculator.html#method-i-execute">#execute</a>
158
+ &mdash;
159
+ <span class="container">Sycsvpro::Calculator</span>
160
+
143
161
  <li class="method">
144
162
  <a href="Sycsvpro/Profiler.html#method-i-execute">#execute</a>
145
163
  &mdash;
146
164
  <span class="container">Sycsvpro::Profiler</span>
147
165
 
148
166
  <li class="method">
149
- <a href="Sycsvpro/Mapper.html#method-i-execute">#execute</a>
167
+ <a href="Sycsvpro/Allocator.html#method-i-execute">#execute</a>
150
168
  &mdash;
151
- <span class="container">Sycsvpro::Mapper</span>
169
+ <span class="container">Sycsvpro::Allocator</span>
152
170
 
153
171
  <li class="method">
154
172
  <a href="Sycsvpro/Collector.html#method-i-execute">#execute</a>
@@ -161,12 +179,12 @@
161
179
  <span class="container">Sycsvpro::Extractor</span>
162
180
 
163
181
  <li class="method">
164
- <a href="Sycsvpro/Calculator.html#method-i-execute">#execute</a>
182
+ <a href="Sycsvpro/Filter.html#method-i-has_filter-3F">#has_filter?</a>
165
183
  &mdash;
166
- <span class="container">Sycsvpro::Calculator</span>
184
+ <span class="container">Sycsvpro::Filter</span>
167
185
 
168
186
  <li class="method">
169
- <a href="Sycsvpro/Filter.html#method-i-has_filter-3F">#has_filter?</a>
187
+ <a href="Sycsvpro/Filter.html#method-i-method_missing">#method_missing</a>
170
188
  &mdash;
171
189
  <span class="container">Sycsvpro::Filter</span>
172
190
 
@@ -176,12 +194,12 @@
176
194
  <span class="container">Sycsvpro::Calculator</span>
177
195
 
178
196
  <li class="method">
179
- <a href="Sycsvpro/Filter.html#method-i-method_missing">#method_missing</a>
197
+ <a href="Sycsvpro/Filter.html#method-i-pivot_each_column">#pivot_each_column</a>
180
198
  &mdash;
181
199
  <span class="container">Sycsvpro::Filter</span>
182
200
 
183
201
  <li class="method">
184
- <a href="Sycsvpro/Filter.html#method-i-pivot_each_column">#pivot_each_column</a>
202
+ <a href="Sycsvpro/Filter.html#method-i-process">#process</a>
185
203
  &mdash;
186
204
  <span class="container">Sycsvpro::Filter</span>
187
205
 
@@ -191,19 +209,14 @@
191
209
  <span class="container">Sycsvpro::Header</span>
192
210
 
193
211
  <li class="method">
194
- <a href="Sycsvpro/ColumnFilter.html#method-i-process">#process</a>
195
- &mdash;
196
- <span class="container">Sycsvpro::ColumnFilter</span>
197
-
198
- <li class="method">
199
- <a href="Sycsvpro/Filter.html#method-i-process">#process</a>
212
+ <a href="Sycsvpro/RowFilter.html#method-i-process">#process</a>
200
213
  &mdash;
201
- <span class="container">Sycsvpro::Filter</span>
214
+ <span class="container">Sycsvpro::RowFilter</span>
202
215
 
203
216
  <li class="method">
204
- <a href="Sycsvpro/RowFilter.html#method-i-process">#process</a>
217
+ <a href="Sycsvpro/ColumnFilter.html#method-i-process">#process</a>
205
218
  &mdash;
206
- <span class="container">Sycsvpro::RowFilter</span>
219
+ <span class="container">Sycsvpro::ColumnFilter</span>
207
220
 
208
221
  <li class="method">
209
222
  <a href="Sycsvpro/Counter.html#method-i-process_file">#process_file</a>
@@ -0,0 +1,47 @@
1
+ # Operating csv files
2
+ module Sycsvpro
3
+
4
+ # Allocates columns to a key column
5
+ class Allocator
6
+
7
+ # File from that values are read
8
+ attr_reader :infile
9
+ # File to that result of allocation is written
10
+ attr_reader :outfile
11
+ # Filter for rows to consider
12
+ attr_reader :row_filter
13
+ # Filter for columns to allocate
14
+ attr_reader :col_filter
15
+ # Filter for the key column that the values are allocated at
16
+ attr_reader :key_filter
17
+
18
+ # Creates a new allocator. Options are infile, outfile, key, rows and columns to allocate to key
19
+ def initialize(options={})
20
+ @infile = options[:infile]
21
+ @outfile = options[:outfile]
22
+ @key_filter = ColumnFilter.new(options[:key])
23
+ @row_filter = RowFilter.new(options[:rows])
24
+ @col_filter = ColumnFilter.new(options[:cols])
25
+ end
26
+
27
+ # Executes the allocator and assigns column values to the key
28
+ def execute
29
+ allocation = {}
30
+ File.open(infile).each_with_index do |line, index|
31
+ row = row_filter.process(line, row: index)
32
+ next if row.nil?
33
+ key = key_filter.process(row)
34
+ allocation[key] = [] if allocation[key].nil?
35
+ allocation[key] << col_filter.process(row).split(';')
36
+ end
37
+
38
+ File.open(outfile, 'w') do |out|
39
+ allocation.each do |key, values|
40
+ out.puts "#{key};#{values.flatten.uniq.sort.join(';')}"
41
+ end
42
+ end
43
+ end
44
+
45
+ end
46
+
47
+ end
@@ -1,5 +1,5 @@
1
1
  # Operating csv files
2
2
  module Sycsvpro
3
3
  # Version number of sycsvpro
4
- VERSION = '0.0.3'
4
+ VERSION = '0.0.4'
5
5
  end
data/lib/sycsvpro.rb CHANGED
@@ -7,3 +7,4 @@ require 'sycsvpro/collector.rb'
7
7
  require 'sycsvpro/mapper.rb'
8
8
  require 'sycsvpro/header.rb'
9
9
  require 'sycsvpro/calculator.rb'
10
+ require 'sycsvpro/allocator.rb'
@@ -0,0 +1,56 @@
1
+ require 'sycsvpro/allocator'
2
+
3
+ module Sycsvpro
4
+
5
+ describe Allocator do
6
+
7
+ before do
8
+ @in_file = File.join(File.dirname(__FILE__), "files/in.csv")
9
+ @out_file = File.join(File.dirname(__FILE__), "files/out.csv")
10
+ end
11
+
12
+ it "should allocate one value to a key" do
13
+ key = "1"
14
+ rows = "1-10"
15
+ cols = "0"
16
+ allocator = Allocator.new(infile: @in_file, outfile: @out_file,
17
+ key: key, rows: rows, cols: cols)
18
+
19
+ allocator.execute
20
+
21
+ result = [ "1234;Fink;fink",
22
+ "3322;Haas",
23
+ "4323;Gent",
24
+ "3232;Rank",
25
+ "4432;Klig" ]
26
+
27
+ File.open(@out_file).each_with_index do |line, index|
28
+ line.chomp.should eq result[index]
29
+ end
30
+
31
+ end
32
+
33
+ it "should allocate multiple values to a key" do
34
+ key = "0"
35
+ rows = "1-10"
36
+ cols = "4-5"
37
+ allocator = Allocator.new(infile: @in_file, outfile: @out_file,
38
+ key: key, rows: rows, cols: cols)
39
+
40
+ allocator.execute
41
+
42
+ result = [ "Fink;con123;con333;dri222;dri321",
43
+ "Haas;con332;dri111",
44
+ "Gent;con123;dri111",
45
+ "Rank;con332;dri321",
46
+ "Klig;con332;dri222",
47
+ "fink;con332;dri321" ]
48
+
49
+ File.open(@out_file).each_with_index do |line, index|
50
+ line.chomp.should eq result[index]
51
+ end
52
+ end
53
+
54
+ end
55
+
56
+ end
@@ -14,7 +14,7 @@ module Sycsvpro
14
14
  result.cols.should =~ ['customer', 'contract-number', 'expires-on', 'machine',
15
15
  'product1', 'product2']
16
16
  result.col_count.should eq 6
17
- result.row_count.should eq 6
17
+ result.row_count.should eq 7
18
18
  result.sample_row.should eq "Fink;1234;20.12.2015;f1;con123;dri222"
19
19
  end
20
20
 
@@ -14,7 +14,7 @@ module Sycsvpro
14
14
  cols: "customer:0+products:4,5", rows: "1-20")
15
15
  collector.execute
16
16
 
17
- result = ['[customer]', 'Fink', 'Gent', 'Haas', 'Klig', 'Rank',
17
+ result = ['[customer]', 'Fink', 'Gent', 'Haas', 'Klig', 'Rank', 'fink',
18
18
  '[products]', 'con123', 'con332', 'con333',
19
19
  'dri111', 'dri222', 'dri321']
20
20
  File.open(@out_file).each_with_index do |line, index|
@@ -20,7 +20,8 @@ module Sycsvpro
20
20
  "Haas;0;1;0;1;0;0",
21
21
  "Gent;1;0;0;1;0;0",
22
22
  "Rank;0;1;0;0;0;1",
23
- "Klig;0;1;0;0;1;0" ]
23
+ "Klig;0;1;0;0;1;0",
24
+ "fink;0;1;0;0;0;1" ]
24
25
 
25
26
  File.open(@out_file).each_with_index do |line, index|
26
27
  line.chomp.should eq result[index]
@@ -14,7 +14,7 @@ module Sycsvpro
14
14
 
15
15
  extractor.execute
16
16
 
17
- result = ["3322;h1", "4323;g1", "3342;f2"]
17
+ result = ["3322;h1", "4323;g1", "1234;f2"]
18
18
 
19
19
  File.open(@out_file).each_with_index do |line, index|
20
20
  line.chomp.should eq result[index]
@@ -27,8 +27,9 @@ module Sycsvpro
27
27
 
28
28
  extractor.execute
29
29
 
30
- result = [ "Fink;3342;30.12.2016;f2;con333;dri321",
31
- "Rank;3232;1.5.2013;r1;con332;dri321" ]
30
+ result = [ "Fink;1234;30.12.2016;f2;con333;dri321",
31
+ "Rank;3232;1.5.2013;r1;con332;dri321",
32
+ "fink;1234;;f3;con332;dri321" ]
32
33
 
33
34
  File.open(@out_file).each_with_index do |line, index|
34
35
  line.chomp.should eq result[index]
@@ -19,9 +19,10 @@ module Sycsvpro
19
19
  "Fink;1234;20.12.2015;f1;control123;drive222",
20
20
  "Haas;3322;1.10.2011;h1;control332;drive111",
21
21
  "Gent;4323;1.3.2014;g1;control123;drive111",
22
- "Fink;3342;30.12.2016;f2;control333;drive321",
22
+ "Fink;1234;30.12.2016;f2;control333;drive321",
23
23
  "Rank;3232;1.5.2013;r1;control332;drive321",
24
- "Klig;4432;;k1;control332;drive222" ]
24
+ "Klig;4432;;k1;control332;drive222",
25
+ "fink;1234;;f3;control332;drive321" ]
25
26
 
26
27
  File.open(@out_file).each_with_index do |line, index|
27
28
  line.chomp.should eq result[index]
@@ -20,7 +20,8 @@ module Sycsvpro
20
20
  "Haas;0;1;0;1;0;0",
21
21
  "Gent;1;0;0;1;0;0",
22
22
  "Rank;0;1;0;0;0;1",
23
- "Klig;0;1;0;0;1;0" ]
23
+ "Klig;0;1;0;0;1;0",
24
+ "fink;0;1;0;0;0;1" ]
24
25
 
25
26
  File.open(@out_file).each_with_index do |line, index|
26
27
  line.chomp.should eq result[index]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sycsvpro
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pierre Sugar
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-18 00:00:00.000000000 Z
11
+ date: 2014-02-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -105,6 +105,7 @@ files:
105
105
  - html/Object.html
106
106
  - html/README_rdoc.html
107
107
  - html/Sycsvpro.html
108
+ - html/Sycsvpro/Allocator.html
108
109
  - html/Sycsvpro/Analyzer.html
109
110
  - html/Sycsvpro/Calculator.html
110
111
  - html/Sycsvpro/Collector.html
@@ -159,6 +160,7 @@ files:
159
160
  - html/rdoc.css
160
161
  - html/table_of_contents.html
161
162
  - lib/sycsvpro.rb
163
+ - lib/sycsvpro/allocator.rb
162
164
  - lib/sycsvpro/analyzer.rb
163
165
  - lib/sycsvpro/calculator.rb
164
166
  - lib/sycsvpro/collector.rb
@@ -172,6 +174,7 @@ files:
172
174
  - lib/sycsvpro/profiler.rb
173
175
  - lib/sycsvpro/row_filter.rb
174
176
  - lib/sycsvpro/version.rb
177
+ - spec/sycsvpro/allocator_spec.rb
175
178
  - spec/sycsvpro/analyze_spec.rb
176
179
  - spec/sycsvpro/calculator_spec.rb
177
180
  - spec/sycsvpro/collector_spec.rb