sycsvpro 0.0.7 → 0.0.8

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.
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
+