extract 0.1.1 → 0.1.3
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 +7 -0
- data/Gemfile +8 -4
- data/Gemfile.lock +116 -59
- data/VERSION +1 -1
- data/extract.gemspec +29 -17
- data/lib/extract.rb +33 -7
- data/lib/extract/cell.rb +34 -0
- data/lib/extract/excel_formulas.rb +1 -1
- data/lib/extract/export/ddl.rb +8 -0
- data/lib/extract/export/table.rb +48 -0
- data/lib/extract/formula.treetop +3 -0
- data/lib/extract/inline_def.rb +38 -0
- data/lib/extract/sheet.rb +12 -4
- data/lib/extract/sheet_definition.rb +37 -12
- data/lib/extract/table.rb +67 -0
- data/lib/extract/tables.rb +39 -0
- data/samples/salescalls.xlsx +0 -0
- data/spec/cell_spec.rb +31 -0
- data/spec/config/mongoid.yml +8 -1
- data/spec/export/table_spec.rb +45 -0
- data/spec/inline_def_spec.rb +27 -0
- data/spec/persist_spec.rb +2 -0
- data/spec/spec_helper.rb +1 -1
- data/spec/table_spec.rb +92 -0
- data/web/mongoid.yml +8 -1
- metadata +77 -97
@@ -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
|
data/spec/persist_spec.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
data/spec/table_spec.rb
ADDED
@@ -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
|
data/web/mongoid.yml
CHANGED
@@ -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.
|
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:
|
11
|
+
date: 2015-01-15 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
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:
|
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:
|
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:
|
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:
|
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:
|
68
|
+
version: 0.9.1
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
|
-
name:
|
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:
|
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:
|
102
|
-
type: :
|
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:
|
96
|
+
version: 2.8.0
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
|
-
name:
|
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: '
|
118
|
-
type: :
|
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: '
|
110
|
+
version: '3.12'
|
126
111
|
- !ruby/object:Gem::Dependency
|
127
|
-
name:
|
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:
|
134
|
-
type: :
|
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:
|
124
|
+
version: '1.2'
|
142
125
|
- !ruby/object:Gem::Dependency
|
143
|
-
name:
|
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:
|
150
|
-
type: :
|
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:
|
138
|
+
version: 1.8.4
|
158
139
|
- !ruby/object:Gem::Dependency
|
159
|
-
name:
|
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:
|
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:
|
152
|
+
version: '0'
|
174
153
|
- !ruby/object:Gem::Dependency
|
175
|
-
name:
|
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: '
|
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: '
|
166
|
+
version: '0'
|
190
167
|
- !ruby/object:Gem::Dependency
|
191
|
-
name:
|
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: '
|
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: '
|
180
|
+
version: '0'
|
206
181
|
- !ruby/object:Gem::Dependency
|
207
|
-
name:
|
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:
|
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:
|
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:
|
287
|
+
rubygems_version: 2.2.2
|
308
288
|
signing_key:
|
309
|
-
specification_version:
|
289
|
+
specification_version: 4
|
310
290
|
summary: extract
|
311
291
|
test_files: []
|