sycsvpro 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
data/html/Sycsvpro.html CHANGED
@@ -99,6 +99,12 @@
99
99
 
100
100
  <p>Operating csv files</p>
101
101
 
102
+ <p>Operating csv files</p>
103
+
104
+ <p>Operating csv files</p>
105
+
106
+ <p>Operating csv files</p>
107
+
102
108
  <p>Operating csv files</p>
103
109
 
104
110
  </section>
data/html/created.rid CHANGED
@@ -1,20 +1,23 @@
1
- Sun, 23 Feb 2014 13:56:52 +0100
2
- README.rdoc Sun, 16 Feb 2014 22:01:46 +0100
3
- lib/sycsvpro.rb Sun, 23 Feb 2014 12:40:24 +0100
1
+ Wed, 26 Feb 2014 22:34:31 +0100
2
+ README.rdoc Sun, 23 Feb 2014 19:23:16 +0100
3
+ lib/sycsvpro.rb Wed, 26 Feb 2014 20:27:40 +0100
4
4
  lib/sycsvpro/allocator.rb Wed, 19 Feb 2014 20:34:28 +0100
5
5
  lib/sycsvpro/analyzer.rb Tue, 18 Feb 2014 19:57:28 +0100
6
6
  lib/sycsvpro/calculator.rb Tue, 18 Feb 2014 19:53:34 +0100
7
7
  lib/sycsvpro/collector.rb Sun, 16 Feb 2014 20:59:27 +0100
8
- lib/sycsvpro/column_filter.rb Sun, 16 Feb 2014 21:10:11 +0100
8
+ lib/sycsvpro/column_filter.rb Tue, 25 Feb 2014 20:21:09 +0100
9
+ lib/sycsvpro/column_type_filter.rb Wed, 26 Feb 2014 22:28:42 +0100
9
10
  lib/sycsvpro/counter.rb Fri, 21 Feb 2014 21:11:49 +0100
10
11
  lib/sycsvpro/dsl.rb Tue, 18 Feb 2014 21:34:51 +0100
11
12
  lib/sycsvpro/extractor.rb Sat, 22 Feb 2014 17:58:18 +0100
12
- lib/sycsvpro/filter.rb Tue, 18 Feb 2014 20:23:57 +0100
13
+ lib/sycsvpro/filter.rb Tue, 25 Feb 2014 21:18:25 +0100
13
14
  lib/sycsvpro/header.rb Tue, 18 Feb 2014 19:50:26 +0100
15
+ lib/sycsvpro/inserter.rb Tue, 25 Feb 2014 22:40:30 +0100
14
16
  lib/sycsvpro/mapper.rb Tue, 18 Feb 2014 19:45:47 +0100
15
17
  lib/sycsvpro/profiler.rb Sun, 16 Feb 2014 21:31:39 +0100
16
18
  lib/sycsvpro/row_filter.rb Tue, 18 Feb 2014 19:45:25 +0100
17
- lib/sycsvpro/script_creator.rb Fri, 21 Feb 2014 22:42:17 +0100
18
- lib/sycsvpro/script_list.rb Sun, 23 Feb 2014 13:56:43 +0100
19
- lib/sycsvpro/version.rb Sat, 22 Feb 2014 22:06:58 +0100
20
- bin/sycsvpro Sun, 23 Feb 2014 13:55:33 +0100
19
+ lib/sycsvpro/script_creator.rb Sun, 23 Feb 2014 20:35:21 +0100
20
+ lib/sycsvpro/script_list.rb Sun, 23 Feb 2014 21:03:22 +0100
21
+ lib/sycsvpro/sorter.rb Wed, 26 Feb 2014 08:56:58 +0100
22
+ lib/sycsvpro/version.rb Sun, 23 Feb 2014 13:57:16 +0100
23
+ bin/sycsvpro Wed, 26 Feb 2014 21:31:44 +0100
data/html/index.html CHANGED
@@ -86,6 +86,8 @@
86
86
 
87
87
  <li><a href="./Sycsvpro/ColumnFilter.html">Sycsvpro::ColumnFilter</a>
88
88
 
89
+ <li><a href="./Sycsvpro/ColumnTypeFilter.html">Sycsvpro::ColumnTypeFilter</a>
90
+
89
91
  <li><a href="./Sycsvpro/Counter.html">Sycsvpro::Counter</a>
90
92
 
91
93
  <li><a href="./Sycsvpro/Extractor.html">Sycsvpro::Extractor</a>
@@ -94,6 +96,8 @@
94
96
 
95
97
  <li><a href="./Sycsvpro/Header.html">Sycsvpro::Header</a>
96
98
 
99
+ <li><a href="./Sycsvpro/Inserter.html">Sycsvpro::Inserter</a>
100
+
97
101
  <li><a href="./Sycsvpro/Mapper.html">Sycsvpro::Mapper</a>
98
102
 
99
103
  <li><a href="./Sycsvpro/Profiler.html">Sycsvpro::Profiler</a>
@@ -104,6 +108,8 @@
104
108
 
105
109
  <li><a href="./Sycsvpro/ScriptList.html">Sycsvpro::ScriptList</a>
106
110
 
111
+ <li><a href="./Sycsvpro/Sorter.html">Sycsvpro::Sorter</a>
112
+
107
113
  </ul>
108
114
  </div>
109
115
 
@@ -129,6 +135,9 @@ href="mailto:pierre@sugaryourcoffee.de">pierre@sugaryourcoffee.de</a>)</p>
129
135
  <p>The application provides an interface for analyzing, cleaning and operating
130
136
  on csv files</p>
131
137
 
138
+ <p><a href="http://badge.fury.io/rb/sycsvpro"><img
139
+ src="https://badge.fury.io/rb/sycsvpro.png" alt="Gem Version" /></a></p>
140
+
132
141
  <h2 id="label-Install">Install<span><a href="#label-Install">&para;</a> <a href="#documentation">&uarr;</a></span></h2>
133
142
 
134
143
  <p>Install:</p>
@@ -174,7 +183,7 @@ bin</pre>
174
183
 
175
184
  <p>VERSION</p>
176
185
 
177
- <pre>0.0.5</pre>
186
+ <pre>0.0.8</pre>
178
187
 
179
188
  <p>GLOBAL OPTIONS</p>
180
189
 
@@ -196,7 +205,10 @@ count - Counts the occurences of column values. Uses column values as heading
196
205
  execute - Executes the code provided in a file
197
206
  extract - Extract specified rows and columns from the file
198
207
  help - Shows a list of commands or help for one command
199
- map - Map values in columns to new values</pre>
208
+ insert - Inserts rows from a file to a csv-file
209
+ list - List scripts in the scripts directory with optionally listing methods
210
+ map - Map values in columns to new values
211
+ sort - Sort columns based on column values</pre>
200
212
  </main>
201
213
 
202
214
 
@@ -1 +1 @@
1
- var search_data = {"index":{"searchIndex":["dsl","object","sycsvpro","allocator","analyzer","calculator","collector","columnfilter","counter","extractor","filter","header","mapper","profiler","rowfilter","scriptcreator","scriptlist","execute()","execute()","execute()","execute()","execute()","execute()","execute()","execute()","has_filter?()","method_missing()","method_missing()","new()","new()","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::scriptcreator","sycsvpro::scriptlist","sycsvpro::allocator#execute()","sycsvpro::calculator#execute()","sycsvpro::collector#execute()","sycsvpro::counter#execute()","sycsvpro::extractor#execute()","sycsvpro::mapper#execute()","sycsvpro::profiler#execute()","sycsvpro::scriptlist#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::scriptcreator::new()","sycsvpro::scriptlist::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"],["Sycsvpro::ScriptCreator","","Sycsvpro/ScriptCreator.html","","<p>Creates a ruby script scaffold\n"],["Sycsvpro::ScriptList","","Sycsvpro/ScriptList.html","","<p>Lists the contents of the script directory. Optionally listing a specific\nscript file and also optionally …\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"],["execute","Sycsvpro::ScriptList","Sycsvpro/ScriptList.html#method-i-execute","()","<p>Retrieves the information about scripts and methods from the script\ndirectory\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. Takes as attributes infile, outfile, key, rows,\ncols, date-format and indicator …\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"],["new","Sycsvpro::ScriptCreator","Sycsvpro/ScriptCreator.html#method-c-new","(options={})","<p>Creates a new ScriptCreator\n"],["new","Sycsvpro::ScriptList","Sycsvpro/ScriptList.html#method-c-new","(options={})","<p>Creates a new ScriptList. Takes params script_dir, script_file and\nshow_methods\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","columntypefilter","counter","extractor","filter","header","inserter","mapper","profiler","rowfilter","scriptcreator","scriptlist","sorter","execute()","execute()","execute()","execute()","execute()","execute()","execute()","execute()","execute()","execute()","has_filter?()","method_missing()","method_missing()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","pivot_each_column()","process()","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::columntypefilter","sycsvpro::counter","sycsvpro::extractor","sycsvpro::filter","sycsvpro::header","sycsvpro::inserter","sycsvpro::mapper","sycsvpro::profiler","sycsvpro::rowfilter","sycsvpro::scriptcreator","sycsvpro::scriptlist","sycsvpro::sorter","sycsvpro::allocator#execute()","sycsvpro::calculator#execute()","sycsvpro::collector#execute()","sycsvpro::counter#execute()","sycsvpro::extractor#execute()","sycsvpro::inserter#execute()","sycsvpro::mapper#execute()","sycsvpro::profiler#execute()","sycsvpro::scriptlist#execute()","sycsvpro::sorter#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::inserter::new()","sycsvpro::mapper::new()","sycsvpro::profiler::new()","sycsvpro::scriptcreator::new()","sycsvpro::scriptlist::new()","sycsvpro::sorter::new()","sycsvpro::filter#pivot_each_column()","sycsvpro::columnfilter#process()","sycsvpro::columntypefilter#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::ColumnTypeFilter","","Sycsvpro/ColumnTypeFilter.html","","<p>Create a filter based on a colum and its type\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::Inserter","","Sycsvpro/Inserter.html","","<p>Insert a text file into another textfile at a specified position\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"],["Sycsvpro::ScriptCreator","","Sycsvpro/ScriptCreator.html","","<p>Creates a ruby script scaffold\n"],["Sycsvpro::ScriptList","","Sycsvpro/ScriptList.html","","<p>Lists the contents of the script directory. Optionally listing a specific\nscript file and also optionally …\n"],["Sycsvpro::Sorter","","Sycsvpro/Sorter.html","","<p>Sorts an input file based on a column sort filter\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::Inserter","Sycsvpro/Inserter.html#method-i-execute","()","<p>Inserts the content of the insert-file at the specified positions (top or\nbottom)\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"],["execute","Sycsvpro::ScriptList","Sycsvpro/ScriptList.html#method-i-execute","()","<p>Retrieves the information about scripts and methods from the script\ndirectory\n"],["execute","Sycsvpro::Sorter","Sycsvpro/Sorter.html#method-i-execute","()","<p>Sorts the data of the infile\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. Takes as attributes infile, outfile, key, rows,\ncols, date-format and indicator …\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::Inserter","Sycsvpro/Inserter.html#method-c-new","(options={})","<p>Creates an Inserter and takes options infile, outfile, insert-file and\nposition where to insert the insert-file …\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"],["new","Sycsvpro::ScriptCreator","Sycsvpro/ScriptCreator.html#method-c-new","(options={})","<p>Creates a new ScriptCreator\n"],["new","Sycsvpro::ScriptList","Sycsvpro/ScriptList.html#method-c-new","(options={})","<p>Creates a new ScriptList. Takes params script_dir, script_file and\nshow_methods\n"],["new","Sycsvpro::Sorter","Sycsvpro/Sorter.html#method-c-new","(options={})","<p>Creates a Sorter and takes as options infile, outfile, rows, cols including\ntypes and a date format for …\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::ColumnTypeFilter","Sycsvpro/ColumnTypeFilter.html#method-i-process","(object, options={})","<p>Processes the filter and returns the filtered columns\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"]]}}
@@ -67,6 +67,9 @@
67
67
  <li class="class">
68
68
  <a href="Sycsvpro/ColumnFilter.html">Sycsvpro::ColumnFilter</a>
69
69
  </li>
70
+ <li class="class">
71
+ <a href="Sycsvpro/ColumnTypeFilter.html">Sycsvpro::ColumnTypeFilter</a>
72
+ </li>
70
73
  <li class="class">
71
74
  <a href="Sycsvpro/Counter.html">Sycsvpro::Counter</a>
72
75
  </li>
@@ -79,6 +82,9 @@
79
82
  <li class="class">
80
83
  <a href="Sycsvpro/Header.html">Sycsvpro::Header</a>
81
84
  </li>
85
+ <li class="class">
86
+ <a href="Sycsvpro/Inserter.html">Sycsvpro::Inserter</a>
87
+ </li>
82
88
  <li class="class">
83
89
  <a href="Sycsvpro/Mapper.html">Sycsvpro::Mapper</a>
84
90
  </li>
@@ -94,6 +100,9 @@
94
100
  <li class="class">
95
101
  <a href="Sycsvpro/ScriptList.html">Sycsvpro::ScriptList</a>
96
102
  </li>
103
+ <li class="class">
104
+ <a href="Sycsvpro/Sorter.html">Sycsvpro::Sorter</a>
105
+ </li>
97
106
  </ul>
98
107
 
99
108
  <h2 id="methods">Methods</h2>
@@ -125,14 +134,14 @@
125
134
  <span class="container">Sycsvpro::Calculator</span>
126
135
 
127
136
  <li class="method">
128
- <a href="Sycsvpro/Filter.html#method-c-new">::new</a>
137
+ <a href="Sycsvpro/Inserter.html#method-c-new">::new</a>
129
138
  &mdash;
130
- <span class="container">Sycsvpro::Filter</span>
139
+ <span class="container">Sycsvpro::Inserter</span>
131
140
 
132
141
  <li class="method">
133
- <a href="Sycsvpro/Extractor.html#method-c-new">::new</a>
142
+ <a href="Sycsvpro/Header.html#method-c-new">::new</a>
134
143
  &mdash;
135
- <span class="container">Sycsvpro::Extractor</span>
144
+ <span class="container">Sycsvpro::Header</span>
136
145
 
137
146
  <li class="method">
138
147
  <a href="Sycsvpro/Collector.html#method-c-new">::new</a>
@@ -140,14 +149,19 @@
140
149
  <span class="container">Sycsvpro::Collector</span>
141
150
 
142
151
  <li class="method">
143
- <a href="Sycsvpro/ScriptCreator.html#method-c-new">::new</a>
152
+ <a href="Sycsvpro/ScriptList.html#method-c-new">::new</a>
144
153
  &mdash;
145
- <span class="container">Sycsvpro::ScriptCreator</span>
154
+ <span class="container">Sycsvpro::ScriptList</span>
146
155
 
147
156
  <li class="method">
148
- <a href="Sycsvpro/ScriptList.html#method-c-new">::new</a>
157
+ <a href="Sycsvpro/Filter.html#method-c-new">::new</a>
149
158
  &mdash;
150
- <span class="container">Sycsvpro::ScriptList</span>
159
+ <span class="container">Sycsvpro::Filter</span>
160
+
161
+ <li class="method">
162
+ <a href="Sycsvpro/Sorter.html#method-c-new">::new</a>
163
+ &mdash;
164
+ <span class="container">Sycsvpro::Sorter</span>
151
165
 
152
166
  <li class="method">
153
167
  <a href="Sycsvpro/Counter.html#method-c-new">::new</a>
@@ -155,34 +169,34 @@
155
169
  <span class="container">Sycsvpro::Counter</span>
156
170
 
157
171
  <li class="method">
158
- <a href="Sycsvpro/Header.html#method-c-new">::new</a>
172
+ <a href="Sycsvpro/Extractor.html#method-c-new">::new</a>
159
173
  &mdash;
160
- <span class="container">Sycsvpro::Header</span>
174
+ <span class="container">Sycsvpro::Extractor</span>
161
175
 
162
176
  <li class="method">
163
- <a href="Sycsvpro/Collector.html#method-i-execute">#execute</a>
177
+ <a href="Sycsvpro/ScriptCreator.html#method-c-new">::new</a>
164
178
  &mdash;
165
- <span class="container">Sycsvpro::Collector</span>
179
+ <span class="container">Sycsvpro::ScriptCreator</span>
166
180
 
167
181
  <li class="method">
168
- <a href="Sycsvpro/Profiler.html#method-i-execute">#execute</a>
182
+ <a href="Sycsvpro/ScriptList.html#method-i-execute">#execute</a>
169
183
  &mdash;
170
- <span class="container">Sycsvpro::Profiler</span>
184
+ <span class="container">Sycsvpro::ScriptList</span>
171
185
 
172
186
  <li class="method">
173
- <a href="Sycsvpro/Calculator.html#method-i-execute">#execute</a>
187
+ <a href="Sycsvpro/Counter.html#method-i-execute">#execute</a>
174
188
  &mdash;
175
- <span class="container">Sycsvpro::Calculator</span>
189
+ <span class="container">Sycsvpro::Counter</span>
176
190
 
177
191
  <li class="method">
178
- <a href="Sycsvpro/Extractor.html#method-i-execute">#execute</a>
192
+ <a href="Sycsvpro/Profiler.html#method-i-execute">#execute</a>
179
193
  &mdash;
180
- <span class="container">Sycsvpro::Extractor</span>
194
+ <span class="container">Sycsvpro::Profiler</span>
181
195
 
182
196
  <li class="method">
183
- <a href="Sycsvpro/Counter.html#method-i-execute">#execute</a>
197
+ <a href="Sycsvpro/Allocator.html#method-i-execute">#execute</a>
184
198
  &mdash;
185
- <span class="container">Sycsvpro::Counter</span>
199
+ <span class="container">Sycsvpro::Allocator</span>
186
200
 
187
201
  <li class="method">
188
202
  <a href="Sycsvpro/Mapper.html#method-i-execute">#execute</a>
@@ -190,14 +204,29 @@
190
204
  <span class="container">Sycsvpro::Mapper</span>
191
205
 
192
206
  <li class="method">
193
- <a href="Sycsvpro/Allocator.html#method-i-execute">#execute</a>
207
+ <a href="Sycsvpro/Collector.html#method-i-execute">#execute</a>
194
208
  &mdash;
195
- <span class="container">Sycsvpro::Allocator</span>
209
+ <span class="container">Sycsvpro::Collector</span>
196
210
 
197
211
  <li class="method">
198
- <a href="Sycsvpro/ScriptList.html#method-i-execute">#execute</a>
212
+ <a href="Sycsvpro/Sorter.html#method-i-execute">#execute</a>
199
213
  &mdash;
200
- <span class="container">Sycsvpro::ScriptList</span>
214
+ <span class="container">Sycsvpro::Sorter</span>
215
+
216
+ <li class="method">
217
+ <a href="Sycsvpro/Inserter.html#method-i-execute">#execute</a>
218
+ &mdash;
219
+ <span class="container">Sycsvpro::Inserter</span>
220
+
221
+ <li class="method">
222
+ <a href="Sycsvpro/Calculator.html#method-i-execute">#execute</a>
223
+ &mdash;
224
+ <span class="container">Sycsvpro::Calculator</span>
225
+
226
+ <li class="method">
227
+ <a href="Sycsvpro/Extractor.html#method-i-execute">#execute</a>
228
+ &mdash;
229
+ <span class="container">Sycsvpro::Extractor</span>
201
230
 
202
231
  <li class="method">
203
232
  <a href="Sycsvpro/Filter.html#method-i-has_filter-3F">#has_filter?</a>
@@ -220,24 +249,29 @@
220
249
  <span class="container">Sycsvpro::Filter</span>
221
250
 
222
251
  <li class="method">
223
- <a href="Sycsvpro/Filter.html#method-i-process">#process</a>
252
+ <a href="Sycsvpro/ColumnFilter.html#method-i-process">#process</a>
224
253
  &mdash;
225
- <span class="container">Sycsvpro::Filter</span>
254
+ <span class="container">Sycsvpro::ColumnFilter</span>
226
255
 
227
256
  <li class="method">
228
- <a href="Sycsvpro/Header.html#method-i-process">#process</a>
257
+ <a href="Sycsvpro/ColumnTypeFilter.html#method-i-process">#process</a>
229
258
  &mdash;
230
- <span class="container">Sycsvpro::Header</span>
259
+ <span class="container">Sycsvpro::ColumnTypeFilter</span>
231
260
 
232
261
  <li class="method">
233
- <a href="Sycsvpro/ColumnFilter.html#method-i-process">#process</a>
262
+ <a href="Sycsvpro/RowFilter.html#method-i-process">#process</a>
234
263
  &mdash;
235
- <span class="container">Sycsvpro::ColumnFilter</span>
264
+ <span class="container">Sycsvpro::RowFilter</span>
236
265
 
237
266
  <li class="method">
238
- <a href="Sycsvpro/RowFilter.html#method-i-process">#process</a>
267
+ <a href="Sycsvpro/Header.html#method-i-process">#process</a>
239
268
  &mdash;
240
- <span class="container">Sycsvpro::RowFilter</span>
269
+ <span class="container">Sycsvpro::Header</span>
270
+
271
+ <li class="method">
272
+ <a href="Sycsvpro/Filter.html#method-i-process">#process</a>
273
+ &mdash;
274
+ <span class="container">Sycsvpro::Filter</span>
241
275
 
242
276
  <li class="method">
243
277
  <a href="Sycsvpro/Counter.html#method-i-process_file">#process_file</a>
@@ -0,0 +1,38 @@
1
+ # Operating csv files
2
+ module Sycsvpro
3
+
4
+ # Create a filter based on a colum and its type
5
+ class ColumnTypeFilter < ColumnFilter
6
+
7
+ # Processes the filter and returns the filtered columns
8
+ def process(object, options={})
9
+ filtered = super(object, options)
10
+
11
+ return nil if filtered.nil?
12
+
13
+ values = filtered.split(';')
14
+
15
+ values.each_with_index do |value, index|
16
+ if types[index] == 'n'
17
+ if value =~ /\./
18
+ number_value = value.to_f
19
+ else
20
+ number_value = value.to_i
21
+ end
22
+ values[index] = number_value
23
+ elsif types[index] == 'd'
24
+ if value.empty?
25
+ date = Date.strptime('9999-9-9', '%Y-%m-%d')
26
+ else
27
+ date = Date.strptime(value, date_format)
28
+ end
29
+ values[index] = date
30
+ end
31
+ end
32
+
33
+ values
34
+ end
35
+
36
+ end
37
+
38
+ end
@@ -11,6 +11,8 @@ module Sycsvpro
11
11
  attr_reader :date_format
12
12
  # Filter for rows and columns
13
13
  attr_reader :filter
14
+ # Type of column (n = number, s = string)
15
+ attr_reader :types
14
16
  # Pattern that is used as a filter
15
17
  attr_reader :pattern
16
18
  # Comparison that is used as a filter
@@ -20,6 +22,7 @@ module Sycsvpro
20
22
  def initialize(values, options={})
21
23
  @date_format = options[:df] || "%Y-%m-%d"
22
24
  @filter = []
25
+ @types = []
23
26
  @pattern = []
24
27
  @pivot = {}
25
28
  create_filter(values)
@@ -28,7 +31,9 @@ module Sycsvpro
28
31
  # Creates the filters based on the given patterns
29
32
  def method_missing(id, *args, &block)
30
33
  return equal($1, args, block) if id =~ /^(\d+)$/
34
+ return equal_type($1, $2, args, block) if id =~ /^(s|n|d):(\d+)$/
31
35
  return range($1, $2, args, block) if id =~ /^(\d+)-(\d+)$/
36
+ return range_type($1, $2, $3, args, block) if id =~ /^(s|n|d):(\d+)-(\d+)$/
32
37
  return regex($1, args, block) if id =~ /^\/(.*)\/$/
33
38
  return col_regex($1, $2, args, block) if id =~ /^(\d+):\/(.*)\/$/
34
39
  return date($1, $2, $3, args, block) if id =~ /^(\d+):(<|=|>)(\d+.\d+.\d+)/
@@ -72,11 +77,25 @@ module Sycsvpro
72
77
  filter << value.to_i unless filter.index(value.to_i)
73
78
  end
74
79
 
80
+ # Adds a single value and an associated type to the filter
81
+ def equal_type(type, value, args, block)
82
+ filter_size_before = filter.size
83
+ equal(value, args, block)
84
+ types << type if filter_size_before < filter.size
85
+ end
86
+
75
87
  # Adds a range to the filter
76
88
  def range(start_value, end_value, args, block)
77
89
  filter << (start_value.to_i..end_value.to_i).to_a
78
90
  end
79
91
 
92
+ # Adds a range and the associated types to the filter
93
+ def range_type(type, start_value, end_value, args, block)
94
+ filter_size_before = filter.size
95
+ range(start_value, end_value, args, block)
96
+ (filter.size - filter_size_before).times { types << type }
97
+ end
98
+
80
99
  # Adds a regex to the pattern filter
81
100
  def regex(value, args, block)
82
101
  pattern << value unless pattern.index(value)
@@ -0,0 +1,40 @@
1
+ # Operating csv files
2
+ module Sycsvpro
3
+
4
+ # Insert a text file into another textfile at a specified position
5
+ class Inserter
6
+
7
+ # file to insert lines to
8
+ attr_reader :infile
9
+ # file to write result to
10
+ attr_reader :outfile
11
+ # file that contains the lines to insert
12
+ attr_reader :insert
13
+ # position (top or bottom) where to insert the rows
14
+ attr_reader :position
15
+
16
+ # Creates an Inserter and takes options infile, outfile, insert-file and position where to
17
+ # insert the insert-file content. Default position is top
18
+ def initialize(options={})
19
+ @infile = options[:infile]
20
+ @outfile = options[:outfile]
21
+ @insert = options[:insert]
22
+ @position = options[:position] || 'top'
23
+ end
24
+
25
+ # Inserts the content of the insert-file at the specified positions (top or bottom)
26
+ def execute
27
+ File.open(outfile, 'w') do |out|
28
+ if position.downcase == 'bottom'
29
+ out.puts File.read(infile)
30
+ out.puts File.read(insert)
31
+ else
32
+ out.puts File.read(insert)
33
+ out.puts File.read(infile)
34
+ end
35
+ end
36
+ end
37
+
38
+ end
39
+
40
+ end
@@ -12,12 +12,15 @@ module Sycsvpro
12
12
  attr_reader :method_name
13
13
  # script_file path
14
14
  attr_reader :script_file
15
+ # type of the script-file
16
+ attr_reader :script_type
15
17
 
16
18
  # Creates a new ScriptCreator
17
19
  def initialize(options={})
18
20
  @dir = File.join(options[:dir], 'scripts')
19
21
  @script_name = options[:script]
20
- @method_name = options[:method]
22
+ @script_type = File.extname(@script_name)
23
+ @method_name = options[:method] if @script_type == '.rb'
21
24
  create_script
22
25
  end
23
26
 
@@ -31,12 +34,14 @@ module Sycsvpro
31
34
  @script_file = File.join(dir, script_name)
32
35
  unless File.exists? @script_file
33
36
  File.open(@script_file, 'w') do |f|
34
- f.print "def "
35
- f.puts "#{method_name}" if method_name
36
- f.puts "end"
37
+ if script_type == '.rb'
38
+ f.print "def "
39
+ f.puts "#{method_name}" if method_name
40
+ f.puts "end"
41
+ end
37
42
  end
38
43
  else
39
- if method_name
44
+ if method_name and script_type == '.rb'
40
45
  File.open(@script_file, 'a') do |f|
41
46
  f.puts
42
47
  f.puts "def #{method_name}"
@@ -17,8 +17,12 @@ module Sycsvpro
17
17
  # Creates a new ScriptList. Takes params script_dir, script_file and show_methods
18
18
  def initialize(options={})
19
19
  @script_dir = options[:dir]
20
- @script_file = options[:script] || '*.rb'
21
- @show_methods = options[:show_methods]
20
+ @script_type = options[:type] || 'script'
21
+ @script_type.downcase!
22
+ @script_file = options[:script] || '*.rb' if @script_type == 'script'
23
+ @script_file = options[:script] || '*.ins' if @script_type == 'insert'
24
+ @show_methods = options[:show_methods] if @script_type == 'script'
25
+ @show_methods = false if @script_type == 'insert'
22
26
  @list = {}
23
27
  end
24
28
 
@@ -0,0 +1,62 @@
1
+ require_relative 'row_filter'
2
+ require_relative 'column_type_filter'
3
+ require_relative 'dsl'
4
+
5
+ # Operating csv files
6
+ module Sycsvpro
7
+
8
+ # Sorts an input file based on a column sort filter
9
+ class Sorter
10
+
11
+ include Dsl
12
+
13
+ # file of the data to sort
14
+ attr_reader :infile
15
+ # file to write the sorted data to
16
+ attr_reader :outfile
17
+ # row filter
18
+ attr_reader :row_filter
19
+ # column type filter
20
+ attr_reader :col_type_filter
21
+ # sorted rows
22
+ attr_reader :sorted_rows
23
+ # sort order descending or ascending
24
+ attr_reader :desc
25
+
26
+ # Creates a Sorter and takes as options infile, outfile, rows, cols including types and a
27
+ # date format for the date columns to sort (optional)
28
+ def initialize(options={})
29
+ @infile = options[:infile]
30
+ @outfile = options[:outfile]
31
+ @desc = options[:desc] || false
32
+ @row_filter = RowFilter.new(options[:rows])
33
+ @col_type_filter = ColumnTypeFilter.new(options[:cols], df: options[:df])
34
+ @sorted_rows = []
35
+ end
36
+
37
+ # Sorts the data of the infile
38
+ def execute
39
+ rows = File.readlines(infile)
40
+
41
+ rows.each_with_index do |line, index|
42
+ filtered = col_type_filter.process(row_filter.process(line, row: index))
43
+ next if filtered.nil?
44
+ sorted_rows << (filtered << index)
45
+ end
46
+
47
+ File.open(outfile, 'w') do |out|
48
+ if desc
49
+ sorted_rows.compact.sort.reverse.each do |row|
50
+ out.puts unstring(rows[row.last])
51
+ end
52
+ else
53
+ sorted_rows.compact.sort.each do |row|
54
+ out.puts unstring(rows[row.last])
55
+ end
56
+ end
57
+ end
58
+ end
59
+
60
+ end
61
+
62
+ end
@@ -1,5 +1,5 @@
1
1
  # Operating csv files
2
2
  module Sycsvpro
3
3
  # Version number of sycsvpro
4
- VERSION = '0.0.7'
4
+ VERSION = '0.0.8'
5
5
  end
data/lib/sycsvpro.rb CHANGED
@@ -10,3 +10,5 @@ require 'sycsvpro/calculator.rb'
10
10
  require 'sycsvpro/allocator.rb'
11
11
  require 'sycsvpro/script_creator.rb'
12
12
  require 'sycsvpro/script_list.rb'
13
+ require 'sycsvpro/inserter.rb'
14
+ require 'sycsvpro/sorter.rb'
@@ -11,7 +11,7 @@ module Sycsvpro
11
11
 
12
12
  it "should allocate one value to a key" do
13
13
  key = "1"
14
- rows = "1-10"
14
+ rows = "1-7"
15
15
  cols = "0"
16
16
  allocator = Allocator.new(infile: @in_file, outfile: @out_file,
17
17
  key: key, rows: rows, cols: cols)
@@ -32,7 +32,7 @@ module Sycsvpro
32
32
 
33
33
  it "should allocate multiple values to a key" do
34
34
  key = "0"
35
- rows = "1-10"
35
+ rows = "1-7"
36
36
  cols = "4-5"
37
37
  allocator = Allocator.new(infile: @in_file, outfile: @out_file,
38
38
  key: key, rows: rows, cols: cols)
@@ -0,0 +1 @@
1
+ For testing listing insert files with ScriptList
@@ -0,0 +1,2 @@
1
+ For testing listing insert files with ScriptList
2
+