rubygems-tasks 0.2.4 → 0.2.5

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.
Files changed (53) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +0 -1
  3. data/.travis.yml +9 -0
  4. data/ChangeLog.md +8 -0
  5. data/LICENSE.txt +1 -1
  6. data/README.md +22 -12
  7. data/Rakefile +4 -49
  8. data/gemspec.yml +10 -4
  9. data/lib/rubygems/tasks.rb +140 -2
  10. data/lib/rubygems/tasks/build/gem.rb +0 -2
  11. data/lib/rubygems/tasks/build/tar.rb +0 -2
  12. data/lib/rubygems/tasks/build/task.rb +9 -14
  13. data/lib/rubygems/tasks/console.rb +0 -3
  14. data/lib/rubygems/tasks/install.rb +1 -1
  15. data/lib/rubygems/tasks/project.rb +3 -3
  16. data/lib/rubygems/tasks/push.rb +2 -2
  17. data/lib/rubygems/tasks/sign/checksum.rb +3 -2
  18. data/lib/rubygems/tasks/sign/pgp.rb +1 -1
  19. data/lib/rubygems/tasks/sign/task.rb +13 -17
  20. data/lib/rubygems/tasks/task.rb +7 -7
  21. data/rubygems-tasks.gemspec +38 -87
  22. data/spec/console_spec.rb +10 -14
  23. data/spec/install_spec.rb +1 -1
  24. data/spec/project_spec.rb +30 -27
  25. data/spec/projects/bundler-project/.gitignore +17 -0
  26. data/spec/projects/bundler-project/Gemfile +4 -0
  27. data/spec/projects/bundler-project/LICENSE +22 -0
  28. data/spec/projects/bundler-project/README.md +29 -0
  29. data/spec/projects/bundler-project/Rakefile +2 -0
  30. data/spec/projects/bundler-project/bundler-project.gemspec +19 -0
  31. data/spec/projects/bundler-project/lib/bundler-project.rb +7 -0
  32. data/spec/projects/bundler-project/lib/bundler-project/version.rb +5 -0
  33. data/spec/projects/rubygems-multi-project/.gitignore +17 -0
  34. data/spec/projects/rubygems-multi-project/LICENSE.txt +22 -0
  35. data/spec/projects/rubygems-multi-project/README.md +21 -0
  36. data/spec/projects/rubygems-multi-project/lib/rubygems/project/version.rb +5 -0
  37. data/spec/projects/rubygems-multi-project/rubygems-project-lite.gemspec +19 -0
  38. data/spec/projects/rubygems-multi-project/rubygems-project.gemspec +19 -0
  39. data/spec/projects/rubygems-project/.gitignore +17 -0
  40. data/spec/projects/rubygems-project/LICENSE.txt +22 -0
  41. data/spec/projects/rubygems-project/README.md +21 -0
  42. data/spec/projects/rubygems-project/lib/rubygems/project/version.rb +5 -0
  43. data/spec/projects/rubygems-project/rubygems-project.gemspec +19 -0
  44. data/spec/push_spec.rb +2 -2
  45. data/spec/rake_context.rb +1 -3
  46. data/spec/scm/push_spec.rb +7 -7
  47. data/spec/scm/status_spec.rb +6 -6
  48. data/spec/scm/tag_spec.rb +18 -18
  49. data/spec/sign/pgp_spec.rb +1 -1
  50. data/spec/spec_helper.rb +25 -8
  51. data/spec/tasks_spec.rb +195 -55
  52. metadata +89 -83
  53. data/lib/rubygems/tasks/tasks.rb +0 -147
@@ -9,9 +9,9 @@ module Gem
9
9
 
10
10
  # Supported SCMs and their control directories.
11
11
  SCM_DIRS = {
12
- :git => '.git',
13
- :hg => '.hg',
14
- :svn => '.svn'
12
+ git: '.git',
13
+ hg: '.hg',
14
+ svn: '.svn'
15
15
  }
16
16
 
17
17
  # The `pkg/` directory.
@@ -7,7 +7,7 @@ module Gem
7
7
  #
8
8
  class Push < Task
9
9
 
10
- # The Gemcutter host to push gems to.
10
+ # The rubygems host to push gems to.
11
11
  attr_accessor :host
12
12
 
13
13
  #
@@ -17,7 +17,7 @@ module Gem
17
17
  # Additional options.
18
18
  #
19
19
  # @option options [String] :host
20
- # The Gemcutter host to push gems to.
20
+ # The rubygems host to push gems to.
21
21
  #
22
22
  def initialize(options={})
23
23
  super()
@@ -84,8 +84,9 @@ module Gem
84
84
  # Defines the `sign:checksum` tasks.
85
85
  #
86
86
  def define
87
- sign_task :checksum
88
- task :checksum => 'sign:checksum'
87
+ super(:checksum)
88
+
89
+ task :checksum => 'sign:checksum'
89
90
  end
90
91
 
91
92
  #
@@ -25,7 +25,7 @@ module Gem
25
25
  # Defines the `sign:pgp` task.
26
26
  #
27
27
  def define
28
- sign_task :pgp
28
+ super(:pgp)
29
29
 
30
30
  task :pgp => 'sign:pgp'
31
31
  end
@@ -7,28 +7,13 @@ module Gem
7
7
  module Sign
8
8
  class Task < Tasks::Task
9
9
 
10
- #
11
- # Signs a package.
12
- #
13
- # @param [String] path
14
- # The path to the package.
15
- #
16
- # @abstract
17
- #
18
- def sign(path)
19
- end
20
-
21
- protected
22
-
23
10
  #
24
11
  # Defines signing tasks for the various packages.
25
12
  #
26
13
  # @param [Symbol] name
27
14
  # The name for the `sign:` task.
28
15
  #
29
- # @api semipublic
30
- #
31
- def sign_task(name)
16
+ def define(name)
32
17
  @project.builds.each do |build,packages|
33
18
  packages.each do |format,path|
34
19
  namespace :sign do
@@ -42,7 +27,7 @@ module Gem
42
27
  end
43
28
  end
44
29
 
45
- multi_task "sign:#{name}:#{build}", packages.keys
30
+ namespaced_tasks "sign:#{name}:#{build}", packages.keys
46
31
 
47
32
  task "sign:#{name}" => "sign:#{name}:#{build}"
48
33
  task "sign:#{build}" => "sign:#{name}:#{build}"
@@ -52,6 +37,17 @@ module Gem
52
37
  end
53
38
  end
54
39
 
40
+ #
41
+ # Signs a package.
42
+ #
43
+ # @param [String] path
44
+ # The path to the package.
45
+ #
46
+ # @abstract
47
+ #
48
+ def sign(path)
49
+ end
50
+
55
51
  end
56
52
  end
57
53
  end
@@ -124,28 +124,28 @@ module Gem
124
124
  # @param [String] prefix
125
125
  # The namespace of the sub-tasks to call.
126
126
  #
127
- # @param [Array<Symbol>] names
127
+ # @param [Array<Symbol>] subtasks
128
128
  # The names of the sub-tasks.
129
129
  #
130
130
  # @example
131
- # gemspec_tasks 'pkg:tar'
131
+ # namespaced_tasks 'pkg:tar', @project.gemspecs.keys
132
132
  #
133
133
  # @api semipublic
134
134
  #
135
- def multi_task(prefix,names)
136
- task prefix => names.map { |name| "#{prefix}:#{name}" }
135
+ def namespaced_tasks(prefix,subtasks)
136
+ task prefix => subtasks.map { |subtask| "#{prefix}:#{subtask}" }
137
137
  end
138
138
 
139
139
  #
140
140
  # Defines a task that will execute tasks for each gemspec.
141
141
  #
142
- # @param [Symbol, String] name
142
+ # @param [Symbol, String] prefix
143
143
  # The name for the task.
144
144
  #
145
145
  # @api semipublic
146
146
  #
147
- def gemspec_tasks(name)
148
- multi_task name, @project.gemspecs.keys
147
+ def gemspec_tasks(prefix)
148
+ namespaced_tasks prefix, @project.gemspecs.keys
149
149
  end
150
150
 
151
151
  end
@@ -2,108 +2,59 @@
2
2
 
3
3
  require 'yaml'
4
4
 
5
- Gem::Specification.new do |gemspec|
6
- files = if File.directory?('.git')
7
- `git ls-files`.split($/)
8
- elsif File.directory?('.hg')
9
- `hg manifest`.split($/)
10
- elsif File.directory?('.svn')
11
- `svn ls -R`.split($/).select { |path| File.file?(path) }
12
- else
13
- Dir['{**/}{.*,*}'].select { |path| File.file?(path) }
14
- end
5
+ Gem::Specification.new do |gem|
6
+ gemspec = YAML.load_file('gemspec.yml')
15
7
 
16
- filter_files = lambda { |paths|
17
- case paths
18
- when Array
19
- (files & paths)
20
- when String
21
- (files & Dir[paths])
22
- end
23
- }
24
-
25
- version = {
26
- :file => 'lib/rubygems/tasks/version.rb',
27
- :constant => 'Gem::Tasks::VERSION'
28
- }
29
-
30
- defaults = {
31
- 'name' => File.basename(File.dirname(__FILE__)),
32
- 'files' => files,
33
- 'require_paths' => ['ext', 'lib'].select { |dir| File.directory?(dir) },
34
- 'executables' => filter_files['bin/*'].map { |path| File.basename(path) },
35
- 'test_files' => filter_files['{test/{**/}*_test.rb,spec/{**/}*_spec.rb}'],
36
- 'extra_doc_files' => filter_files['*.{txt,rdoc,md,markdown,tt,textile}']
37
- }
38
-
39
- metadata = defaults.merge(YAML.load_file('gemspec.yml'))
8
+ gem.name = gemspec.fetch('name')
9
+ gem.version = gemspec.fetch('version') do
10
+ lib_dir = File.join(File.dirname(__FILE__),'lib')
11
+ $LOAD_PATH << lib_dir unless $LOAD_PATH.include?(lib_dir)
40
12
 
41
- gemspec.name = metadata['name']
42
- gemspec.version = if metadata['version']
43
- metadata['version']
44
- else
45
- $LOAD_PATH << lib_dir unless $LOAD_PATH.include?(lib_dir)
13
+ require 'rubygems/tasks/version'
14
+ Gem::Tasks::VERSION
15
+ end
46
16
 
47
- require version[:file]
48
- eval(version[:constant])
49
- end
17
+ gem.summary = gemspec['summary']
18
+ gem.description = gemspec['description']
19
+ gem.licenses = Array(gemspec['license'])
20
+ gem.authors = Array(gemspec['authors'])
21
+ gem.email = gemspec['email']
22
+ gem.homepage = gemspec['homepage']
50
23
 
51
- gemspec.summary = metadata.fetch('summary',metadata['description'])
52
- gemspec.description = metadata.fetch('description',metadata['summary'])
24
+ glob = lambda { |patterns| gem.files & Dir[*patterns] }
53
25
 
54
- gemspec.licenses = Array(metadata['license'])
55
- gemspec.authors = Array(metadata['authors'])
26
+ gem.files = `git ls-files`.split($/)
27
+ gem.files = glob[gemspec['files']] if gemspec['files']
56
28
 
57
- gemspec.email = metadata['email']
58
- gemspec.homepage = metadata['homepage']
59
-
60
- gemspec.require_paths = Array(metadata['require_paths'])
61
- gemspec.files = filter_files[metadata['files']]
62
- gemspec.executables = metadata['executables']
63
- gemspec.extensions = metadata['extensions']
64
-
65
- if Gem::VERSION < '1.7.'
66
- gemspec.default_executable = gemspec.executables.first
29
+ gem.executables = gemspec.fetch('executables') do
30
+ glob['bin/*'].map { |path| File.basename(path) }
67
31
  end
32
+ gem.default_executable = gem.executables.first if Gem::VERSION < '1.7.'
68
33
 
69
- gemspec.test_files = filter_files[metadata['test_files']]
70
- gemspec.extra_rdoc_files = Array(metadata['extra_doc_files'])
34
+ gem.extensions = glob[gemspec['extensions'] || 'ext/**/extconf.rb']
35
+ gem.test_files = glob[gemspec['test_files'] || '{test/{**/}*_test.rb']
36
+ gem.extra_rdoc_files = glob[gemspec['extra_doc_files'] || '*.{txt,md}']
71
37
 
72
- gemspec.post_install_message = metadata['post_install_message']
73
- gemspec.requirements = metadata['requirements']
38
+ gem.require_paths = Array(gemspec.fetch('require_paths') {
39
+ %w[ext lib].select { |dir| File.directory?(dir) }
40
+ })
74
41
 
75
- if gemspec.respond_to?(:required_ruby_version=)
76
- gemspec.required_ruby_version = metadata['required_ruby_version']
77
- end
42
+ gem.requirements = gemspec['requirements']
43
+ gem.required_ruby_version = gemspec['required_ruby_version']
44
+ gem.required_rubygems_version = gemspec['required_rubygems_version']
45
+ gem.post_install_message = gemspec['post_install_message']
78
46
 
79
- if gemspec.respond_to?(:required_rubygems_version=)
80
- gemspec.required_rubygems_version = metadata['required_ruby_version']
81
- end
82
-
83
- parse_versions = lambda { |versions|
84
- case versions
85
- when Array
86
- versions.map { |v| v.to_s }
87
- when String
88
- versions.split(/,\s*/)
89
- end
90
- }
91
-
92
- if metadata['dependencies']
93
- metadata['dependencies'].each do |name,versions|
94
- gemspec.add_dependency(name,parse_versions[versions])
95
- end
96
- end
47
+ split = lambda { |string| string.split(/,\s*/) }
97
48
 
98
- if metadata['runtime_dependencies']
99
- metadata['runtime_dependencies'].each do |name,versions|
100
- gemspec.add_runtime_dependency(name,parse_versions[versions])
49
+ if gemspec['dependencies']
50
+ gemspec['dependencies'].each do |name,versions|
51
+ gem.add_dependency(name,split[versions])
101
52
  end
102
53
  end
103
54
 
104
- if metadata['development_dependencies']
105
- metadata['development_dependencies'].each do |name,versions|
106
- gemspec.add_development_dependency(name,parse_versions[versions])
55
+ if gemspec['development_dependencies']
56
+ gemspec['development_dependencies'].each do |name,versions|
57
+ gem.add_development_dependency(name,split[versions])
107
58
  end
108
59
  end
109
60
  end
@@ -7,26 +7,22 @@ describe Gem::Tasks::Console do
7
7
  describe "#console" do
8
8
  include_context "rake"
9
9
 
10
- if RUBY_VERSION < '1.9'
11
- let(:default_options) { %w[-Ilib -rrubygems -rrubygems/tasks] }
12
- else
13
- let(:default_options) { %w[-Ilib -rrubygems/tasks] }
14
- end
10
+ let(:default_options) { %w[-Ilib -rrubygems/tasks] }
15
11
 
16
12
  let(:custom_command) { 'ripl' }
17
13
  let(:custom_options) { %w[-Ivendor -rfoo] }
18
14
 
19
15
  context "defaults" do
20
16
  it "should run `irb`" do
21
- subject.should_receive(:run).with('irb',*default_options)
17
+ expect(subject).to receive(:run).with('irb',*default_options)
22
18
 
23
19
  subject.console
24
20
  end
25
21
 
26
22
  context "when project.bundler? == true" do
27
23
  it "should use `bundle exec`" do
28
- subject.project.stub!(:bundler?).and_return(true)
29
- subject.should_receive(:run).with(
24
+ allow(subject.project).to receive(:bundler?).and_return(true)
25
+ expect(subject).to receive(:run).with(
30
26
  'bundle', 'exec', 'irb', *default_options
31
27
  )
32
28
 
@@ -39,15 +35,15 @@ describe Gem::Tasks::Console do
39
35
  subject { described_class.new(:command => custom_command) }
40
36
 
41
37
  it "should run the custom console" do
42
- subject.should_receive(:run).with(custom_command,*default_options)
38
+ expect(subject).to receive(:run).with(custom_command,*default_options)
43
39
 
44
40
  subject.console
45
41
  end
46
42
 
47
43
  context "when project.bundler? == true" do
48
44
  it "should use `bundle exec`" do
49
- subject.project.stub!(:bundler?).and_return(true)
50
- subject.should_receive(:run).with(
45
+ allow(subject.project).to receive(:bundler?).and_return(true)
46
+ expect(subject).to receive(:run).with(
51
47
  'bundle', 'exec', custom_command, *default_options
52
48
  )
53
49
 
@@ -60,15 +56,15 @@ describe Gem::Tasks::Console do
60
56
  subject { described_class.new(:options => custom_options) }
61
57
 
62
58
  it "should pass custom options to `irb`" do
63
- subject.should_receive(:run).with('irb', *(default_options + custom_options))
59
+ expect(subject).to receive(:run).with('irb', *(default_options + custom_options))
64
60
 
65
61
  subject.console
66
62
  end
67
63
 
68
64
  context "when project.bundler? == true" do
69
65
  it "should use `bundle exec ...`" do
70
- subject.project.stub!(:bundler?).and_return(true)
71
- subject.should_receive(:run).with('bundle', 'exec', 'irb', *(default_options + custom_options))
66
+ allow(subject.project).to receive(:bundler?).and_return(true)
67
+ expect(subject).to receive(:run).with('bundle', 'exec', 'irb', *(default_options + custom_options))
72
68
 
73
69
  subject.console
74
70
  end
@@ -8,7 +8,7 @@ describe Gem::Tasks::Install do
8
8
  let(:path) { 'pkg/foo-1.2.3.gem' }
9
9
 
10
10
  it "should use `gem install -q`" do
11
- subject.should_receive(:run).with('gem', 'install', '-q', path)
11
+ expect(subject).to receive(:run).with('gem', 'install', '-q', path)
12
12
 
13
13
  subject.install(path)
14
14
  end
@@ -2,24 +2,27 @@ require 'spec_helper'
2
2
  require 'rubygems/tasks/project'
3
3
 
4
4
  describe Gem::Tasks::Project do
5
- let(:rubygems_project) do
6
- described_class.new(PROJECT_DIRS['rubygems-project'])
5
+ let(:rubygems_project_dir) { File.join(PROJECTS_DIR,'rubygems-project') }
6
+ let(:rubygems_project) { described_class.new(rubygems_project_dir) }
7
+
8
+ let(:rubygems_multi_project_dir) do
9
+ File.join(PROJECTS_DIR,'rubygems-multi-project')
7
10
  end
8
11
 
9
12
  let(:rubygems_multi_project) do
10
- described_class.new(PROJECT_DIRS['rubygems-multi-project'])
13
+ described_class.new(rubygems_multi_project_dir)
11
14
  end
12
15
 
13
- let(:bundler_project) do
14
- described_class.new(PROJECT_DIRS['bundler-project'])
15
- end
16
+ let(:bundler_project_dir) { File.join(PROJECTS_DIR,'bundler-project') }
17
+ let(:bundler_project) { described_class.new(bundler_project_dir) }
16
18
 
17
19
  describe "directories" do
20
+ let(:directory) { rubygems_project_dir }
21
+
18
22
  it "should map paths to #{described_class} instances" do
19
- directory = PROJECT_DIRS['rubygems-project']
20
- project = described_class.directories[directory]
23
+ project = described_class.directories[directory]
21
24
 
22
- project.root.should == directory
25
+ expect(project.root).to eq(directory)
23
26
  end
24
27
  end
25
28
 
@@ -27,7 +30,7 @@ describe Gem::Tasks::Project do
27
30
  subject { rubygems_project }
28
31
 
29
32
  it "should use the name of the directory" do
30
- subject.name.should == 'rubygems-project'
33
+ expect(subject.name).to eq('rubygems-project')
31
34
  end
32
35
  end
33
36
 
@@ -35,7 +38,7 @@ describe Gem::Tasks::Project do
35
38
  subject { bundler_project }
36
39
 
37
40
  it "should detect the SCM used" do
38
- subject.scm.should == :git
41
+ expect(subject.scm).to eq(:git)
39
42
  end
40
43
  end
41
44
 
@@ -44,7 +47,7 @@ describe Gem::Tasks::Project do
44
47
  subject { rubygems_project }
45
48
 
46
49
  it "should load the single-gemspec" do
47
- subject.gemspecs.values.map(&:name).should == %w[rubygems-project]
50
+ expect(subject.gemspecs.values.map(&:name)).to eq(%w[rubygems-project])
48
51
  end
49
52
  end
50
53
 
@@ -52,10 +55,10 @@ describe Gem::Tasks::Project do
52
55
  subject { rubygems_multi_project }
53
56
 
54
57
  it "should load all gemspecs" do
55
- subject.gemspecs.values.map(&:name).should =~ %w[
58
+ expect(subject.gemspecs.values.map(&:name)).to match_array(%w[
56
59
  rubygems-project
57
60
  rubygems-project-lite
58
- ]
61
+ ])
59
62
  end
60
63
  end
61
64
  end
@@ -65,7 +68,7 @@ describe Gem::Tasks::Project do
65
68
  subject { rubygems_project }
66
69
 
67
70
  it "should match the directory name to the gemspec" do
68
- subject.primary_gemspec.should == subject.name
71
+ expect(subject.primary_gemspec).to eq(subject.name)
69
72
  end
70
73
  end
71
74
 
@@ -73,7 +76,7 @@ describe Gem::Tasks::Project do
73
76
  subject { rubygems_multi_project }
74
77
 
75
78
  it "should pick the first gemspec" do
76
- subject.primary_gemspec.should == 'rubygems-project'
79
+ expect(subject.primary_gemspec).to eq('rubygems-project')
77
80
  end
78
81
  end
79
82
  end
@@ -83,11 +86,11 @@ describe Gem::Tasks::Project do
83
86
  subject { rubygems_project }
84
87
 
85
88
  it "should default the directory name to the gemspec" do
86
- subject.gemspec.name.should == subject.name
89
+ expect(subject.gemspec.name).to eq(subject.name)
87
90
  end
88
91
 
89
92
  it "should raise an ArgumentError for unknown gemspec names" do
90
- lambda { subject.gemspec('foo') }.should raise_error(ArgumentError)
93
+ expect { subject.gemspec('foo') }.to raise_error(ArgumentError)
91
94
  end
92
95
  end
93
96
 
@@ -95,13 +98,13 @@ describe Gem::Tasks::Project do
95
98
  subject { rubygems_multi_project }
96
99
 
97
100
  it "should default the first gemspec" do
98
- subject.gemspec.name.should == 'rubygems-project'
101
+ expect(subject.gemspec.name).to eq('rubygems-project')
99
102
  end
100
103
 
101
104
  it "should allow accessing alternate gemspecs" do
102
105
  alternate = 'rubygems-project-lite'
103
106
 
104
- subject.gemspec(alternate).name.should == alternate
107
+ expect(subject.gemspec(alternate).name).to eq(alternate)
105
108
  end
106
109
  end
107
110
  end
@@ -110,20 +113,20 @@ describe Gem::Tasks::Project do
110
113
  subject { rubygems_multi_project }
111
114
 
112
115
  it "should group builds by gemspec name" do
113
- subject.builds.keys.should =~ subject.gemspecs.keys
116
+ expect(subject.builds.keys).to be == subject.gemspecs.keys
114
117
  end
115
118
 
116
119
  it "should map a package format to a pkg/ path" do
117
120
  packages = subject.builds['rubygems-project']
118
121
 
119
- packages['tar.gz'].should == 'pkg/rubygems-project-1.2.3.tar.gz'
122
+ expect(packages['tar.gz']).to eq('pkg/rubygems-project-1.2.3.tar.gz')
120
123
  end
121
124
 
122
125
  context "with single-gemspec project" do
123
126
  subject { rubygems_project }
124
127
 
125
128
  it "should only have a key for the single-gemspec" do
126
- subject.builds.keys.should == %w[rubygems-project]
129
+ expect(subject.builds.keys).to eq(%w[rubygems-project])
127
130
  end
128
131
  end
129
132
 
@@ -131,10 +134,10 @@ describe Gem::Tasks::Project do
131
134
  subject { rubygems_multi_project }
132
135
 
133
136
  it "should have keys for each gemspec" do
134
- subject.builds.keys.should =~ %w[
137
+ expect(subject.builds.keys).to match_array(%w[
135
138
  rubygems-project
136
139
  rubygems-project-lite
137
- ]
140
+ ])
138
141
  end
139
142
  end
140
143
  end
@@ -144,7 +147,7 @@ describe Gem::Tasks::Project do
144
147
  subject { bundler_project }
145
148
 
146
149
  it "should detect the 'Gemfile' file" do
147
- subject.bundler?.should be_true
150
+ expect(subject.bundler?).to be_truthy
148
151
  end
149
152
  end
150
153
 
@@ -152,7 +155,7 @@ describe Gem::Tasks::Project do
152
155
  subject { rubygems_project }
153
156
 
154
157
  it "should be false" do
155
- subject.bundler?.should be_false
158
+ expect(subject.bundler?).to be_falsey
156
159
  end
157
160
  end
158
161
  end