importable 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.
@@ -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