spec_cat 3.0.0 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1f7c83a78ab993a6dbee351aaf99dac7bdc6a4b8
4
- data.tar.gz: a23fcb22062c24aea9a4100f5431cf7d37247dcf
3
+ metadata.gz: 5b84fd1f4e2097a04f97999494e33dae7847831d
4
+ data.tar.gz: d8e88413705f10314da4efd35b2c8dbd431728df
5
5
  SHA512:
6
- metadata.gz: f99b05284926c1a2d041312436ab5a37f7f603fc850208af53b57012aacb8d299ed4fef8797fb505fb757b85605245a107a20cd148ce112c3f5d52116e6e7145
7
- data.tar.gz: 7a4ee59dd9791ed039eccd73d6c9798dec41ac01660da65cec208e5f1817802aea99e79ea01d30c1b63d045e235914bb8de0b3387b593c4e98d3b5263c19e0c1
6
+ metadata.gz: 4b3d6b2a1ce6dd8ad560e56dff483734addc3e16372b0cc1b4d325798b2faf11400d875c514b7892ebb5a117863924692e430fb903f8157f13ddc00f2473b074
7
+ data.tar.gz: 2273da168b1853be5aebe98f1497607674f91e143de27a6516bcdfbd7ffcad5c3989e1e339893db6836e590f043e0814c9032caa849df811e9cefe2c41dfd658
data/README.md CHANGED
@@ -11,6 +11,7 @@ This gem contains trivial matchers to make RSpecs a bit more effective and less
11
11
  * eql_file
12
12
  * have_a_spec
13
13
  * include_module
14
+ * pass_rubocop
14
15
 
15
16
  It also provides rake commands
16
17
 
@@ -24,7 +25,20 @@ It also provides rake commands
24
25
 
25
26
  Add this to your gemfile...
26
27
 
27
- gem 'spec_cat'
28
+ gem 'spec_cat'
29
+ gem 'simplecov', :require => false
30
+
31
+ Add this to your spec_helper.rb...
32
+
33
+ # Initialize SimpleCov
34
+
35
+ require 'simplecov'
36
+
37
+ SimpleCov.start 'rails' do
38
+ add_filter '/vendor/'
39
+ add_filter '/spec/'
40
+ end
41
+
28
42
 
29
43
  ## Matchers
30
44
 
@@ -37,7 +51,7 @@ It also writes a .tmp file to replace the old ground truth if it's gone stale.
37
51
 
38
52
  e.g. #foo produces a gnarly string too nasty to copy and paste into spec code.
39
53
 
40
- foo.should eql_file( 'spec/data/foo.json' )
54
+ expect( foo ).to eql_file( 'spec/data/foo.json' )
41
55
 
42
56
  ... if it fails for a valid change, you can just....
43
57
 
@@ -54,7 +68,7 @@ If you use this, you should add `*.tmp` to your .gitignore.
54
68
  `have_a_spec` will ensure that any given path has a corresponding spec file to
55
69
  help ensure that you have good coverage.
56
70
 
57
- 'app/controllers/application_controller.rb'.should have_a_spec
71
+ expect( 'app/controllers/application_controller.rb' ).to have_a_spec
58
72
 
59
73
  ... is a good thing to write right after you integrate RSpec.
60
74
 
@@ -66,7 +80,14 @@ Here's an example coverage spec...
66
80
 
67
81
  `include_module` makes it easy to spec concern inclusion.
68
82
 
69
- it( 'is Taggable' ) { should include_module( Taggable ) }
83
+ it( 'is Taggable' ) { is_expected.to include_module( Taggable ) }
84
+
85
+ ### pass_rubocop
86
+
87
+ `pass_rubcop` just executes [Rubocop](http://batsov.com/rubocop/) and passes or fails
88
+ based on it's exit status.
89
+
90
+ it( 'passes' ) { is_expected.to pass_rubocop }
70
91
 
71
92
  ## Rake Tasks
72
93
 
@@ -86,20 +107,18 @@ specs pass.
86
107
  ## Reference
87
108
 
88
109
  * [RSpec](https://github.com/rspec/rspec)
110
+ * [Rubocop](http://batsov.com/rubocop/)
111
+ * [Better Specs](http://betterspecs.org)
112
+ * [Publishing your gem](http://guides.rubygems.org/publishing/)
89
113
  * [Testing Rake Tasks with RSpec](http://www.philsergi.com/2009/02/testing-rake-tasks-with-rspec.html)
90
114
  * [Nathan Humbert's Blog: Rails 3: Loading rake tasks from a gem](http://blog.nathanhumbert.com/2010/02/rails-3-loading-rake-tasks-from-gem.html)
91
115
  * [Add Achievement Badges to Your Gem README](http://elgalu.github.io/2013/add-achievement-badges-to-your-gem-readme/)
92
- * [Publishing your gem](http://guides.rubygems.org/publishing/)
93
- * [Better Specs](http://betterspecs.org)
94
116
 
95
117
  ## Version History
96
118
 
119
+ * 3.1.0 - Rubocop integration
97
120
  * 3.0.0 - RSpec 3 supported
98
121
  * 1.0.3 - Last version with RSpec 2.x support
99
122
 
100
- ## TODO
101
-
102
- * Fix include_module - only get class if arg is not already a class
103
- * Add more matchers
104
123
 
105
124
 
data/Rakefile CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env rake
2
2
  require 'bundler/gem_tasks'
3
- load 'lib/tasks/spec_cat.rake'
3
+ load 'lib/tasks/spec_cat.rake'
@@ -26,5 +26,4 @@ RSpec::Matchers.define :eql_file do |expected_path|
26
26
  SpecCat.write( expected_path + extension, actual )
27
27
  actual == SpecCat.read( expected_path )
28
28
  end
29
-
30
29
  end
@@ -9,7 +9,7 @@ RSpec::Matchers.define :have_a_spec do
9
9
  end
10
10
 
11
11
  match do |path|
12
- File.exists?( spec_file_for( path ) )
12
+ File.exist?( spec_file_for( path ) )
13
13
  end
14
14
 
15
15
  failure_message do |path|
@@ -29,5 +29,4 @@ RSpec::Matchers.define :have_a_spec do
29
29
 
30
30
  return File.join( dirname, basename )
31
31
  end
32
-
33
- end
32
+ end
@@ -17,7 +17,7 @@ RSpec::Matchers.define :include_module do |expected_module|
17
17
  end
18
18
 
19
19
  match do |subject|
20
- subject.class.included_modules.include?( expected_module )
20
+ target = subject.is_a?( Class ) ? subject : subject.class
21
+ target.included_modules.include?( expected_module )
21
22
  end
22
-
23
23
  end
@@ -0,0 +1,23 @@
1
+ # pass_rubocop.rb
2
+ #
3
+ # Confirms that the working directory passes rubocop
4
+
5
+ RSpec::Matchers.define :pass_rubocop do
6
+
7
+ description do
8
+ 'passes rubocop'
9
+ end
10
+
11
+ failure_message do
12
+ report = `rubocop`
13
+ "expected that rubocop would pass\n\n#{report}"
14
+ end
15
+
16
+ failure_message_when_negated do
17
+ 'expected that rubocop would not pass'
18
+ end
19
+
20
+ match do
21
+ Kernel.system( 'rubocop > /dev/null' )
22
+ end
23
+ end
@@ -3,7 +3,7 @@ require 'rails'
3
3
 
4
4
  module SpecCat
5
5
  class Railtie < Rails::Railtie
6
- railtie_name :'spec_cat'
6
+ railtie_name :spec_cat
7
7
 
8
8
  rake_tasks do
9
9
  load 'tasks/spec_cat.rake'
@@ -1,3 +1,3 @@
1
1
  module SpecCat
2
- VERSION = '3.0.0'
2
+ VERSION = '3.1.0'.freeze
3
3
  end
data/lib/spec_cat.rb CHANGED
@@ -3,6 +3,7 @@ require 'rspec'
3
3
  require 'spec_cat/matchers/eql_file'
4
4
  require 'spec_cat/matchers/have_a_spec'
5
5
  require 'spec_cat/matchers/include_module'
6
+ require 'spec_cat/matchers/pass_rubocop'
6
7
 
7
8
  require 'spec_cat/railtie' if defined?(Rails)
8
9
 
@@ -13,11 +14,10 @@ module SpecCat
13
14
  end
14
15
 
15
16
  def self.write( path, content )
16
- File.open( path,'wb' ) { |io| io.write content }
17
+ File.open( path, 'wb' ) { |io| io.write content }
17
18
  end
18
19
 
19
20
  def self.read( path )
20
- File.open( path, 'rb' ) { |io| io.read }
21
+ File.open( path, 'rb', &:read )
21
22
  end
22
-
23
- end
23
+ end
@@ -1,4 +1,4 @@
1
- namespace :'spec_cat' do
1
+ namespace :spec_cat do
2
2
 
3
3
  desc 'Run rspec and accept all ground truth file changes'
4
4
  task :accept do
@@ -10,5 +10,4 @@ namespace :'spec_cat' do
10
10
  task :coverage do
11
11
  Kernel.system 'rspec spec && open coverage/index.html'
12
12
  end
13
-
14
13
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spec_cat
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rich Humphrey
@@ -30,6 +30,20 @@ dependencies:
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
32
  version: 3.0.0
33
+ - !ruby/object:Gem::Dependency
34
+ name: rubocop
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
33
47
  - !ruby/object:Gem::Dependency
34
48
  name: rails
35
49
  requirement: !ruby/object:Gem::Requirement
@@ -103,6 +117,7 @@ files:
103
117
  - lib/spec_cat/matchers/eql_file.rb
104
118
  - lib/spec_cat/matchers/have_a_spec.rb
105
119
  - lib/spec_cat/matchers/include_module.rb
120
+ - lib/spec_cat/matchers/pass_rubocop.rb
106
121
  - lib/spec_cat/railtie.rb
107
122
  - lib/spec_cat/version.rb
108
123
  - lib/tasks/spec_cat.rake
@@ -113,7 +128,7 @@ metadata: {}
113
128
  post_install_message:
114
129
  rdoc_options: []
115
130
  require_paths:
116
- - - lib
131
+ - lib
117
132
  required_ruby_version: !ruby/object:Gem::Requirement
118
133
  requirements:
119
134
  - - ">="
@@ -126,7 +141,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
126
141
  version: '0'
127
142
  requirements: []
128
143
  rubyforge_project:
129
- rubygems_version: 2.2.2
144
+ rubygems_version: 2.6.11
130
145
  signing_key:
131
146
  specification_version: 4
132
147
  summary: RSpec support library