sycsvpro 0.0.6 → 0.0.7

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: 59be0284b8527763bc36dedfd9aeaeb3ba5284f1
4
- data.tar.gz: 21ae122696a00cc5dc09609493ef6f53385fb819
3
+ metadata.gz: 200bdc00de01fd102bec6290071adb632baec288
4
+ data.tar.gz: a26adffa7877ac00cf6cf2bcb5902f3842db5992
5
5
  SHA512:
6
- metadata.gz: 917467f20b0616376523e9eb6475ab46d2d83b0ad61ae31c212332156876208c4c86214d17f0278dad46e8e14636ca6fc54176841e229ed8ac2e8067535339dd
7
- data.tar.gz: 20c42430c7cc6166e7efb018b284d2fb5b2dbd3de57f7584302a687bd8f915b45c1c9f484289b91ee06c5fc55f4fc894b9eed2a7c6613d0a1ebb6c8de0691428
6
+ metadata.gz: fda3aaaefbdd73d869c5c4ff879f60902ea15158671076775a49183bc44db19e883f600ab00f10b7a9c533eaf15977a41c0c7611332b48e19a82ec6ad8b04630
7
+ data.tar.gz: 5035fca1649a5c2457c50a2eacca90396bda949509b70072e7ac460f31daf6e79d8f82dee2648c64767fc386d59c438dda6ba3db553a322bdcd622dcc23f3b3a
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- sycsvpro (0.0.5)
4
+ sycsvpro (0.0.6)
5
5
  gli (= 2.9.0)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -11,6 +11,7 @@ Processing of csv files. *sycsvpro* offers following functions
11
11
  * count values in columns and use the value as column name
12
12
  * arithmetic operations on values of columns
13
13
  * create or edit a Ruby script
14
+ * list scripts available optionally with methods
14
15
  * execute a Ruby script file that operates a csv file
15
16
 
16
17
  To get help type
@@ -144,6 +145,14 @@ Creates or if it exists opens a file for editing. The file is created in the dir
144
145
 
145
146
  $ sycsvpro edit -s script.rb -m call_me
146
147
 
148
+ List
149
+ ----
150
+ List the scripts available in the scripts directory
151
+
152
+ $ sycsvpro list -m
153
+ script.rb
154
+ call_me
155
+
147
156
  Execute
148
157
  -------
149
158
 
data/bin/sycsvpro CHANGED
@@ -132,6 +132,36 @@ command :edit do |c|
132
132
  end
133
133
  end
134
134
 
135
+ desc 'Lists scripts in the scripts directory with optionally listing methods'
136
+ command :list do |c|
137
+ c.desc 'Name of the script file'
138
+ c.arg_name 'SCRIPT_NAME.rb'
139
+ c.flag [:s, :script], :must_match => /^\w+\.rb/
140
+
141
+ c.desc 'Show methods'
142
+ c.switch [:m, :method]
143
+
144
+ c.action do |global_options,options,args|
145
+ script_list = Sycsvpro::ScriptList.new(dir: script_directory,
146
+ script: options[:s], show_methods: options[:m])
147
+
148
+ scripts = script_list.execute
149
+
150
+ if scripts.empty?
151
+ help_now! "No scripts available. You can create scripts with the edit command"
152
+ else
153
+ scripts.each do |script, methods|
154
+ puts File.basename(script)
155
+ methods.each do |method|
156
+ puts method.gsub(/^/, " ")
157
+ puts
158
+ end unless methods.empty?
159
+ end
160
+ end
161
+
162
+ end
163
+ end
164
+
135
165
  desc 'Executes the code provided in a file'
136
166
  arg_name 'PRO_FILE METHOD'
137
167
  command :execute do |c|
@@ -252,12 +282,13 @@ pre do |global,command,options,args|
252
282
 
253
283
  count = 0
254
284
 
255
- unless command.name == :edit or command.name == :execute
285
+ unless command.name == :edit or command.name == :execute or command.name == :list
256
286
  analyzer = Sycsvpro::Analyzer.new(global[:f])
257
287
  result = analyzer.result
258
288
  count = result.row_count
259
289
  end
260
290
 
291
+ # Creates statistics on the command operation
261
292
  Stats = Struct.new(:command, :start, :end, :count) do
262
293
  def duration
263
294
  self.end - self.start
@@ -273,7 +304,7 @@ pre do |global,command,options,args|
273
304
 
274
305
  def to_s
275
306
  if count > 0
276
- sprintf("%s %g %s %d %s %g %s", "'#{self.command}' has run",
307
+ sprintf("%s %.5f %s %d %s %.5f %s", "'#{self.command}' has run",
277
308
  duration,
278
309
  "seconds to operate",
279
310
  self.count,
@@ -281,11 +312,9 @@ pre do |global,command,options,args|
281
312
  average,
282
313
  "ms per row")
283
314
  else
284
- sprintf("%s %g %s %d %s", "'#{self.command}' has run",
285
- duration,
286
- "seconds to operate",
287
- self.count,
288
- "rows")
315
+ sprintf("%s %.5f %s", "'#{self.command}' has run",
316
+ duration,
317
+ "seconds")
289
318
  end
290
319
  end
291
320
  end
@@ -310,13 +339,10 @@ post do |global,command,options,args|
310
339
  # Use skips_post before a command to skip this
311
340
  # block on that command only
312
341
  puts
313
- print "-> "
314
342
 
315
343
  @stats.end = Time.now
316
- unless command.name == :edit or command.name == :execute
344
+ unless command.name == :edit
317
345
  puts @stats
318
- else
319
- puts @stats if command.name == :execute
320
346
  end
321
347
  end
322
348
 
data/html/Object.html CHANGED
@@ -100,6 +100,20 @@
100
100
 
101
101
 
102
102
 
103
+ <section class="constants-list">
104
+ <header>
105
+ <h3>Constants</h3>
106
+ </header>
107
+ <dl>
108
+
109
+ <dt id="Stats">Stats
110
+
111
+ <dd><p>Creates statistics on the command operation</p>
112
+
113
+
114
+ </dl>
115
+ </section>
116
+
103
117
 
104
118
 
105
119
 
@@ -0,0 +1,277 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <meta charset="UTF-8">
6
+
7
+ <title>class Sycsvpro::ScriptList - 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::ScriptList">
87
+ <h1 id="class-Sycsvpro::ScriptList" class="class">
88
+ class Sycsvpro::ScriptList
89
+ </h1>
90
+
91
+ <section class="description">
92
+
93
+ <p>Lists the contents of the script directory. Optionally listing a specific
94
+ script file and also optionally the methods and associated description of
95
+ the methods</p>
96
+
97
+ </section>
98
+
99
+
100
+
101
+
102
+ <section id="5Buntitled-5D" class="documentation-section">
103
+
104
+
105
+
106
+
107
+
108
+
109
+
110
+ <section class="attribute-method-details" class="method-section">
111
+ <header>
112
+ <h3>Attributes</h3>
113
+ </header>
114
+
115
+
116
+ <div id="attribute-i-list" class="method-detail">
117
+ <div class="method-heading attribute-method-heading">
118
+ <span class="method-name">list</span><span
119
+ class="attribute-access-type">[R]</span>
120
+ </div>
121
+
122
+ <div class="method-description">
123
+
124
+ <p>Hash holding the list of scripts</p>
125
+
126
+ </div>
127
+ </div>
128
+
129
+ <div id="attribute-i-script_dir" class="method-detail">
130
+ <div class="method-heading attribute-method-heading">
131
+ <span class="method-name">script_dir</span><span
132
+ class="attribute-access-type">[R]</span>
133
+ </div>
134
+
135
+ <div class="method-description">
136
+
137
+ <p>Directory that holds the scripts</p>
138
+
139
+ </div>
140
+ </div>
141
+
142
+ <div id="attribute-i-script_file" class="method-detail">
143
+ <div class="method-heading attribute-method-heading">
144
+ <span class="method-name">script_file</span><span
145
+ class="attribute-access-type">[R]</span>
146
+ </div>
147
+
148
+ <div class="method-description">
149
+
150
+ <p>Script file of interest</p>
151
+
152
+ </div>
153
+ </div>
154
+
155
+ <div id="attribute-i-show_methods" class="method-detail">
156
+ <div class="method-heading attribute-method-heading">
157
+ <span class="method-name">show_methods</span><span
158
+ class="attribute-access-type">[R]</span>
159
+ </div>
160
+
161
+ <div class="method-description">
162
+
163
+ <p>Switch indicating whether to show methods</p>
164
+
165
+ </div>
166
+ </div>
167
+
168
+ </section>
169
+
170
+
171
+
172
+ <section id="public-class-5Buntitled-5D-method-details" class="method-section">
173
+ <header>
174
+ <h3>Public Class Methods</h3>
175
+ </header>
176
+
177
+
178
+ <div id="method-c-new" class="method-detail ">
179
+
180
+ <div class="method-heading">
181
+ <span class="method-name">new</span><span
182
+ class="method-args">(options={})</span>
183
+
184
+ <span class="method-click-advice">click to toggle source</span>
185
+
186
+ </div>
187
+
188
+
189
+ <div class="method-description">
190
+
191
+ <p>Creates a new <a href="ScriptList.html">ScriptList</a>. Takes params <a
192
+ href="ScriptList.html#attribute-i-script_dir">#script_dir</a>, <a
193
+ href="ScriptList.html#attribute-i-script_file">#script_file</a> and <a
194
+ href="ScriptList.html#attribute-i-show_methods">#show_methods</a></p>
195
+
196
+
197
+
198
+
199
+ <div class="method-source-code" id="new-source">
200
+ <pre><span class="ruby-comment"># File lib/sycsvpro/script_list.rb, line 18</span>
201
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">options</span>={})
202
+ <span class="ruby-ivar">@script_dir</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:dir</span>]
203
+ <span class="ruby-ivar">@script_file</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:script</span>] <span class="ruby-operator">||</span> <span class="ruby-string">&#39;*.rb&#39;</span>
204
+ <span class="ruby-ivar">@show_methods</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:show_methods</span>]
205
+ <span class="ruby-ivar">@list</span> = {}
206
+ <span class="ruby-keyword">end</span></pre>
207
+ </div>
208
+
209
+ </div>
210
+
211
+
212
+
213
+
214
+ </div>
215
+
216
+
217
+ </section>
218
+
219
+ <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
220
+ <header>
221
+ <h3>Public Instance Methods</h3>
222
+ </header>
223
+
224
+
225
+ <div id="method-i-execute" class="method-detail ">
226
+
227
+ <div class="method-heading">
228
+ <span class="method-name">execute</span><span
229
+ class="method-args">()</span>
230
+
231
+ <span class="method-click-advice">click to toggle source</span>
232
+
233
+ </div>
234
+
235
+
236
+ <div class="method-description">
237
+
238
+ <p>Retrieves the information about scripts and methods from the script
239
+ directory</p>
240
+
241
+
242
+
243
+
244
+ <div class="method-source-code" id="execute-source">
245
+ <pre><span class="ruby-comment"># File lib/sycsvpro/script_list.rb, line 26</span>
246
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">execute</span>
247
+ <span class="ruby-identifier">scripts</span> = <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">glob</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-ivar">@script_dir</span>, <span class="ruby-ivar">@script_file</span>))
248
+ <span class="ruby-identifier">scripts</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">script</span><span class="ruby-operator">|</span>
249
+ <span class="ruby-identifier">list</span>[<span class="ruby-identifier">script</span>] = []
250
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">show_methods</span>
251
+ <span class="ruby-identifier">list</span>[<span class="ruby-identifier">script</span>] = <span class="ruby-identifier">retrieve_methods</span>(<span class="ruby-identifier">script</span>)
252
+ <span class="ruby-keyword">end</span>
253
+ <span class="ruby-keyword">end</span>
254
+ <span class="ruby-identifier">list</span>
255
+ <span class="ruby-keyword">end</span></pre>
256
+ </div>
257
+
258
+ </div>
259
+
260
+
261
+
262
+
263
+ </div>
264
+
265
+
266
+ </section>
267
+
268
+ </section>
269
+ </main>
270
+
271
+
272
+ <footer id="validator-badges" role="contentinfo">
273
+ <p><a href="http://validator.w3.org/check/referer">Validate</a>
274
+ <p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.1.
275
+ <p>Based on <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
276
+ </footer>
277
+
data/html/Sycsvpro.html CHANGED
@@ -97,6 +97,8 @@
97
97
 
98
98
  <p>Operating csv files</p>
99
99
 
100
+ <p>Operating csv files</p>
101
+
100
102
  <p>Operating csv files</p>
101
103
 
102
104
  </section>
data/html/created.rid CHANGED
@@ -1,6 +1,6 @@
1
- Fri, 21 Feb 2014 22:50:15 +0100
1
+ Sun, 23 Feb 2014 13:56:52 +0100
2
2
  README.rdoc Sun, 16 Feb 2014 22:01:46 +0100
3
- lib/sycsvpro.rb Fri, 21 Feb 2014 22:22:32 +0100
3
+ lib/sycsvpro.rb Sun, 23 Feb 2014 12:40:24 +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
@@ -8,12 +8,13 @@ lib/sycsvpro/collector.rb Sun, 16 Feb 2014 20:59:27 +0100
8
8
  lib/sycsvpro/column_filter.rb Sun, 16 Feb 2014 21:10:11 +0100
9
9
  lib/sycsvpro/counter.rb Fri, 21 Feb 2014 21:11:49 +0100
10
10
  lib/sycsvpro/dsl.rb Tue, 18 Feb 2014 21:34:51 +0100
11
- lib/sycsvpro/extractor.rb Tue, 18 Feb 2014 19:42:16 +0100
11
+ lib/sycsvpro/extractor.rb Sat, 22 Feb 2014 17:58:18 +0100
12
12
  lib/sycsvpro/filter.rb Tue, 18 Feb 2014 20:23:57 +0100
13
13
  lib/sycsvpro/header.rb Tue, 18 Feb 2014 19:50:26 +0100
14
14
  lib/sycsvpro/mapper.rb Tue, 18 Feb 2014 19:45:47 +0100
15
15
  lib/sycsvpro/profiler.rb Sun, 16 Feb 2014 21:31:39 +0100
16
16
  lib/sycsvpro/row_filter.rb Tue, 18 Feb 2014 19:45:25 +0100
17
17
  lib/sycsvpro/script_creator.rb Fri, 21 Feb 2014 22:42:17 +0100
18
- lib/sycsvpro/version.rb Fri, 21 Feb 2014 21:22:36 +0100
19
- bin/sycsvpro Fri, 21 Feb 2014 22:47:07 +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
data/html/index.html CHANGED
@@ -102,6 +102,8 @@
102
102
 
103
103
  <li><a href="./Sycsvpro/ScriptCreator.html">Sycsvpro::ScriptCreator</a>
104
104
 
105
+ <li><a href="./Sycsvpro/ScriptList.html">Sycsvpro::ScriptList</a>
106
+
105
107
  </ul>
106
108
  </div>
107
109
 
@@ -1 +1 @@
1
- var search_data = {"index":{"searchIndex":["dsl","object","sycsvpro","allocator","analyzer","calculator","collector","columnfilter","counter","extractor","filter","header","mapper","profiler","rowfilter","scriptcreator","execute()","execute()","execute()","execute()","execute()","execute()","execute()","has_filter?()","method_missing()","method_missing()","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::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::scriptcreator::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"],["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. 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"],["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","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"]]}}
@@ -91,6 +91,9 @@
91
91
  <li class="class">
92
92
  <a href="Sycsvpro/ScriptCreator.html">Sycsvpro::ScriptCreator</a>
93
93
  </li>
94
+ <li class="class">
95
+ <a href="Sycsvpro/ScriptList.html">Sycsvpro::ScriptList</a>
96
+ </li>
94
97
  </ul>
95
98
 
96
99
  <h2 id="methods">Methods</h2>
@@ -102,9 +105,9 @@
102
105
  <span class="container">Sycsvpro::Allocator</span>
103
106
 
104
107
  <li class="method">
105
- <a href="Sycsvpro/ScriptCreator.html#method-c-new">::new</a>
108
+ <a href="Sycsvpro/Profiler.html#method-c-new">::new</a>
106
109
  &mdash;
107
- <span class="container">Sycsvpro::ScriptCreator</span>
110
+ <span class="container">Sycsvpro::Profiler</span>
108
111
 
109
112
  <li class="method">
110
113
  <a href="Sycsvpro/Analyzer.html#method-c-new">::new</a>
@@ -112,9 +115,9 @@
112
115
  <span class="container">Sycsvpro::Analyzer</span>
113
116
 
114
117
  <li class="method">
115
- <a href="Sycsvpro/Profiler.html#method-c-new">::new</a>
118
+ <a href="Sycsvpro/Mapper.html#method-c-new">::new</a>
116
119
  &mdash;
117
- <span class="container">Sycsvpro::Profiler</span>
120
+ <span class="container">Sycsvpro::Mapper</span>
118
121
 
119
122
  <li class="method">
120
123
  <a href="Sycsvpro/Calculator.html#method-c-new">::new</a>
@@ -122,14 +125,14 @@
122
125
  <span class="container">Sycsvpro::Calculator</span>
123
126
 
124
127
  <li class="method">
125
- <a href="Sycsvpro/Mapper.html#method-c-new">::new</a>
128
+ <a href="Sycsvpro/Filter.html#method-c-new">::new</a>
126
129
  &mdash;
127
- <span class="container">Sycsvpro::Mapper</span>
130
+ <span class="container">Sycsvpro::Filter</span>
128
131
 
129
132
  <li class="method">
130
- <a href="Sycsvpro/Header.html#method-c-new">::new</a>
133
+ <a href="Sycsvpro/Extractor.html#method-c-new">::new</a>
131
134
  &mdash;
132
- <span class="container">Sycsvpro::Header</span>
135
+ <span class="container">Sycsvpro::Extractor</span>
133
136
 
134
137
  <li class="method">
135
138
  <a href="Sycsvpro/Collector.html#method-c-new">::new</a>
@@ -137,29 +140,29 @@
137
140
  <span class="container">Sycsvpro::Collector</span>
138
141
 
139
142
  <li class="method">
140
- <a href="Sycsvpro/Counter.html#method-c-new">::new</a>
143
+ <a href="Sycsvpro/ScriptCreator.html#method-c-new">::new</a>
141
144
  &mdash;
142
- <span class="container">Sycsvpro::Counter</span>
145
+ <span class="container">Sycsvpro::ScriptCreator</span>
143
146
 
144
147
  <li class="method">
145
- <a href="Sycsvpro/Extractor.html#method-c-new">::new</a>
148
+ <a href="Sycsvpro/ScriptList.html#method-c-new">::new</a>
146
149
  &mdash;
147
- <span class="container">Sycsvpro::Extractor</span>
150
+ <span class="container">Sycsvpro::ScriptList</span>
148
151
 
149
152
  <li class="method">
150
- <a href="Sycsvpro/Filter.html#method-c-new">::new</a>
153
+ <a href="Sycsvpro/Counter.html#method-c-new">::new</a>
151
154
  &mdash;
152
- <span class="container">Sycsvpro::Filter</span>
155
+ <span class="container">Sycsvpro::Counter</span>
153
156
 
154
157
  <li class="method">
155
- <a href="Sycsvpro/Counter.html#method-i-execute">#execute</a>
158
+ <a href="Sycsvpro/Header.html#method-c-new">::new</a>
156
159
  &mdash;
157
- <span class="container">Sycsvpro::Counter</span>
160
+ <span class="container">Sycsvpro::Header</span>
158
161
 
159
162
  <li class="method">
160
- <a href="Sycsvpro/Allocator.html#method-i-execute">#execute</a>
163
+ <a href="Sycsvpro/Collector.html#method-i-execute">#execute</a>
161
164
  &mdash;
162
- <span class="container">Sycsvpro::Allocator</span>
165
+ <span class="container">Sycsvpro::Collector</span>
163
166
 
164
167
  <li class="method">
165
168
  <a href="Sycsvpro/Profiler.html#method-i-execute">#execute</a>
@@ -167,9 +170,9 @@
167
170
  <span class="container">Sycsvpro::Profiler</span>
168
171
 
169
172
  <li class="method">
170
- <a href="Sycsvpro/Mapper.html#method-i-execute">#execute</a>
173
+ <a href="Sycsvpro/Calculator.html#method-i-execute">#execute</a>
171
174
  &mdash;
172
- <span class="container">Sycsvpro::Mapper</span>
175
+ <span class="container">Sycsvpro::Calculator</span>
173
176
 
174
177
  <li class="method">
175
178
  <a href="Sycsvpro/Extractor.html#method-i-execute">#execute</a>
@@ -177,22 +180,27 @@
177
180
  <span class="container">Sycsvpro::Extractor</span>
178
181
 
179
182
  <li class="method">
180
- <a href="Sycsvpro/Collector.html#method-i-execute">#execute</a>
183
+ <a href="Sycsvpro/Counter.html#method-i-execute">#execute</a>
181
184
  &mdash;
182
- <span class="container">Sycsvpro::Collector</span>
185
+ <span class="container">Sycsvpro::Counter</span>
183
186
 
184
187
  <li class="method">
185
- <a href="Sycsvpro/Calculator.html#method-i-execute">#execute</a>
188
+ <a href="Sycsvpro/Mapper.html#method-i-execute">#execute</a>
186
189
  &mdash;
187
- <span class="container">Sycsvpro::Calculator</span>
190
+ <span class="container">Sycsvpro::Mapper</span>
188
191
 
189
192
  <li class="method">
190
- <a href="Sycsvpro/Filter.html#method-i-has_filter-3F">#has_filter?</a>
193
+ <a href="Sycsvpro/Allocator.html#method-i-execute">#execute</a>
191
194
  &mdash;
192
- <span class="container">Sycsvpro::Filter</span>
195
+ <span class="container">Sycsvpro::Allocator</span>
193
196
 
194
197
  <li class="method">
195
- <a href="Sycsvpro/Filter.html#method-i-method_missing">#method_missing</a>
198
+ <a href="Sycsvpro/ScriptList.html#method-i-execute">#execute</a>
199
+ &mdash;
200
+ <span class="container">Sycsvpro::ScriptList</span>
201
+
202
+ <li class="method">
203
+ <a href="Sycsvpro/Filter.html#method-i-has_filter-3F">#has_filter?</a>
196
204
  &mdash;
197
205
  <span class="container">Sycsvpro::Filter</span>
198
206
 
@@ -201,6 +209,11 @@
201
209
  &mdash;
202
210
  <span class="container">Sycsvpro::Calculator</span>
203
211
 
212
+ <li class="method">
213
+ <a href="Sycsvpro/Filter.html#method-i-method_missing">#method_missing</a>
214
+ &mdash;
215
+ <span class="container">Sycsvpro::Filter</span>
216
+
204
217
  <li class="method">
205
218
  <a href="Sycsvpro/Filter.html#method-i-pivot_each_column">#pivot_each_column</a>
206
219
  &mdash;
@@ -212,9 +225,9 @@
212
225
  <span class="container">Sycsvpro::Filter</span>
213
226
 
214
227
  <li class="method">
215
- <a href="Sycsvpro/RowFilter.html#method-i-process">#process</a>
228
+ <a href="Sycsvpro/Header.html#method-i-process">#process</a>
216
229
  &mdash;
217
- <span class="container">Sycsvpro::RowFilter</span>
230
+ <span class="container">Sycsvpro::Header</span>
218
231
 
219
232
  <li class="method">
220
233
  <a href="Sycsvpro/ColumnFilter.html#method-i-process">#process</a>
@@ -222,9 +235,9 @@
222
235
  <span class="container">Sycsvpro::ColumnFilter</span>
223
236
 
224
237
  <li class="method">
225
- <a href="Sycsvpro/Header.html#method-i-process">#process</a>
238
+ <a href="Sycsvpro/RowFilter.html#method-i-process">#process</a>
226
239
  &mdash;
227
- <span class="container">Sycsvpro::Header</span>
240
+ <span class="container">Sycsvpro::RowFilter</span>
228
241
 
229
242
  <li class="method">
230
243
  <a href="Sycsvpro/Counter.html#method-i-process_file">#process_file</a>
@@ -0,0 +1,51 @@
1
+ # Operating csv files
2
+ module Sycsvpro
3
+
4
+ # Lists the contents of the script directory. Optionally listing a specific script file and also
5
+ # optionally the methods and associated description of the methods
6
+ class ScriptList
7
+
8
+ # Directory that holds the scripts
9
+ attr_reader :script_dir
10
+ # Script file of interest
11
+ attr_reader :script_file
12
+ # Switch indicating whether to show methods
13
+ attr_reader :show_methods
14
+ # Hash holding the list of scripts
15
+ attr_reader :list
16
+
17
+ # Creates a new ScriptList. Takes params script_dir, script_file and show_methods
18
+ def initialize(options={})
19
+ @script_dir = options[:dir]
20
+ @script_file = options[:script] || '*.rb'
21
+ @show_methods = options[:show_methods]
22
+ @list = {}
23
+ end
24
+
25
+ # Retrieves the information about scripts and methods from the script directory
26
+ def execute
27
+ scripts = Dir.glob(File.join(@script_dir, @script_file))
28
+ scripts.each do |script|
29
+ list[script] = []
30
+ if show_methods
31
+ list[script] = retrieve_methods(script)
32
+ end
33
+ end
34
+ list
35
+ end
36
+
37
+ private
38
+
39
+ # Retrieve the methods including comments if available
40
+ def retrieve_methods(script)
41
+ code = File.read(script)
42
+ methods = code.scan(/((#.*\s)*def.*\s|def.*\s)/)
43
+ result = []
44
+ methods.each do |method|
45
+ result << method[0]
46
+ end
47
+ result
48
+ end
49
+ end
50
+
51
+ end
@@ -1,5 +1,5 @@
1
1
  # Operating csv files
2
2
  module Sycsvpro
3
3
  # Version number of sycsvpro
4
- VERSION = '0.0.6'
4
+ VERSION = '0.0.7'
5
5
  end
data/lib/sycsvpro.rb CHANGED
@@ -9,3 +9,4 @@ require 'sycsvpro/header.rb'
9
9
  require 'sycsvpro/calculator.rb'
10
10
  require 'sycsvpro/allocator.rb'
11
11
  require 'sycsvpro/script_creator.rb'
12
+ require 'sycsvpro/script_list.rb'
@@ -0,0 +1,16 @@
1
+ # Reading and writing
2
+ # a file
3
+ def read_write
4
+ # read the file
5
+ # write the file
6
+ puts 'done'
7
+ end
8
+
9
+ def message
10
+ puts 'yes this is a message'
11
+ end
12
+
13
+ # Say hello
14
+ def say_hello
15
+ puts 'hello'
16
+ end
@@ -0,0 +1,57 @@
1
+ require 'sycsvpro/script_list'
2
+
3
+ module Sycsvpro
4
+
5
+ describe ScriptList do
6
+
7
+ before do
8
+ @dir = File.join(File.dirname(__FILE__), "files")
9
+ @file_1 = File.join(File.dirname(__FILE__), "files/profile.rb")
10
+ @file_2 = File.join(File.dirname(__FILE__), "files/script.rb")
11
+ end
12
+
13
+ it "should list scripts" do
14
+ script_list = ScriptList.new(dir: @dir)
15
+
16
+ result = { @file_1 => [], @file_2 => [] }
17
+
18
+ script_list.execute.should eq result
19
+ end
20
+
21
+ it "should list specified script" do
22
+ script_list = ScriptList.new(dir: @dir, script: "profile.rb")
23
+
24
+ result = { @file_1 => [] }
25
+
26
+ script_list.execute.should eq result
27
+ end
28
+
29
+ it "should list specified script with methods" do
30
+ script_list = ScriptList.new(dir: @dir, script: "script.rb", show_methods: true)
31
+
32
+ result = {
33
+ @file_2 => ["# Reading and writing\n# a file\ndef read_write\n",
34
+ "def message\n",
35
+ "# Say hello\ndef say_hello\n"]
36
+ }
37
+
38
+ script_list.execute.should eq result
39
+
40
+ end
41
+
42
+ it "should list all scripts with methods" do
43
+ script_list = ScriptList.new(dir: @dir, show_methods: true)
44
+
45
+ result = {
46
+ @file_1 => ["def calc\n"],
47
+ @file_2 => ["# Reading and writing\n# a file\ndef read_write\n",
48
+ "def message\n",
49
+ "# Say hello\ndef say_hello\n"]
50
+ }
51
+
52
+ script_list.execute.should eq result
53
+ end
54
+
55
+ end
56
+
57
+ end
data/sycsvpro.rdoc CHANGED
@@ -7,7 +7,7 @@ SYNOPSIS
7
7
  sycsvpro [global options] command [command options] [arguments...]
8
8
 
9
9
  VERSION
10
- 0.0.5
10
+ 0.0.7
11
11
 
12
12
  GLOBAL OPTIONS
13
13
  -f, --file=FILE - CSV file to operate on (default: none)
@@ -27,4 +27,5 @@ COMMANDS
27
27
  execute - Executes the code provided in a file
28
28
  extract - Extract specified rows and columns from the file
29
29
  help - Shows a list of commands or help for one command
30
+ list - List scripts in the scripts directory with optionally listing methods
30
31
  map - Map values in columns to new values
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.6
4
+ version: 0.0.7
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-22 00:00:00.000000000 Z
11
+ date: 2014-02-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -118,6 +118,7 @@ files:
118
118
  - html/Sycsvpro/Profiler.html
119
119
  - html/Sycsvpro/RowFilter.html
120
120
  - html/Sycsvpro/ScriptCreator.html
121
+ - html/Sycsvpro/ScriptList.html
121
122
  - html/created.rid
122
123
  - html/fonts.css
123
124
  - html/fonts/Lato-Light.ttf
@@ -175,6 +176,7 @@ files:
175
176
  - lib/sycsvpro/profiler.rb
176
177
  - lib/sycsvpro/row_filter.rb
177
178
  - lib/sycsvpro/script_creator.rb
179
+ - lib/sycsvpro/script_list.rb
178
180
  - lib/sycsvpro/version.rb
179
181
  - spec/sycsvpro/allocator_spec.rb
180
182
  - spec/sycsvpro/analyze_spec.rb
@@ -184,8 +186,10 @@ files:
184
186
  - spec/sycsvpro/extractor_spec.rb
185
187
  - spec/sycsvpro/files/mappings
186
188
  - spec/sycsvpro/files/profile.rb
189
+ - spec/sycsvpro/files/script.rb
187
190
  - spec/sycsvpro/mapper_spec.rb
188
191
  - spec/sycsvpro/profiler_spec.rb
192
+ - spec/sycsvpro/script_list_spec.rb
189
193
  - sycsvpro.gemspec
190
194
  - sycsvpro.rdoc
191
195
  homepage: https://github.com/sugaryourcoffee/syc-svpro