seedbank 0.2.1 → 0.3.0
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 +15 -0
- data/.gitignore +2 -0
- data/.travis.yml +6 -0
- data/Gemfile +2 -6
- data/README.md +10 -1
- data/gemfiles/rake0.9.gemfile +14 -0
- data/gemfiles/rake10.gemfile +15 -0
- data/lib/seedbank/dsl.rb +24 -9
- data/lib/seedbank/version.rb +1 -1
- data/lib/seedbank.rb +0 -2
- data/lib/tasks/seed.rake +10 -2
- data/test/dummy/db/seeds.rb +1 -0
- data/test/lib/seedbank/dsl_test.rb +46 -12
- data/test/lib/seedbank/runner_test.rb +8 -1
- data/test/lib/tasks/seed_rake_test.rb +6 -6
- metadata +7 -19
- data/lib/seedbank/rename_task.rb +0 -9
- data/lib/seedbank/task_manager.rb +0 -21
- data/test/lib/seedbank/rename_task_test.rb +0 -19
- data/test/lib/seedbank/task_manager_test.rb +0 -104
checksums.yaml
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
!binary "U0hBMQ==":
|
|
3
|
+
metadata.gz: !binary |-
|
|
4
|
+
NTE3NWRlOGJlYzUzNDIyYjcyZTU0ZGZhZDllZDE5MmZmODM3NzE5Mw==
|
|
5
|
+
data.tar.gz: !binary |-
|
|
6
|
+
ODFhMmMxNTNhYTViNDY2NjA1ZGZiYWVmYTU2M2QxMTk0YWQ5ZmU4Mg==
|
|
7
|
+
!binary "U0hBNTEy":
|
|
8
|
+
metadata.gz: !binary |-
|
|
9
|
+
MWZkODAzNDBhYTg0MzQ0NDc1MzZkMWI5OTczYzhiZWJjYzAzMjE4MDQxNjU1
|
|
10
|
+
NmFhZGIyYTM0MDY0OWQ5NDI5NDMxNTJkM2ZiNDczM2IyYTkxN2I1NmEyZTI4
|
|
11
|
+
MDYyYTlkNmNmODU2MWJiMzRmMGZiOTQ1ZDQzNmZmZTU3OGVkMGQ=
|
|
12
|
+
data.tar.gz: !binary |-
|
|
13
|
+
MmJjZjc4ZjBhNmU0MGFkZGExYjdhYzcxNGE5ZTQ4ZGEzNzMwOGI1NWUwYzE3
|
|
14
|
+
OGJiMGI5MDY5NWM1Nzc1ZmRiZDhhYTBmNTdmNWQ1OWNhNGQxYTAyZGVkYTJh
|
|
15
|
+
NTk0N2FiZjUwMTU5NTIyNDQ4MjUxZDQ5YzVmZGJkNDkxZGRhNmU=
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
|
@@ -3,14 +3,10 @@ source "http://rubygems.org"
|
|
|
3
3
|
# Specify your gem's dependencies in seedbank.gemspec
|
|
4
4
|
gemspec
|
|
5
5
|
|
|
6
|
-
group :test
|
|
7
|
-
gem 'rake'
|
|
8
|
-
end
|
|
6
|
+
gem 'rake', :group => :test
|
|
9
7
|
|
|
10
8
|
# for CRuby, Rubinius, including Windows and RubyInstaller
|
|
11
9
|
gem "sqlite3", :platform => [:ruby, :mswin, :mingw]
|
|
12
10
|
|
|
13
11
|
# for JRuby
|
|
14
|
-
platform :jruby
|
|
15
|
-
gem 'activerecord-jdbcsqlite3-adapter'
|
|
16
|
-
end
|
|
12
|
+
gem 'activerecord-jdbcsqlite3-adapter', :platform => :jruby
|
data/README.md
CHANGED
|
@@ -79,7 +79,7 @@ If you vendor the gem you'll need to change the require to the specific path.
|
|
|
79
79
|
Usage
|
|
80
80
|
=====
|
|
81
81
|
|
|
82
|
-
Seeds files are just plain old Ruby executed in your rails application environment so anything you could type into the rails console will work in your seeds.
|
|
82
|
+
Seeds files are just plain old Ruby executed in your rails application environment so anything you could type into the rails console will work in your seeds. Seeds files have to be named with the '.seeds.rb' extension.
|
|
83
83
|
|
|
84
84
|
db/seeds/companies.seeds.rb
|
|
85
85
|
```ruby
|
|
@@ -124,6 +124,8 @@ after "development:companies" do
|
|
|
124
124
|
end
|
|
125
125
|
```
|
|
126
126
|
|
|
127
|
+
*Note* - If you experience any errors like `Don't know how to build task 'db:seed:users'`. Ensure your specifying `after 'development:companies'` like the above example. This is the usual culprit (YMMV).
|
|
128
|
+
|
|
127
129
|
Contributors
|
|
128
130
|
============
|
|
129
131
|
```shell
|
|
@@ -135,6 +137,13 @@ git log | grep Author | sort | uniq
|
|
|
135
137
|
* Philip Arndt
|
|
136
138
|
* Peter Suschlik
|
|
137
139
|
* Joost Baaij
|
|
140
|
+
* Justin Smestad
|
|
141
|
+
* Peter Suschlik
|
|
142
|
+
* Philip Arndt
|
|
143
|
+
* Tim Galeckas
|
|
144
|
+
* lulalala
|
|
145
|
+
* pivotal-cloudplanner
|
|
146
|
+
* vkill
|
|
138
147
|
|
|
139
148
|
Note on Patches/Pull Request
|
|
140
149
|
============================
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
source "http://rubygems.org"
|
|
2
|
+
|
|
3
|
+
# Specify your gem's dependencies in seedbank.gemspec
|
|
4
|
+
gemspec :path => "../"
|
|
5
|
+
|
|
6
|
+
gem 'rake', '~>0.9.0', :group => :test
|
|
7
|
+
|
|
8
|
+
# for CRuby, Rubinius, including Windows and RubyInstaller
|
|
9
|
+
gem "sqlite3", :platform => [:ruby, :mswin, :mingw]
|
|
10
|
+
|
|
11
|
+
# for JRuby
|
|
12
|
+
gem 'activerecord-jdbcsqlite3-adapter', :platform => :jruby
|
|
13
|
+
|
|
14
|
+
gem 'seedbank', :path => '../'
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
source "http://rubygems.org"
|
|
2
|
+
|
|
3
|
+
# Specify your gem's dependencies in seedbank.gemspec
|
|
4
|
+
gemspec :path=>"../"
|
|
5
|
+
|
|
6
|
+
gem 'rake', '~>10.0', :group => :test
|
|
7
|
+
|
|
8
|
+
# for CRuby, Rubinius, including Windows and RubyInstaller
|
|
9
|
+
gem "sqlite3", :platform => [:ruby, :mswin, :mingw]
|
|
10
|
+
|
|
11
|
+
# for JRuby
|
|
12
|
+
gem 'activerecord-jdbcsqlite3-adapter', :platform => :jruby
|
|
13
|
+
|
|
14
|
+
gem 'seedbank', :path => '../'
|
|
15
|
+
|
data/lib/seedbank/dsl.rb
CHANGED
|
@@ -1,21 +1,18 @@
|
|
|
1
1
|
module Seedbank
|
|
2
2
|
module DSL
|
|
3
3
|
|
|
4
|
-
def
|
|
5
|
-
Rake
|
|
6
|
-
Rake::
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
def override_seed_task(*args, &block)
|
|
10
|
-
Rake.application.override_task(*args, &block)
|
|
4
|
+
def override_seed_task(*args)
|
|
5
|
+
task_name, arg_names, deps = Rake.application.resolve_args(args)
|
|
6
|
+
seed_task = Rake::Task.task_defined?(task_name) ? Rake::Task[task_name].clear : Rake::Task.define_task(task_name)
|
|
7
|
+
add_comment_to(seed_task, Rake.application.last_description)
|
|
8
|
+
seed_task.enhance deps
|
|
11
9
|
end
|
|
12
10
|
|
|
13
11
|
def seed_task_from_file(seed_file)
|
|
14
12
|
scopes = scope_from_seed_file(seed_file)
|
|
15
13
|
fq_name = scopes.push(File.basename(seed_file, '.seeds.rb')).join(':')
|
|
16
|
-
args = Rake::Task.task_defined?('db:abort_if_pending_migrations') ? { fq_name => 'db:abort_if_pending_migrations' } : { fq_name => :environment }
|
|
17
14
|
|
|
18
|
-
define_seed_task(seed_file,
|
|
15
|
+
define_seed_task(seed_file, fq_name)
|
|
19
16
|
end
|
|
20
17
|
|
|
21
18
|
def glob_seed_files_matching(*args, &block)
|
|
@@ -26,7 +23,15 @@ module Seedbank
|
|
|
26
23
|
task = Rake::Task.define_task(*args) do |seed_task|
|
|
27
24
|
Seedbank::Runner.new(seed_task).module_eval(File.read(seed_file), seed_file) if File.exist?(seed_file)
|
|
28
25
|
end
|
|
26
|
+
|
|
29
27
|
task.add_description "Load the seed data from #{seed_file}"
|
|
28
|
+
|
|
29
|
+
if Rake::Task.task_defined?('db:abort_if_pending_migrations')
|
|
30
|
+
task.enhance(['db:abort_if_pending_migrations'])
|
|
31
|
+
elsif Rake::Task.task_defined?(':environment')
|
|
32
|
+
task.enhance([':environment'])
|
|
33
|
+
end
|
|
34
|
+
|
|
30
35
|
task.name
|
|
31
36
|
end
|
|
32
37
|
|
|
@@ -41,5 +46,15 @@ module Seedbank
|
|
|
41
46
|
Pathname.new Seedbank.seeds_root
|
|
42
47
|
end
|
|
43
48
|
|
|
49
|
+
private
|
|
50
|
+
|
|
51
|
+
def add_comment_to(seed_task, comment)
|
|
52
|
+
if seed_task.respond_to?(:clear_comments)
|
|
53
|
+
seed_task.comment = comment
|
|
54
|
+
else
|
|
55
|
+
seed_task.send :instance_variable_set, '@full_comment', comment
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
44
59
|
end
|
|
45
60
|
end
|
data/lib/seedbank/version.rb
CHANGED
data/lib/seedbank.rb
CHANGED
data/lib/tasks/seed.rake
CHANGED
|
@@ -25,10 +25,18 @@ namespace :db do
|
|
|
25
25
|
|
|
26
26
|
override_dependency << "db:seed:#{environment}" if defined?(Rails) && Rails.env == environment
|
|
27
27
|
end
|
|
28
|
+
|
|
29
|
+
if Rails.version > '4'
|
|
30
|
+
original_seeds_file = Rails.application.paths["db/seeds.rb"].existent.first
|
|
31
|
+
elsif Rails.version > '3'
|
|
32
|
+
original_seeds_file = Rails.application.paths["db/seeds"].existent.first
|
|
33
|
+
else
|
|
34
|
+
original_seeds_file = Rails.root.join("db","seeds").children.first.to_s
|
|
35
|
+
end
|
|
36
|
+
define_seed_task original_seeds_file, :original if original_seeds_file
|
|
28
37
|
end
|
|
29
38
|
|
|
30
39
|
# Override db:seed to run all the common and environments seeds plus the original db:seed.
|
|
31
|
-
desc
|
|
40
|
+
desc 'Load the seed data from db/seeds.rb, db/seeds/*.seeds.rb and db/seeds/ENVIRONMENT/*.seeds.rb. ENVIRONMENT is the current environment in Rails.env.'
|
|
32
41
|
override_seed_task :seed => override_dependency
|
|
33
|
-
|
|
34
42
|
end
|
data/test/dummy/db/seeds.rb
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
FakeModel.seed('db/seeds.rb')
|
|
@@ -54,7 +54,7 @@ describe Seedbank::DSL do
|
|
|
54
54
|
|
|
55
55
|
let(:seeds_root) { '/my/seeds/directory' }
|
|
56
56
|
|
|
57
|
-
subject { Seedbank::DSL.seeds_root }
|
|
57
|
+
subject { Seedbank::DSL.send(:seeds_root) }
|
|
58
58
|
|
|
59
59
|
it "returns a Pathname" do
|
|
60
60
|
flexmock(Seedbank).should_receive(:seeds_root).and_return(seeds_root).by_default
|
|
@@ -111,12 +111,6 @@ describe Seedbank::DSL do
|
|
|
111
111
|
Rake::Task[name].wont_be_nil
|
|
112
112
|
end
|
|
113
113
|
|
|
114
|
-
it "sets Rake Task dependencies" do
|
|
115
|
-
Seedbank::DSL.define_seed_task(seed_file, name => dependencies)
|
|
116
|
-
|
|
117
|
-
Rake::Task[name].prerequisite_tasks.must_equal dependencies.map { |dependency| Rake::Task[dependency] }
|
|
118
|
-
end
|
|
119
|
-
|
|
120
114
|
it "sets Rake Task description" do
|
|
121
115
|
Seedbank::DSL.define_seed_task(seed_file, name => dependencies)
|
|
122
116
|
|
|
@@ -130,17 +124,57 @@ describe Seedbank::DSL do
|
|
|
130
124
|
|
|
131
125
|
Rake::Task[name].invoke
|
|
132
126
|
end
|
|
127
|
+
|
|
128
|
+
describe "when db:abort_if_pending_migrations exists" do
|
|
129
|
+
it "sets Rake Task dependencies" do
|
|
130
|
+
Seedbank::DSL.define_seed_task(seed_file, name => dependencies)
|
|
131
|
+
expected_dependencies = dependencies.map { |dependency| Rake::Task[dependency] }
|
|
132
|
+
expected_dependencies << Rake::Task['db:abort_if_pending_migrations']
|
|
133
|
+
|
|
134
|
+
Rake::Task[name].prerequisite_tasks.must_equal expected_dependencies
|
|
135
|
+
end
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
describe "when db:abort_if_pending_migrations does not exist" do
|
|
139
|
+
it "sets Rake Task dependencies" do
|
|
140
|
+
flexmock(Rake::Task).should_receive(:task_defined?).and_return(false).by_default
|
|
141
|
+
|
|
142
|
+
Seedbank::DSL.define_seed_task(seed_file, name => dependencies)
|
|
143
|
+
|
|
144
|
+
Rake::Task[name].prerequisite_tasks.must_equal dependencies.map { |dependency| Rake::Task[dependency] }
|
|
145
|
+
end
|
|
146
|
+
end
|
|
133
147
|
end
|
|
134
148
|
|
|
135
149
|
describe "override_seed_task" do
|
|
136
150
|
|
|
137
|
-
|
|
151
|
+
describe "when no task exists to override" do
|
|
152
|
+
|
|
153
|
+
let(:name) { 'my_task' }
|
|
154
|
+
let(:dependencies) { ['seedy:users'] }
|
|
155
|
+
|
|
156
|
+
it "creates a new task" do
|
|
157
|
+
Seedbank::DSL.override_seed_task(name => dependencies)
|
|
138
158
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
159
|
+
Rake::Task[name].wont_be_nil
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
it "applies the dependencies" do
|
|
163
|
+
expected_dependencies = dependencies.map { |dependency| Rake::Task[dependency] }
|
|
164
|
+
Seedbank::DSL.override_seed_task(name => dependencies)
|
|
142
165
|
|
|
143
|
-
|
|
166
|
+
Rake::Task[name].prerequisite_tasks.must_equal expected_dependencies
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
it "applies the description" do
|
|
170
|
+
description = 'Expected Description'
|
|
171
|
+
Rake.application.last_description = description
|
|
172
|
+
|
|
173
|
+
Seedbank::DSL.override_seed_task(name => dependencies)
|
|
174
|
+
|
|
175
|
+
Rake::Task[name].full_comment.must_equal description
|
|
176
|
+
end
|
|
144
177
|
end
|
|
178
|
+
|
|
145
179
|
end
|
|
146
180
|
end
|
|
@@ -47,7 +47,7 @@ describe Seedbank::Runner do
|
|
|
47
47
|
end
|
|
48
48
|
|
|
49
49
|
describe "after with no block given" do
|
|
50
|
-
|
|
50
|
+
|
|
51
51
|
subject { Rake::Task['db:seed:no_block'] }
|
|
52
52
|
|
|
53
53
|
it "runs the dependencies" do
|
|
@@ -56,4 +56,11 @@ describe Seedbank::Runner do
|
|
|
56
56
|
subject.invoke
|
|
57
57
|
end
|
|
58
58
|
end
|
|
59
|
+
|
|
60
|
+
describe "let" do
|
|
61
|
+
|
|
62
|
+
it "does something" do
|
|
63
|
+
|
|
64
|
+
end
|
|
65
|
+
end
|
|
59
66
|
end
|
|
@@ -4,7 +4,7 @@ describe 'Seedbank rake.task' do
|
|
|
4
4
|
|
|
5
5
|
describe "seeds with dependency" do
|
|
6
6
|
|
|
7
|
-
subject { Rake.application.tasks_in_scope %w[db seed] }
|
|
7
|
+
subject { Rake.application.tasks_in_scope(defined?(Rake::Scope) ? Rake::Scope.new('db:seed') : %w[db seed]) }
|
|
8
8
|
|
|
9
9
|
it "creates all the seed tasks" do
|
|
10
10
|
seeds = %w(db:seed:circular1 db:seed:circular2 db:seed:common db:seed:dependency db:seed:dependency2
|
|
@@ -22,7 +22,7 @@ describe 'Seedbank rake.task' do
|
|
|
22
22
|
|
|
23
23
|
describe seed do
|
|
24
24
|
|
|
25
|
-
subject { Rake.application.lookup(
|
|
25
|
+
subject { Rake.application.lookup(['db', 'seed', seed].join(':')) }
|
|
26
26
|
|
|
27
27
|
it "is dependent on db:abort_if_pending_migrations" do
|
|
28
28
|
subject.prerequisites.must_equal %w[db:abort_if_pending_migrations]
|
|
@@ -49,7 +49,7 @@ describe 'Seedbank rake.task' do
|
|
|
49
49
|
subject { Rake::Task['db:seed:original'] }
|
|
50
50
|
|
|
51
51
|
it "has no dependencies" do
|
|
52
|
-
subject.prerequisites.
|
|
52
|
+
subject.prerequisites.must_equal %w[db:abort_if_pending_migrations]
|
|
53
53
|
end
|
|
54
54
|
|
|
55
55
|
describe "when seeds are reloaded" do
|
|
@@ -59,7 +59,7 @@ describe 'Seedbank rake.task' do
|
|
|
59
59
|
end
|
|
60
60
|
|
|
61
61
|
it "still has no dependencies" do
|
|
62
|
-
subject.prerequisites.
|
|
62
|
+
subject.prerequisites.must_equal %w[db:abort_if_pending_migrations]
|
|
63
63
|
end
|
|
64
64
|
end
|
|
65
65
|
end
|
|
@@ -76,7 +76,7 @@ describe 'Seedbank rake.task' do
|
|
|
76
76
|
|
|
77
77
|
describe seed do
|
|
78
78
|
|
|
79
|
-
subject { Rake.application.lookup(
|
|
79
|
+
subject { Rake.application.lookup(['db', 'seed', environment, seed].join(':')) }
|
|
80
80
|
|
|
81
81
|
it "is dependent on db:abort_if_pending_migrations" do
|
|
82
82
|
subject.prerequisites.must_equal %w[db:abort_if_pending_migrations]
|
|
@@ -87,7 +87,7 @@ describe 'Seedbank rake.task' do
|
|
|
87
87
|
|
|
88
88
|
describe "db:seed:#{environment}" do
|
|
89
89
|
|
|
90
|
-
subject { Rake.application.lookup(
|
|
90
|
+
subject { Rake.application.lookup(['db', 'seed', environment].join(':')) }
|
|
91
91
|
|
|
92
92
|
it "is dependent on the seeds in the environment directory" do
|
|
93
93
|
prerequisite_seeds = Dir[File.expand_path("../../../dummy/db/seeds/#{environment}/*.seeds.rb", __FILE__)].sort.map do |seed_file|
|
metadata
CHANGED
|
@@ -1,20 +1,18 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: seedbank
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
5
|
-
prerelease:
|
|
4
|
+
version: 0.3.0
|
|
6
5
|
platform: ruby
|
|
7
6
|
authors:
|
|
8
7
|
- James McCarthy
|
|
9
8
|
autorequire:
|
|
10
9
|
bindir: bin
|
|
11
10
|
cert_chain: []
|
|
12
|
-
date:
|
|
11
|
+
date: 2013-07-03 00:00:00.000000000 Z
|
|
13
12
|
dependencies:
|
|
14
13
|
- !ruby/object:Gem::Dependency
|
|
15
14
|
name: minitest
|
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
|
17
|
-
none: false
|
|
18
16
|
requirements:
|
|
19
17
|
- - ~>
|
|
20
18
|
- !ruby/object:Gem::Version
|
|
@@ -22,7 +20,6 @@ dependencies:
|
|
|
22
20
|
type: :development
|
|
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
|
|
@@ -30,7 +27,6 @@ dependencies:
|
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
|
31
28
|
name: flexmock
|
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
|
33
|
-
none: false
|
|
34
30
|
requirements:
|
|
35
31
|
- - ! '>='
|
|
36
32
|
- !ruby/object:Gem::Version
|
|
@@ -38,7 +34,6 @@ dependencies:
|
|
|
38
34
|
type: :development
|
|
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
|
|
@@ -46,7 +41,6 @@ dependencies:
|
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
|
47
42
|
name: rails
|
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
|
49
|
-
none: false
|
|
50
44
|
requirements:
|
|
51
45
|
- - ~>
|
|
52
46
|
- !ruby/object:Gem::Version
|
|
@@ -54,7 +48,6 @@ dependencies:
|
|
|
54
48
|
type: :development
|
|
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
|
|
@@ -75,12 +68,12 @@ files:
|
|
|
75
68
|
- README.md
|
|
76
69
|
- Rakefile
|
|
77
70
|
- TODO.txt
|
|
71
|
+
- gemfiles/rake0.9.gemfile
|
|
72
|
+
- gemfiles/rake10.gemfile
|
|
78
73
|
- lib/seedbank.rb
|
|
79
74
|
- lib/seedbank/dsl.rb
|
|
80
75
|
- lib/seedbank/railtie.rb
|
|
81
|
-
- lib/seedbank/rename_task.rb
|
|
82
76
|
- lib/seedbank/runner.rb
|
|
83
|
-
- lib/seedbank/task_manager.rb
|
|
84
77
|
- lib/seedbank/version.rb
|
|
85
78
|
- lib/tasks/seed.rake
|
|
86
79
|
- seedbank.gemspec
|
|
@@ -113,14 +106,13 @@ files:
|
|
|
113
106
|
- test/dummy/lib/tasks/dsl.rake
|
|
114
107
|
- test/dummy/script/rails
|
|
115
108
|
- test/lib/seedbank/dsl_test.rb
|
|
116
|
-
- test/lib/seedbank/rename_task_test.rb
|
|
117
109
|
- test/lib/seedbank/runner_test.rb
|
|
118
|
-
- test/lib/seedbank/task_manager_test.rb
|
|
119
110
|
- test/lib/tasks/seed_rake_test.rb
|
|
120
111
|
- test/test_helper.rb
|
|
121
112
|
homepage: http://github.com/james2m/seedbank
|
|
122
113
|
licenses:
|
|
123
114
|
- MIT
|
|
115
|
+
metadata: {}
|
|
124
116
|
post_install_message: ! "\n ================================================================================\n\n
|
|
125
117
|
\ Rails 2.x\n ---------\n If you are using Seedbank with Rails 2.x you will need
|
|
126
118
|
to place the following at \n the end of your Rakefile so Rubygems can load the
|
|
@@ -132,22 +124,20 @@ rdoc_options:
|
|
|
132
124
|
require_paths:
|
|
133
125
|
- lib
|
|
134
126
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
135
|
-
none: false
|
|
136
127
|
requirements:
|
|
137
128
|
- - ! '>='
|
|
138
129
|
- !ruby/object:Gem::Version
|
|
139
130
|
version: '0'
|
|
140
131
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
141
|
-
none: false
|
|
142
132
|
requirements:
|
|
143
133
|
- - ! '>='
|
|
144
134
|
- !ruby/object:Gem::Version
|
|
145
135
|
version: 1.2.0
|
|
146
136
|
requirements: []
|
|
147
137
|
rubyforge_project:
|
|
148
|
-
rubygems_version:
|
|
138
|
+
rubygems_version: 2.0.5
|
|
149
139
|
signing_key:
|
|
150
|
-
specification_version:
|
|
140
|
+
specification_version: 4
|
|
151
141
|
summary: Extends Rails seeds to split out complex seeds into their own file and have
|
|
152
142
|
different seeds for each environment.
|
|
153
143
|
test_files:
|
|
@@ -180,8 +170,6 @@ test_files:
|
|
|
180
170
|
- test/dummy/lib/tasks/dsl.rake
|
|
181
171
|
- test/dummy/script/rails
|
|
182
172
|
- test/lib/seedbank/dsl_test.rb
|
|
183
|
-
- test/lib/seedbank/rename_task_test.rb
|
|
184
173
|
- test/lib/seedbank/runner_test.rb
|
|
185
|
-
- test/lib/seedbank/task_manager_test.rb
|
|
186
174
|
- test/lib/tasks/seed_rake_test.rb
|
|
187
175
|
- test/test_helper.rb
|
data/lib/seedbank/rename_task.rb
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
module Seedbank
|
|
2
|
-
module TaskManager
|
|
3
|
-
|
|
4
|
-
def override_task(*args, &block)
|
|
5
|
-
name, params, deps = resolve_args(args.dup)
|
|
6
|
-
fq_name = current_scope.push(name).join(':')
|
|
7
|
-
new_name = "#{fq_name}:original"
|
|
8
|
-
unless Rake::Task.task_defined?(new_name)
|
|
9
|
-
rename_task(fq_name, new_name)
|
|
10
|
-
define_task(Rake::Task, *args, &block)
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def rename_task(fq_name, new_name)
|
|
15
|
-
task = @tasks.delete(fq_name)
|
|
16
|
-
task.rename(new_name)
|
|
17
|
-
@tasks[new_name] = task
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
end
|
|
21
|
-
end
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
require 'test_helper'
|
|
2
|
-
|
|
3
|
-
describe Seedbank::RenameTask do
|
|
4
|
-
|
|
5
|
-
describe "rename" do
|
|
6
|
-
|
|
7
|
-
let(:original_name) { 'original_name' }
|
|
8
|
-
let(:new_name) { 'new_name' }
|
|
9
|
-
|
|
10
|
-
subject { Rake::Task.define_task(original_name) }
|
|
11
|
-
|
|
12
|
-
before { subject.rename(new_name) }
|
|
13
|
-
|
|
14
|
-
it "changes the tasks name" do
|
|
15
|
-
subject.name.must_equal new_name
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
end
|
|
19
|
-
end
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
require 'test_helper'
|
|
2
|
-
|
|
3
|
-
describe Seedbank::TaskManager do
|
|
4
|
-
|
|
5
|
-
describe "override_task" do
|
|
6
|
-
|
|
7
|
-
let(:task_name) { 'my_task' }
|
|
8
|
-
|
|
9
|
-
describe "with no original version of the task exists" do
|
|
10
|
-
|
|
11
|
-
it "appends :original to the task name" do
|
|
12
|
-
task = Rake::Task.define_task(task_name)
|
|
13
|
-
|
|
14
|
-
Rake.application.override_task(task_name)
|
|
15
|
-
|
|
16
|
-
task.must_equal Rake.application.lookup('original', [task_name])
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
it "creates a new task in place of the original" do
|
|
20
|
-
Rake::Task.define_task(task_name)
|
|
21
|
-
task = Rake.application.override_task(task_name => [:dependency])
|
|
22
|
-
|
|
23
|
-
task.must_be_instance_of Rake::Task
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
it "adds the supplied dependencies to the new task" do
|
|
27
|
-
dependency = ['db:seed:dependency']
|
|
28
|
-
|
|
29
|
-
Rake::Task.define_task(task_name)
|
|
30
|
-
task = Rake.application.override_task(task_name => dependency)
|
|
31
|
-
|
|
32
|
-
task.prerequisites.must_equal dependency
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
it "adds the supplied action to the new task" do
|
|
36
|
-
action = proc {}
|
|
37
|
-
Rake::Task.define_task(task_name)
|
|
38
|
-
task = Rake.application.override_task(task_name, &action)
|
|
39
|
-
|
|
40
|
-
task.actions.must_equal [action]
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
describe "when the original version of the task exists" do
|
|
45
|
-
|
|
46
|
-
let(:original_name) { [task_name, 'original'].join(':') }
|
|
47
|
-
|
|
48
|
-
it "leaves the original task in place" do
|
|
49
|
-
task = Rake::Task.define_task(task_name)
|
|
50
|
-
original = Rake::Task.define_task(original_name)
|
|
51
|
-
new_task = Rake.application.override_task(task_name)
|
|
52
|
-
|
|
53
|
-
Rake::Task[task_name].must_equal task
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
it "leaves the task:original task in place" do
|
|
57
|
-
task = Rake::Task.define_task(task_name)
|
|
58
|
-
original = Rake::Task.define_task(original_name)
|
|
59
|
-
new_task = Rake.application.override_task(task_name)
|
|
60
|
-
|
|
61
|
-
Rake::Task[original].must_equal original
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
it "does not create a new task" do
|
|
65
|
-
task = Rake::Task.define_task(task_name)
|
|
66
|
-
original = Rake::Task.define_task(original_name)
|
|
67
|
-
new_task = Rake.application.override_task(task_name)
|
|
68
|
-
|
|
69
|
-
new_task.must_be_nil
|
|
70
|
-
end
|
|
71
|
-
end
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
describe "rename_task" do
|
|
75
|
-
|
|
76
|
-
let(:original_name) { 'original_name' }
|
|
77
|
-
let(:new_name) { 'new_name' }
|
|
78
|
-
|
|
79
|
-
before do
|
|
80
|
-
Rake::Task.define_task(original_name)
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
it "changes the tasks name" do
|
|
84
|
-
task = Rake::Task[original_name]
|
|
85
|
-
flexmock(task).should_receive(:rename).with(new_name).once
|
|
86
|
-
|
|
87
|
-
Rake.application.rename_task(original_name, new_name)
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
it "removes the original task name" do
|
|
91
|
-
Rake.application.rename_task(original_name, new_name)
|
|
92
|
-
|
|
93
|
-
Rake.application.lookup(original_name).must_be_nil
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
it "give the original task the new name" do
|
|
97
|
-
original_task = Rake::Task[original_name]
|
|
98
|
-
|
|
99
|
-
Rake.application.rename_task(original_name, new_name)
|
|
100
|
-
|
|
101
|
-
Rake.application.lookup(new_name).must_equal original_task
|
|
102
|
-
end
|
|
103
|
-
end
|
|
104
|
-
end
|