importable 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,40 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
+ <title>Dummy</title>
6
+ <link href="/assets/application.css" media="screen" rel="stylesheet" type="text/css">
7
+ <script src="/assets/application.js" type="text/javascript"></script>
8
+ </head>
9
+ <body>
10
+
11
+
12
+ <h1>Foo required field spreadsheet upload</h1>
13
+
14
+ <form accept-charset="UTF-8" action="/import/foo_required_field/spreadsheet" enctype="multipart/form-data" method="post">
15
+ <div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓"></div>
16
+ <div id="error_explanation">
17
+ <h2>2 errors prohibited this foo required field spreadsheet from being saved:</h2>
18
+
19
+ <ul>
20
+ <li>Doof on line 3 can't be blank</li>
21
+ <li>Doof on line 4 can't be blank</li>
22
+ </ul>
23
+ </div>
24
+
25
+
26
+ <h2>File upload</h2>
27
+
28
+ <p><label for="file">Choose foo required field spreadsheet file</label></p>
29
+ <p><input id="file" name="file" type="file"></p>
30
+
31
+ <input id="current_step" name="current_step" type="hidden" value="upload_file"><div class="actions">
32
+ <p>
33
+ <input id="return_to" name="return_to" type="hidden" value="import"><input name="commit" type="submit" value="Upload"></p>
34
+ </div>
35
+
36
+ </form>
37
+
38
+
39
+ </body>
40
+ </html>
@@ -12,6 +12,16 @@ module Importable
12
12
  Spreadsheet.new(file: File.open(spreadsheet_file), mapper_name: 'foo_required_field')
13
13
  end
14
14
 
15
+ let(:foo_with_relations_spreadsheet) do
16
+ spreadsheet_file = support_file('foo_with_relations.xls')
17
+ Spreadsheet.new(file: File.open(spreadsheet_file), mapper_name: 'foo_with_relations')
18
+ end
19
+
20
+ let(:foo_with_relations_with_link_spreadsheet) do
21
+ spreadsheet_file = support_file('foo_with_relations.xls')
22
+ Spreadsheet.new(file: File.open(spreadsheet_file), mapper_name: 'foo_with_relations_with_link')
23
+ end
24
+
15
25
  let(:invalid_spreadsheet_require_params) do
16
26
  spreadsheet_file = support_file('foo_required_field_invalid.xlsx')
17
27
  Spreadsheet.new(file: File.open(spreadsheet_file), mapper_name: 'foo_required_param_and_field')
@@ -35,15 +45,22 @@ module Importable
35
45
  invalid_spreadsheet.errors.should be_empty
36
46
  end
37
47
 
48
+ it "should be valid if all underlying objects are valid" do
49
+ valid_spreadsheet.should be_valid
50
+ end
51
+
38
52
  it "should generate a list of meaningful error messages" do
39
53
  invalid_spreadsheet.valid?
40
54
  messages = invalid_spreadsheet.errors.messages[:doof]
41
- messages.should include "can't be blank (line 3)"
42
- messages.should include "can't be blank (line 4)"
55
+ messages.should include "on line 3 can't be blank"
56
+ messages.should include "on line 4 can't be blank"
43
57
  end
44
58
 
45
- it "should be valid if all underlying objects are valid" do
46
- valid_spreadsheet.should be_valid
59
+ it "should generate errors messages that show the original value if it was not blank but resulted in a nil attribute" do
60
+ foo_with_relations_spreadsheet.valid?
61
+
62
+ messages = foo_with_relations_spreadsheet.errors.messages[:foo_relation_id]
63
+ messages.should include "on line 5 could not be found: exists not"
47
64
  end
48
65
  end
49
66
  end
@@ -108,11 +108,12 @@ module Importable
108
108
  Mapper.mapper_types[4].should eq 'foo_required_param_and_field'
109
109
  Mapper.mapper_types[5].should eq 'foo_required_param_resource'
110
110
  Mapper.mapper_types[6].should eq 'foo_resource'
111
- Mapper.mapper_types[7].should eq 'moof'
112
- Mapper.mapper_types[8].should eq 'plural_widgets'
113
- Mapper.mapper_types[9].should eq 'singular_widget'
111
+ Mapper.mapper_types[7].should eq 'foo_with_relations'
112
+ Mapper.mapper_types[8].should eq 'moof'
113
+ Mapper.mapper_types[9].should eq 'plural_widgets'
114
+ Mapper.mapper_types[10].should eq 'singular_widget'
114
115
 
115
- Mapper.mapper_types.should have_exactly(10).items
116
+ Mapper.mapper_types.should have_exactly(11).items
116
117
  end
117
118
  end
118
119
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: importable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-09-29 00:00:00.000000000Z
12
+ date: 2011-09-30 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &70359823971400 !ruby/object:Gem::Requirement
16
+ requirement: &70260575092440 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 3.1.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70359823971400
24
+ version_requirements: *70260575092440
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: carrierwave
27
- requirement: &70359823967580 !ruby/object:Gem::Requirement
27
+ requirement: &70260575091880 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 0.5.7
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70359823967580
35
+ version_requirements: *70260575091880
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: roo
38
- requirement: &70359823962580 !ruby/object:Gem::Requirement
38
+ requirement: &70260575091420 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.9.7
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70359823962580
46
+ version_requirements: *70260575091420
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rubyzip2
49
- requirement: &70359823958180 !ruby/object:Gem::Requirement
49
+ requirement: &70260575090920 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 2.0.1
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70359823958180
57
+ version_requirements: *70260575090920
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: spreadsheet
60
- requirement: &70359823948960 !ruby/object:Gem::Requirement
60
+ requirement: &70260575090460 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 0.6.5.9
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70359823948960
68
+ version_requirements: *70260575090460
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: google-spreadsheet-ruby
71
- requirement: &70359823945200 !ruby/object:Gem::Requirement
71
+ requirement: &70260575090000 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: 0.1.5
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *70359823945200
79
+ version_requirements: *70260575090000
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: sqlite3
82
- requirement: &70359823939880 !ruby/object:Gem::Requirement
82
+ requirement: &70260575089480 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ~>
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: 1.3.4
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70359823939880
90
+ version_requirements: *70260575089480
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: rspec-rails
93
- requirement: &70359823936380 !ruby/object:Gem::Requirement
93
+ requirement: &70260575088940 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ~>
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: 2.6.1
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *70359823936380
101
+ version_requirements: *70260575088940
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: capybara
104
- requirement: &70359823919340 !ruby/object:Gem::Requirement
104
+ requirement: &70260575088420 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ~>
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: 1.1.1
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *70359823919340
112
+ version_requirements: *70260575088420
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: launchy
115
- requirement: &70359823913480 !ruby/object:Gem::Requirement
115
+ requirement: &70260575087880 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ~>
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: 2.0.5
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *70359823913480
123
+ version_requirements: *70260575087880
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: mocha
126
- requirement: &70359823905300 !ruby/object:Gem::Requirement
126
+ requirement: &70260575087340 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ~>
@@ -131,10 +131,10 @@ dependencies:
131
131
  version: 0.10.0
132
132
  type: :development
133
133
  prerelease: false
134
- version_requirements: *70359823905300
134
+ version_requirements: *70260575087340
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: guard-rspec
137
- requirement: &70359823899440 !ruby/object:Gem::Requirement
137
+ requirement: &70260575086860 !ruby/object:Gem::Requirement
138
138
  none: false
139
139
  requirements:
140
140
  - - ~>
@@ -142,10 +142,10 @@ dependencies:
142
142
  version: 0.4.5
143
143
  type: :development
144
144
  prerelease: false
145
- version_requirements: *70359823899440
145
+ version_requirements: *70260575086860
146
146
  - !ruby/object:Gem::Dependency
147
147
  name: fakeweb
148
- requirement: &70359823894240 !ruby/object:Gem::Requirement
148
+ requirement: &70260575086340 !ruby/object:Gem::Requirement
149
149
  none: false
150
150
  requirements:
151
151
  - - ~>
@@ -153,10 +153,10 @@ dependencies:
153
153
  version: 1.3.0
154
154
  type: :development
155
155
  prerelease: false
156
- version_requirements: *70359823894240
156
+ version_requirements: *70260575086340
157
157
  - !ruby/object:Gem::Dependency
158
158
  name: vcr
159
- requirement: &70359823891880 !ruby/object:Gem::Requirement
159
+ requirement: &70260575085820 !ruby/object:Gem::Requirement
160
160
  none: false
161
161
  requirements:
162
162
  - - ~>
@@ -164,7 +164,7 @@ dependencies:
164
164
  version: 1.11.3
165
165
  type: :development
166
166
  prerelease: false
167
- version_requirements: *70359823891880
167
+ version_requirements: *70260575085820
168
168
  description: An engine for importing spreadsheets (or `ActiveResources`) into a Rails
169
169
  app, easily.
170
170
  email:
@@ -194,7 +194,6 @@ files:
194
194
  - app/views/importable/spreadsheets/new.html.erb
195
195
  - app/views/importable/spreadsheets/show.html.erb
196
196
  - config/routes.rb
197
- - db/development.sqlite3
198
197
  - db/migrate/20110915001957_create_importable_spreadsheets.rb
199
198
  - db/migrate/20110925024334_rename_spreadsheet_object_type_to_mapper_name.rb
200
199
  - db/migrate/20110925034334_rename_spreadsheet_to_importer.rb
@@ -232,11 +231,13 @@ files:
232
231
  - spec/dummy/app/imports/foo_required_param_mapper.rb
233
232
  - spec/dummy/app/imports/foo_required_param_resource_mapper.rb
234
233
  - spec/dummy/app/imports/foo_resource_mapper.rb
234
+ - spec/dummy/app/imports/foo_with_relations_mapper.rb
235
235
  - spec/dummy/app/imports/moof_mapper.rb
236
236
  - spec/dummy/app/imports/plural_widgets_mapper.rb
237
237
  - spec/dummy/app/imports/singular_widget_mapper.rb
238
238
  - spec/dummy/app/models/foo.rb
239
239
  - spec/dummy/app/models/foo_importer.rb
240
+ - spec/dummy/app/models/foo_relation.rb
240
241
  - spec/dummy/app/models/foo_required_field.rb
241
242
  - spec/dummy/app/models/foo_required_param_resource.rb
242
243
  - spec/dummy/app/models/foo_resource.rb
@@ -269,8 +270,10 @@ files:
269
270
  - spec/dummy/db/migrate/20110913175340_create_foo_required_fields.rb
270
271
  - spec/dummy/db/migrate/20110913175348_create_foos.rb
271
272
  - spec/dummy/db/migrate/20110913275348_create_foo_importers.rb
273
+ - spec/dummy/db/migrate/20110913375348_create_foo_relations.rb
272
274
  - spec/dummy/db/schema.rb
273
275
  - spec/dummy/db/test.sqlite3
276
+ - spec/dummy/log/development.log
274
277
  - spec/dummy/log/test.log
275
278
  - spec/dummy/public/404.html
276
279
  - spec/dummy/public/422.html
@@ -293,6 +296,7 @@ files:
293
296
  - spec/dummy/tmp/capybara/capybara-201109281703086938696640.html
294
297
  - spec/dummy/tmp/capybara/capybara-201109281704531943698731.html
295
298
  - spec/dummy/tmp/capybara/capybara-201109281705406407095670.html
299
+ - spec/dummy/tmp/capybara/capybara-201109300007211668347725.html
296
300
  - spec/dummy/tmp/uploads/importable/spreadsheet/file/foo/1/foo_multi_worksheet.xlsx
297
301
  - spec/dummy/tmp/uploads/importable/spreadsheet/file/foo/1/foo_single_worksheet.xlsx
298
302
  - spec/dummy/tmp/uploads/importable/spreadsheet/file/foo_required_field/1/foo_multi_worksheet_required_field_invalid.xlsx
@@ -316,6 +320,7 @@ files:
316
320
  - spec/support/files/foo_required_field_valid.xlsx
317
321
  - spec/support/files/foo_single_worksheet.xls
318
322
  - spec/support/files/foo_single_worksheet.xlsx
323
+ - spec/support/files/foo_with_relations.xls
319
324
  - spec/support/files/text.txt
320
325
  - spec/support/vcr.rb
321
326
  homepage: https://github.com/mikebannister/importable
@@ -332,7 +337,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
332
337
  version: '0'
333
338
  segments:
334
339
  - 0
335
- hash: -2879067979405071531
340
+ hash: 4261678296264879702
336
341
  required_rubygems_version: !ruby/object:Gem::Requirement
337
342
  none: false
338
343
  requirements:
@@ -341,7 +346,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
341
346
  version: '0'
342
347
  segments:
343
348
  - 0
344
- hash: -2879067979405071531
349
+ hash: 4261678296264879702
345
350
  requirements: []
346
351
  rubyforge_project:
347
352
  rubygems_version: 1.8.10
@@ -367,11 +372,13 @@ test_files:
367
372
  - spec/dummy/app/imports/foo_required_param_mapper.rb
368
373
  - spec/dummy/app/imports/foo_required_param_resource_mapper.rb
369
374
  - spec/dummy/app/imports/foo_resource_mapper.rb
375
+ - spec/dummy/app/imports/foo_with_relations_mapper.rb
370
376
  - spec/dummy/app/imports/moof_mapper.rb
371
377
  - spec/dummy/app/imports/plural_widgets_mapper.rb
372
378
  - spec/dummy/app/imports/singular_widget_mapper.rb
373
379
  - spec/dummy/app/models/foo.rb
374
380
  - spec/dummy/app/models/foo_importer.rb
381
+ - spec/dummy/app/models/foo_relation.rb
375
382
  - spec/dummy/app/models/foo_required_field.rb
376
383
  - spec/dummy/app/models/foo_required_param_resource.rb
377
384
  - spec/dummy/app/models/foo_resource.rb
@@ -404,8 +411,10 @@ test_files:
404
411
  - spec/dummy/db/migrate/20110913175340_create_foo_required_fields.rb
405
412
  - spec/dummy/db/migrate/20110913175348_create_foos.rb
406
413
  - spec/dummy/db/migrate/20110913275348_create_foo_importers.rb
414
+ - spec/dummy/db/migrate/20110913375348_create_foo_relations.rb
407
415
  - spec/dummy/db/schema.rb
408
416
  - spec/dummy/db/test.sqlite3
417
+ - spec/dummy/log/development.log
409
418
  - spec/dummy/log/test.log
410
419
  - spec/dummy/public/404.html
411
420
  - spec/dummy/public/422.html
@@ -428,6 +437,7 @@ test_files:
428
437
  - spec/dummy/tmp/capybara/capybara-201109281703086938696640.html
429
438
  - spec/dummy/tmp/capybara/capybara-201109281704531943698731.html
430
439
  - spec/dummy/tmp/capybara/capybara-201109281705406407095670.html
440
+ - spec/dummy/tmp/capybara/capybara-201109300007211668347725.html
431
441
  - spec/dummy/tmp/uploads/importable/spreadsheet/file/foo/1/foo_multi_worksheet.xlsx
432
442
  - spec/dummy/tmp/uploads/importable/spreadsheet/file/foo/1/foo_single_worksheet.xlsx
433
443
  - spec/dummy/tmp/uploads/importable/spreadsheet/file/foo_required_field/1/foo_multi_worksheet_required_field_invalid.xlsx
@@ -451,5 +461,6 @@ test_files:
451
461
  - spec/support/files/foo_required_field_valid.xlsx
452
462
  - spec/support/files/foo_single_worksheet.xls
453
463
  - spec/support/files/foo_single_worksheet.xlsx
464
+ - spec/support/files/foo_with_relations.xls
454
465
  - spec/support/files/text.txt
455
466
  - spec/support/vcr.rb
File without changes