rspec-fire 0.2 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. data/HISTORY +3 -0
  2. data/README.md +2 -6
  3. data/lib/rspec/fire.rb +28 -33
  4. data/rspec-fire.gemspec +1 -1
  5. metadata +7 -7
data/HISTORY CHANGED
@@ -3,3 +3,6 @@
3
3
 
4
4
  0.2 - 3 September 2011
5
5
  * Checks method arity when a 'with' call is present
6
+
7
+ 0.2.1 - 14 January 2011
8
+ * rspec 2.8 support
data/README.md CHANGED
@@ -107,8 +107,6 @@ check for *any* set of methods.
107
107
 
108
108
  * Only mock methods on collaborators, _not_ the class under test.
109
109
  * Only mock public methods.
110
- * Extract common mock setup to keep your specs
111
- [DRY](http://en.wikipedia.org/wiki/DRY).
112
110
 
113
111
  If you can't meet these criteria, your object is probably violating
114
112
  [SOLID](http://en.wikipedia.org/wiki/SOLID) principles and you should either
@@ -117,11 +115,9 @@ refactor or use a non-isolated test.
117
115
  Compatibility
118
116
  -------------
119
117
 
120
- Only RSpec 2 is supported. Tested on all the rubies.
118
+ Only RSpec 2 is supported. Tested on all the rubies thanks to [Travis
119
+ CI][build-link].
121
120
 
122
- [![Build Status][build-image]][build-link]
123
-
124
- [build-image]: https://secure.travis-ci.org/xaviershay/rspec-fire.png
125
121
  [build-link]: http://travis-ci.org/xaviershay/rspec-fire
126
122
 
127
123
  Developing
data/lib/rspec/fire.rb CHANGED
@@ -18,6 +18,7 @@ module RSpec
18
18
  end
19
19
 
20
20
  class ShouldProxy < SimpleDelegator
21
+ extend RSpec::Matchers::DSL
21
22
  include RecursiveConstMethods
22
23
 
23
24
  AM = RSpec::Mocks::ArgumentMatchers
@@ -55,21 +56,20 @@ module RSpec
55
56
  end
56
57
  end
57
58
 
58
- def have_arity(actual)
59
- RSpec::Matchers::Matcher.new(:have_arity, actual) do |actual|
60
- match do |method|
61
- method.arity >= 0 && method.arity == actual
62
- end
59
+ define :have_arity do |actual|
60
+ match do |method|
61
+ method.arity >= 0 && method.arity == actual
62
+ end
63
63
 
64
- failure_message_for_should do |method|
65
- "Wrong number of arguments for #{method.name}. " +
66
- "Expected #{method.arity}, got #{actual}."
67
- end
64
+ failure_message_for_should do |method|
65
+ "Wrong number of arguments for #{method.name}. " +
66
+ "Expected #{method.arity}, got #{actual}."
68
67
  end
69
68
  end
70
69
  end
71
70
 
72
71
  class FireDouble < RSpec::Mocks::Mock
72
+ extend RSpec::Matchers::DSL
73
73
  include RecursiveConstMethods
74
74
 
75
75
  def initialize(doubled_class, *args)
@@ -106,31 +106,26 @@ module RSpec
106
106
  end
107
107
  end
108
108
 
109
- def implement(expected_methods, checked_methods)
110
- RSpec::Matchers::Matcher.new(:implement,
111
- expected_methods,
112
- checked_methods
113
- ) do |expected_methods, checked_methods|
114
- unimplemented_methods = lambda {|doubled_class|
115
- implemented_methods = doubled_class.send(checked_methods)
116
- # to_sym for non-1.9 compat
117
- expected_methods - implemented_methods.map(&:to_sym)
118
- }
119
-
120
- match do |doubled_class|
121
- unimplemented_methods[ doubled_class ].empty?
122
- end
109
+ define :implement do |expected_methods, checked_methods|
110
+ unimplemented_methods = lambda {|doubled_class|
111
+ implemented_methods = doubled_class.send(checked_methods)
112
+ # to_sym for non-1.9 compat
113
+ expected_methods - implemented_methods.map(&:to_sym)
114
+ }
123
115
 
124
- failure_message_for_should do |doubled_class|
125
- implemented_methods =
126
- Object.public_methods - doubled_class.send(checked_methods)
127
- "%s does not implement:\n%s" % [
128
- doubled_class,
129
- unimplemented_methods[ doubled_class ].sort.map {|x|
130
- " #{x}"
131
- }.join("\n")
132
- ]
133
- end
116
+ match do |doubled_class|
117
+ unimplemented_methods[ doubled_class ].empty?
118
+ end
119
+
120
+ failure_message_for_should do |doubled_class|
121
+ implemented_methods =
122
+ Object.public_methods - doubled_class.send(checked_methods)
123
+ "%s does not implement:\n%s" % [
124
+ doubled_class,
125
+ unimplemented_methods[ doubled_class ].sort.map {|x|
126
+ " #{x}"
127
+ }.join("\n")
128
+ ]
134
129
  end
135
130
  end
136
131
  end
data/rspec-fire.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'rspec-fire'
3
- s.version = '0.2'
3
+ s.version = '0.2.1'
4
4
  s.summary = 'More resilient test doubles for RSpec.'
5
5
  s.platform = Gem::Platform::RUBY
6
6
  s.authors = ["Xavier Shay"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-fire
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.2'
4
+ version: 0.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-09-04 00:00:00.000000000Z
12
+ date: 2012-01-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &2161554360 !ruby/object:Gem::Requirement
16
+ requirement: &2152370600 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *2161554360
24
+ version_requirements: *2152370600
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &2161553360 !ruby/object:Gem::Requirement
27
+ requirement: &2152370060 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: '2.5'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *2161553360
35
+ version_requirements: *2152370060
36
36
  description:
37
37
  email:
38
38
  - hello@xaviershay.com
@@ -68,7 +68,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
68
68
  version: '0'
69
69
  requirements: []
70
70
  rubyforge_project:
71
- rubygems_version: 1.8.10
71
+ rubygems_version: 1.8.6
72
72
  signing_key:
73
73
  specification_version: 3
74
74
  summary: More resilient test doubles for RSpec.