extract 0.1.1 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,27 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+
4
+
5
+ describe 'Inline Def' do
6
+ let(:inline) do
7
+ doc = <<EOF
8
+ num squared
9
+ 1 1
10
+ 2 4
11
+ 3 9
12
+ 4 16
13
+ 5 25
14
+
15
+ 2 =VLOOKUP(A8,A2:B6,2,FALSE)
16
+ EOF
17
+ doc
18
+ end
19
+
20
+ let(:sheet) do
21
+ Extract::Sheet.inline(inline)
22
+ end
23
+
24
+ it 'smoke' do
25
+ sheet['B8'].should == 4.0
26
+ end
27
+ end
@@ -1,3 +1,4 @@
1
+ if false
1
2
  require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
3
 
3
4
  describe 'Persist' do
@@ -31,4 +32,5 @@ describe 'Persist' do
31
32
  s = Extract::Persist::Sheet.first.sheet_def
32
33
  s["B3"].should == 6
33
34
  end
35
+ end
34
36
  end
@@ -28,7 +28,7 @@ Spork.prefork do
28
28
  end
29
29
 
30
30
  f = File.expand_path(File.dirname(__FILE__)) + "/config/mongoid.yml"
31
- Mongoid.load! f,'development'
31
+ Mongoid.load! f,'test'
32
32
  end
33
33
 
34
34
  Spork.each_run do
@@ -0,0 +1,92 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe 'table' do
4
+ let(:sheet) do
5
+ doc = <<EOF
6
+ num squared
7
+ 1 1
8
+ 2 4
9
+ 3 9
10
+ 4 16
11
+ 5 25
12
+
13
+ 2 =VLOOKUP(A8,A2:B6,2,FALSE)
14
+ EOF
15
+ Extract::Sheet.inline(doc)
16
+ end
17
+
18
+ let(:sheet_def) do
19
+ res = Extract::SheetDefinition.new(:sheet => sheet)
20
+ res.tables.add "nums","A1:B6"
21
+ res
22
+ end
23
+
24
+ it 'smoke' do
25
+ sheet['B8'].should == 4
26
+ end
27
+
28
+ it 'smoke2' do
29
+ sheet.deps('B8').sort.should == Extract.expand_cells("A2:B6","A8").sort
30
+ end
31
+
32
+ it 'reg deps' do
33
+ sheet_def.deps('B8').sort.should == Extract.expand_cells("A2:B6","A8").sort
34
+ end
35
+
36
+ it 'table deps' do
37
+ sheet_def.deps('B8', :table => true).sort.should == %w(nums A8).sort
38
+ end
39
+
40
+ describe "table obj" do
41
+ let(:table) do
42
+ sheet_def.tables["nums"]
43
+ end
44
+ it "has range" do
45
+ table.cell_range.should == "A1:B6"
46
+ end
47
+ it "has cells" do
48
+ table.cells.size.should == 12
49
+ end
50
+
51
+ it 'has rows' do
52
+ table.rows.size.should == 5
53
+ end
54
+ it 'row access' do
55
+ table.rows[0]['num'].should == 1
56
+ end
57
+
58
+ it 'field names' do
59
+ table.field_names.should == %w(num squared)
60
+ end
61
+
62
+ it 'sql statements' do
63
+ table.sql_statements.size.should == 6
64
+ end
65
+
66
+ end
67
+ end
68
+
69
+ describe 'table - all' do
70
+ let(:sheet) do
71
+ doc = <<EOF
72
+ num squared
73
+ 1 1
74
+ 2 4
75
+ 3 9
76
+ 4 16
77
+ 5 25
78
+ EOF
79
+ Extract::Sheet.inline(doc)
80
+ end
81
+
82
+ let(:sheet_def) do
83
+ Extract::SheetDefinition.new(:sheet => sheet)
84
+ end
85
+
86
+ let(:table) do
87
+ sheet_def.tables['all']
88
+ end
89
+ it 'has rows' do
90
+ table.rows.size.should == 5
91
+ end
92
+ end
@@ -3,4 +3,11 @@ development:
3
3
  default:
4
4
  database: extract_web
5
5
  hosts:
6
- - localhost:27017
6
+ - localhost:27017
7
+ test:
8
+ sessions:
9
+ default:
10
+ uri: mongodb://extract_test:extract_test@linus.mongohq.com:10038/extract_test
11
+ options:
12
+ skip_version_check: true
13
+ safe: true
metadata CHANGED
@@ -1,224 +1,197 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: extract
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
5
- prerelease:
4
+ version: 0.1.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - Mike Harris
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-02-21 00:00:00.000000000 Z
11
+ date: 2015-01-15 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
- name: guard
14
+ name: mharris_ext
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
- name: guard-rspec
28
+ name: treetop
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
- name: guard-spork
42
+ name: roo
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
- name: mharris_ext
56
+ name: rb-fsevent
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - ~>
68
60
  - !ruby/object:Gem::Version
69
- version: '0'
61
+ version: 0.9.1
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - ~>
76
67
  - !ruby/object:Gem::Version
77
- version: '0'
68
+ version: 0.9.1
78
69
  - !ruby/object:Gem::Dependency
79
- name: treetop
70
+ name: mongoid
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - '>='
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :runtime
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - '>='
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  - !ruby/object:Gem::Dependency
95
- name: lre
84
+ name: rspec
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ! '>='
87
+ - - ~>
100
88
  - !ruby/object:Gem::Version
101
- version: '0'
102
- type: :runtime
89
+ version: 2.8.0
90
+ type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ! '>='
94
+ - - ~>
108
95
  - !ruby/object:Gem::Version
109
- version: '0'
96
+ version: 2.8.0
110
97
  - !ruby/object:Gem::Dependency
111
- name: roo
98
+ name: rdoc
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
- - - ! '>='
101
+ - - ~>
116
102
  - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :runtime
103
+ version: '3.12'
104
+ type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
- - - ! '>='
108
+ - - ~>
124
109
  - !ruby/object:Gem::Version
125
- version: '0'
110
+ version: '3.12'
126
111
  - !ruby/object:Gem::Dependency
127
- name: rb-fsevent
112
+ name: bundler
128
113
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
114
  requirements:
131
115
  - - ~>
132
116
  - !ruby/object:Gem::Version
133
- version: 0.9.1
134
- type: :runtime
117
+ version: '1.2'
118
+ type: :development
135
119
  prerelease: false
136
120
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
121
  requirements:
139
122
  - - ~>
140
123
  - !ruby/object:Gem::Version
141
- version: 0.9.1
124
+ version: '1.2'
142
125
  - !ruby/object:Gem::Dependency
143
- name: mongoid
126
+ name: jeweler
144
127
  requirement: !ruby/object:Gem::Requirement
145
- none: false
146
128
  requirements:
147
- - - ! '>='
129
+ - - ~>
148
130
  - !ruby/object:Gem::Version
149
- version: '0'
150
- type: :runtime
131
+ version: 1.8.4
132
+ type: :development
151
133
  prerelease: false
152
134
  version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
135
  requirements:
155
- - - ! '>='
136
+ - - ~>
156
137
  - !ruby/object:Gem::Version
157
- version: '0'
138
+ version: 1.8.4
158
139
  - !ruby/object:Gem::Dependency
159
- name: rspec
140
+ name: guard
160
141
  requirement: !ruby/object:Gem::Requirement
161
- none: false
162
142
  requirements:
163
- - - ~>
143
+ - - '>='
164
144
  - !ruby/object:Gem::Version
165
- version: 2.8.0
145
+ version: '0'
166
146
  type: :development
167
147
  prerelease: false
168
148
  version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
149
  requirements:
171
- - - ~>
150
+ - - '>='
172
151
  - !ruby/object:Gem::Version
173
- version: 2.8.0
152
+ version: '0'
174
153
  - !ruby/object:Gem::Dependency
175
- name: rdoc
154
+ name: guard-rspec
176
155
  requirement: !ruby/object:Gem::Requirement
177
- none: false
178
156
  requirements:
179
- - - ~>
157
+ - - '>='
180
158
  - !ruby/object:Gem::Version
181
- version: '3.12'
159
+ version: '0'
182
160
  type: :development
183
161
  prerelease: false
184
162
  version_requirements: !ruby/object:Gem::Requirement
185
- none: false
186
163
  requirements:
187
- - - ~>
164
+ - - '>='
188
165
  - !ruby/object:Gem::Version
189
- version: '3.12'
166
+ version: '0'
190
167
  - !ruby/object:Gem::Dependency
191
- name: bundler
168
+ name: guard-spork
192
169
  requirement: !ruby/object:Gem::Requirement
193
- none: false
194
170
  requirements:
195
- - - ~>
171
+ - - '>='
196
172
  - !ruby/object:Gem::Version
197
- version: '1.2'
173
+ version: '0'
198
174
  type: :development
199
175
  prerelease: false
200
176
  version_requirements: !ruby/object:Gem::Requirement
201
- none: false
202
177
  requirements:
203
- - - ~>
178
+ - - '>='
204
179
  - !ruby/object:Gem::Version
205
- version: '1.2'
180
+ version: '0'
206
181
  - !ruby/object:Gem::Dependency
207
- name: jeweler
182
+ name: lre
208
183
  requirement: !ruby/object:Gem::Requirement
209
- none: false
210
184
  requirements:
211
- - - ~>
185
+ - - '>='
212
186
  - !ruby/object:Gem::Version
213
- version: 1.8.4
187
+ version: '0'
214
188
  type: :development
215
189
  prerelease: false
216
190
  version_requirements: !ruby/object:Gem::Requirement
217
- none: false
218
191
  requirements:
219
- - - ~>
192
+ - - '>='
220
193
  - !ruby/object:Gem::Version
221
- version: 1.8.4
194
+ version: '0'
222
195
  description: extract
223
196
  email: mharris717@gmail.com
224
197
  executables: []
@@ -239,8 +212,12 @@ files:
239
212
  - VERSION
240
213
  - extract.gemspec
241
214
  - lib/extract.rb
215
+ - lib/extract/cell.rb
242
216
  - lib/extract/excel_formulas.rb
217
+ - lib/extract/export/ddl.rb
218
+ - lib/extract/export/table.rb
243
219
  - lib/extract/formula.treetop
220
+ - lib/extract/inline_def.rb
244
221
  - lib/extract/math.treetop
245
222
  - lib/extract/math_calc.rb
246
223
  - lib/extract/parser.rb
@@ -248,6 +225,8 @@ files:
248
225
  - lib/extract/sheet.rb
249
226
  - lib/extract/sheet_comp.rb
250
227
  - lib/extract/sheet_definition.rb
228
+ - lib/extract/table.rb
229
+ - lib/extract/tables.rb
251
230
  - lib/extract/tree/base.rb
252
231
  - lib/extract/tree/cell.rb
253
232
  - lib/extract/tree/cond_exp.rb
@@ -260,15 +239,20 @@ files:
260
239
  - lib/extract/tree/string.rb
261
240
  - samples/baseball.xlsx
262
241
  - samples/div.xlsx
242
+ - samples/salescalls.xlsx
243
+ - spec/cell_spec.rb
263
244
  - spec/config/mongoid.yml
264
245
  - spec/deps_spec.rb
246
+ - spec/export/table_spec.rb
265
247
  - spec/extract_spec.rb
248
+ - spec/inline_def_spec.rb
266
249
  - spec/math_spec.rb
267
250
  - spec/parser_spec.rb
268
251
  - spec/persist_spec.rb
269
252
  - spec/sheet_definition_spec.rb
270
253
  - spec/sheet_spec.rb
271
254
  - spec/spec_helper.rb
255
+ - spec/table_spec.rb
272
256
  - vol/excel_test.rb
273
257
  - vol/parse_test.rb
274
258
  - vol/scratch.rb
@@ -283,29 +267,25 @@ files:
283
267
  homepage: http://github.com/mharris717/extract
284
268
  licenses:
285
269
  - MIT
270
+ metadata: {}
286
271
  post_install_message:
287
272
  rdoc_options: []
288
273
  require_paths:
289
274
  - lib
290
275
  required_ruby_version: !ruby/object:Gem::Requirement
291
- none: false
292
276
  requirements:
293
- - - ! '>='
277
+ - - '>='
294
278
  - !ruby/object:Gem::Version
295
279
  version: '0'
296
- segments:
297
- - 0
298
- hash: 4241226934057128656
299
280
  required_rubygems_version: !ruby/object:Gem::Requirement
300
- none: false
301
281
  requirements:
302
- - - ! '>='
282
+ - - '>='
303
283
  - !ruby/object:Gem::Version
304
284
  version: '0'
305
285
  requirements: []
306
286
  rubyforge_project:
307
- rubygems_version: 1.8.23
287
+ rubygems_version: 2.2.2
308
288
  signing_key:
309
- specification_version: 3
289
+ specification_version: 4
310
290
  summary: extract
311
291
  test_files: []