superseeder 0.9.2 → 0.9.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 +4 -4
- data/Rakefile +13 -8
- data/lib/superseeder/adapter.rb +30 -0
- data/lib/superseeder/adapters/active_record.rb +31 -0
- data/lib/superseeder/adapters/mongoid.rb +31 -0
- data/lib/superseeder/formats/roo.rb +14 -14
- data/lib/superseeder/seedable.rb +11 -5
- data/lib/superseeder/version.rb +1 -1
- data/test/adapters/active_record.rb +26 -0
- data/test/adapters/all.rb +31 -0
- data/test/adapters/mongoid.rb +25 -0
- data/test/adapters/mongoid.yml +6 -0
- data/test/adapters/schema.rb +12 -0
- data/test/dummy/config/application.rb +16 -2
- data/test/dummy/config/environments/test.rb +3 -1
- data/test/dummy/db/seeds/data/cars_with_parkings.csv +4 -0
- data/test/dummy/db/seeds/data/cars_without_parkings.csv +4 -0
- data/test/dummy/db/seeds/data/multiple_2.wxwxwx +0 -0
- data/test/dummy/db/seeds/data/noformat.tttt +0 -0
- data/test/dummy/db/seeds/data/parkings_with_cars.csv +5 -0
- data/test/dummy/db/seeds/data/parkings_without_cars.csv +5 -0
- data/test/dummy/db/seeds/data/whatevers.wxwxwx +0 -0
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/test.log +5476 -0
- data/test/superseeder/formats/roo_test.rb +56 -0
- data/test/superseeder/seedable_test.rb +54 -0
- data/test/test_helper.rb +25 -8
- metadata +81 -6
- data/test/superseeder_test.rb +0 -7
- /data/test/dummy/{public/favicon.ico → db/seeds/data/multiple_1.wxwxwx} +0 -0
@@ -0,0 +1,56 @@
|
|
1
|
+
require_relative '../../test_helper'
|
2
|
+
require 'superseeder/seedable'
|
3
|
+
|
4
|
+
describe '#seed' do
|
5
|
+
Parking.extend ::Superseeder::Seedable
|
6
|
+
Car.extend ::Superseeder::Seedable
|
7
|
+
|
8
|
+
describe 'with csv format' do
|
9
|
+
|
10
|
+
{ Parking => [%w(parkings_without_cars.csv parkings_with_cars.csv), 4],
|
11
|
+
Car => [%w(cars_with_parkings.csv cars_without_parkings.csv), 3] }.each do |klass, (filenames, count)|
|
12
|
+
describe "seeds all the #{klass} rows" do
|
13
|
+
filenames.each do |filename|
|
14
|
+
it "from #{filename}" do
|
15
|
+
klass.seed :filename => filename
|
16
|
+
assert_equal count, klass.count
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
describe 'with no relation' do
|
23
|
+
it 'sets the values' do
|
24
|
+
Parking.seed :filename => 'parkings_without_cars.csv'
|
25
|
+
assert_equal %w(South North East West).sort, Parking.all.map(&:name).sort
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe 'with single relations' do
|
30
|
+
before :each do
|
31
|
+
Parking.seed :filename => 'parkings_without_cars.csv'
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'sets the relations' do
|
35
|
+
Car.seed :filename => 'cars_with_parkings.csv'
|
36
|
+
Car.all.entries.each do |car|
|
37
|
+
assert_kind_of Parking, car.parking
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
describe 'with multiple relations' do
|
44
|
+
before :each do
|
45
|
+
Car.seed :filename => 'cars_without_parkings.csv'
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'sets the relations' do
|
49
|
+
Parking.seed :filename => 'parkings_with_cars.csv'
|
50
|
+
Car.all.entries.each do |car|
|
51
|
+
assert_kind_of Parking, car.parking
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
# Create a fake format taking the .wxwxwx extension that do nothing to
|
4
|
+
# test Superseeder::#seed without it actually performing anything
|
5
|
+
module ::Superseeder
|
6
|
+
module Formats
|
7
|
+
module TestFormat
|
8
|
+
|
9
|
+
def self.extensions
|
10
|
+
%w(.wxwxwx)
|
11
|
+
end
|
12
|
+
|
13
|
+
def __process(path, *args)
|
14
|
+
#Do nothing
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
klass = Class.new do
|
22
|
+
include ::Superseeder
|
23
|
+
end
|
24
|
+
|
25
|
+
describe '#seed' do
|
26
|
+
|
27
|
+
let(:object){ klass.new }
|
28
|
+
|
29
|
+
it 'extend the class with the format\'s module when the file is found' do
|
30
|
+
object.seed :whatever
|
31
|
+
assert_kind_of ::Superseeder::Formats::TestFormat, Whatever
|
32
|
+
end
|
33
|
+
|
34
|
+
describe 'with multiple candidate files' do
|
35
|
+
it 'raises an error if :filename is not specified' do
|
36
|
+
assert_raises(ArgumentError){ object.seed :multiple }
|
37
|
+
end
|
38
|
+
describe 'with :filename specified' do
|
39
|
+
it 'raises an error when the filename does not match any file' do
|
40
|
+
assert_raises(ArgumentError){ object.seed :multiple, :filename => 'multiple.wxwxwx' }
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'raises an error when no candidate file is found' do
|
46
|
+
assert_raises(ArgumentError){ object.seed :nofile }
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'raises an error when the file format is not supported by any module' do
|
50
|
+
assert_raises(ArgumentError){ object.seed :noformat }
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
|
data/test/test_helper.rb
CHANGED
@@ -1,16 +1,33 @@
|
|
1
1
|
# Configure Rails Environment
|
2
|
-
ENV[
|
2
|
+
ENV['RAILS_ENV'] = 'test'
|
3
3
|
|
4
|
-
require File.expand_path(
|
5
|
-
ActiveRecord::Migrator.migrations_paths = [File.expand_path(
|
6
|
-
require
|
4
|
+
require File.expand_path('../../test/dummy/config/environment.rb', __FILE__)
|
5
|
+
ActiveRecord::Migrator.migrations_paths = [File.expand_path('../../test/dummy/db/migrate', __FILE__)] if defined? ActiveRecord
|
6
|
+
require 'rails/test_help'
|
7
7
|
|
8
8
|
Rails.backtrace_cleaner.remove_silencers!
|
9
9
|
|
10
10
|
# Load support files
|
11
11
|
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
13
|
+
ENV['ADAPTER'] ||= 'active_record'
|
14
|
+
|
15
|
+
load File.dirname(__FILE__) + "/adapters/#{ENV['ADAPTER']}.rb"
|
16
|
+
|
17
|
+
require 'minitest/autorun'
|
18
|
+
|
19
|
+
require 'database_cleaner'
|
20
|
+
DatabaseCleaner.orm = ENV['ADAPTER']
|
21
|
+
DatabaseCleaner.strategy = :truncation
|
22
|
+
|
23
|
+
class MiniTest::Spec
|
24
|
+
|
25
|
+
before :each do
|
26
|
+
DatabaseCleaner.start
|
27
|
+
end
|
28
|
+
|
29
|
+
after :each do
|
30
|
+
DatabaseCleaner.clean
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: superseeder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Olivier Milla
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-01-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -38,6 +38,48 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: sqlite3
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 1.3.10
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 1.3.10
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: mongoid
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '4'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '4'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: database_cleaner
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 1.3.0
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 1.3.0
|
41
83
|
description: Superseeder simplifies writing and managing seeds for Rails models in
|
42
84
|
many different file formats.
|
43
85
|
email:
|
@@ -50,12 +92,20 @@ files:
|
|
50
92
|
- README.rdoc
|
51
93
|
- Rakefile
|
52
94
|
- lib/superseeder.rb
|
95
|
+
- lib/superseeder/adapter.rb
|
96
|
+
- lib/superseeder/adapters/active_record.rb
|
97
|
+
- lib/superseeder/adapters/mongoid.rb
|
53
98
|
- lib/superseeder/formats/csv.rb
|
54
99
|
- lib/superseeder/formats/roo.rb
|
55
100
|
- lib/superseeder/formats/yaml.rb
|
56
101
|
- lib/superseeder/seedable.rb
|
57
102
|
- lib/superseeder/version.rb
|
58
103
|
- lib/tasks/superseeder_tasks.rake
|
104
|
+
- test/adapters/active_record.rb
|
105
|
+
- test/adapters/all.rb
|
106
|
+
- test/adapters/mongoid.rb
|
107
|
+
- test/adapters/mongoid.yml
|
108
|
+
- test/adapters/schema.rb
|
59
109
|
- test/dummy/README.rdoc
|
60
110
|
- test/dummy/Rakefile
|
61
111
|
- test/dummy/app/assets/javascripts/application.js
|
@@ -85,11 +135,21 @@ files:
|
|
85
135
|
- test/dummy/config/locales/en.yml
|
86
136
|
- test/dummy/config/routes.rb
|
87
137
|
- test/dummy/config/secrets.yml
|
138
|
+
- test/dummy/db/seeds/data/cars_with_parkings.csv
|
139
|
+
- test/dummy/db/seeds/data/cars_without_parkings.csv
|
140
|
+
- test/dummy/db/seeds/data/multiple_1.wxwxwx
|
141
|
+
- test/dummy/db/seeds/data/multiple_2.wxwxwx
|
142
|
+
- test/dummy/db/seeds/data/noformat.tttt
|
143
|
+
- test/dummy/db/seeds/data/parkings_with_cars.csv
|
144
|
+
- test/dummy/db/seeds/data/parkings_without_cars.csv
|
145
|
+
- test/dummy/db/seeds/data/whatevers.wxwxwx
|
146
|
+
- test/dummy/db/test.sqlite3
|
147
|
+
- test/dummy/log/test.log
|
88
148
|
- test/dummy/public/404.html
|
89
149
|
- test/dummy/public/422.html
|
90
150
|
- test/dummy/public/500.html
|
91
|
-
- test/
|
92
|
-
- test/
|
151
|
+
- test/superseeder/formats/roo_test.rb
|
152
|
+
- test/superseeder/seedable_test.rb
|
93
153
|
- test/test_helper.rb
|
94
154
|
homepage: http://github.com/muichkine/superseeder
|
95
155
|
licenses:
|
@@ -116,12 +176,27 @@ signing_key:
|
|
116
176
|
specification_version: 4
|
117
177
|
summary: Easily seed your Rails models from sheet files.
|
118
178
|
test_files:
|
119
|
-
- test/
|
179
|
+
- test/adapters/active_record.rb
|
180
|
+
- test/adapters/all.rb
|
181
|
+
- test/adapters/schema.rb
|
182
|
+
- test/adapters/mongoid.yml
|
183
|
+
- test/adapters/mongoid.rb
|
184
|
+
- test/superseeder/formats/roo_test.rb
|
185
|
+
- test/superseeder/seedable_test.rb
|
186
|
+
- test/dummy/db/seeds/data/parkings_without_cars.csv
|
187
|
+
- test/dummy/db/seeds/data/cars_with_parkings.csv
|
188
|
+
- test/dummy/db/seeds/data/multiple_1.wxwxwx
|
189
|
+
- test/dummy/db/seeds/data/multiple_2.wxwxwx
|
190
|
+
- test/dummy/db/seeds/data/noformat.tttt
|
191
|
+
- test/dummy/db/seeds/data/parkings_with_cars.csv
|
192
|
+
- test/dummy/db/seeds/data/whatevers.wxwxwx
|
193
|
+
- test/dummy/db/seeds/data/cars_without_parkings.csv
|
194
|
+
- test/dummy/db/test.sqlite3
|
120
195
|
- test/dummy/config.ru
|
196
|
+
- test/dummy/log/test.log
|
121
197
|
- test/dummy/public/422.html
|
122
198
|
- test/dummy/public/404.html
|
123
199
|
- test/dummy/public/500.html
|
124
|
-
- test/dummy/public/favicon.ico
|
125
200
|
- test/dummy/README.rdoc
|
126
201
|
- test/dummy/bin/rails
|
127
202
|
- test/dummy/bin/bundle
|
data/test/superseeder_test.rb
DELETED
File without changes
|