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 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
@@ -23,4 +23,6 @@ pkg
23
23
  test/dummy/tmp
24
24
  test/dummy/log
25
25
  .rvmrc
26
+ .ruby-version
27
+ .ruby-gemset
26
28
  Gemfile.lock
data/.travis.yml CHANGED
@@ -1,9 +1,15 @@
1
1
  language: ruby
2
+
2
3
  rvm:
3
4
  - ree
4
5
  - 1.8.7
5
6
  - 1.9.3
7
+ - 2.0.0
6
8
  - jruby-18mode # JRuby in 1.8 mode
7
9
  - jruby-19mode # JRuby in 1.9 mode
8
10
  - rbx-18mode
9
11
  - rbx-19mode
12
+
13
+ gemfile:
14
+ - gemfiles/rake0.9.gemfile
15
+ - gemfiles/rake10.gemfile
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 do
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 do
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 self.included(base)
5
- Rake::Task.send(:include, Seedbank::RenameTask)
6
- Rake::Application.send(:include, Seedbank::TaskManager)
7
- end
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, args)
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
@@ -1,3 +1,3 @@
1
1
  module Seedbank
2
- VERSION = "0.2.1"
2
+ VERSION = "0.3.0"
3
3
  end
data/lib/seedbank.rb CHANGED
@@ -1,6 +1,4 @@
1
1
  require 'seedbank/dsl'
2
- require 'seedbank/rename_task'
3
- require 'seedbank/task_manager'
4
2
  require 'seedbank/runner'
5
3
 
6
4
  module Seedbank
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 "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."
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
@@ -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
- let(:arguments) { 'my_task' }
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
- it "calls Rake::TaskManager#override_task" do
140
- block = proc {}
141
- flexmock(Rake.application).should_receive(:override_task).with(arguments, block).once
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
- Seedbank::DSL.override_seed_task(arguments, &block)
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(seed, %w[db seed]) }
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.must_be_empty
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.must_be_empty
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(seed, ['db', 'seed', environment]) }
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(environment, %w[db seed]) }
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.2.1
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: 2012-08-10 00:00:00.000000000 Z
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: 1.8.24
138
+ rubygems_version: 2.0.5
149
139
  signing_key:
150
- specification_version: 3
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
@@ -1,9 +0,0 @@
1
- module Seedbank
2
- module RenameTask
3
-
4
- def rename(new_name)
5
- @name = new_name
6
- end
7
-
8
- end
9
- end
@@ -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