response_code_matchers 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,3 @@
1
1
  module ResponseCodeMatchers
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -2,8 +2,13 @@ require "response_code_matchers/version"
2
2
  require "rack"
3
3
 
4
4
  module ResponseCodeMatchers
5
+
5
6
  Rack::Utils::SYMBOL_TO_STATUS_CODE.each do |name, code|
6
- name = name.to_s.gsub("'", "")
7
+ name = name.to_s.tap do |t|
8
+ t.gsub!("'", '') # remove single quotes
9
+ t.gsub!(/\(.*\)/, '') # remove anything in parentheses
10
+ t.gsub!(/\_$/, '') # remove trailing underscores
11
+ end
7
12
  define_method("be_#{name}") do
8
13
  ResponseCodeMatcher.new(code.to_s, name)
9
14
  end
@@ -16,10 +21,12 @@ module ResponseCodeMatchers
16
21
  end
17
22
 
18
23
  def matches?(response)
19
- @valid = response.respond_to?(:code)
20
- if @valid
24
+ if @valid = response.respond_to?(:code)
21
25
  @actual = response.code
22
26
  @actual == @expected
27
+ elsif @valid = response.respond_to?(:status)
28
+ @actual = response.status.to_s
29
+ @actual == @expected
23
30
  else
24
31
  response.__send__(method_name)
25
32
  end
@@ -40,7 +40,6 @@ describe ResponseCodeMatchers do
40
40
  415 be_unsupported_media_type
41
41
  416 be_requested_range_not_satisfiable
42
42
  417 be_expectation_failed
43
- 418 be_im_a_teapot
44
43
  422 be_unprocessable_entity
45
44
  423 be_locked
46
45
  424 be_failed_dependency
@@ -66,6 +65,16 @@ describe ResponseCodeMatchers do
66
65
  end
67
66
  end
68
67
 
68
+ context "when receiver responds to #status" do
69
+ let(:receiver) do
70
+ mock(:status => 406)
71
+ end
72
+
73
+ it "calls original receiver.xxx?" do
74
+ receiver.should be_not_acceptable
75
+ end
76
+ end
77
+
69
78
  context "when receiver does not have a method #code" do
70
79
  let(:receiver) do
71
80
  mock(:accepted? => true)
metadata CHANGED
@@ -1,60 +1,55 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: response_code_matchers
3
- version: !ruby/object:Gem::Version
4
- hash: 27
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 2
10
- version: 0.0.2
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Ryo NAKAMURA
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-12-05 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2013-01-23 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: rack
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 3
29
- segments:
30
- - 0
31
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
32
22
  type: :runtime
33
- version_requirements: *id001
34
- - !ruby/object:Gem::Dependency
35
- name: rspec
36
23
  prerelease: false
37
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rspec
32
+ requirement: !ruby/object:Gem::Requirement
38
33
  none: false
39
- requirements:
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- hash: 3
43
- segments:
44
- - 0
45
- version: "0"
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
46
38
  type: :development
47
- version_requirements: *id002
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
48
46
  description: Provide rspec matchers to match http response code
49
- email:
47
+ email:
50
48
  - r7kamura@gmail.com
51
49
  executables: []
52
-
53
50
  extensions: []
54
-
55
51
  extra_rdoc_files: []
56
-
57
- files:
52
+ files:
58
53
  - .gitignore
59
54
  - Gemfile
60
55
  - LICENSE.txt
@@ -67,37 +62,28 @@ files:
67
62
  - spec/spec_helper.rb
68
63
  homepage: https://github.com/r7kamura/response_code_matchers
69
64
  licenses: []
70
-
71
65
  post_install_message:
72
66
  rdoc_options: []
73
-
74
- require_paths:
67
+ require_paths:
75
68
  - lib
76
- required_ruby_version: !ruby/object:Gem::Requirement
69
+ required_ruby_version: !ruby/object:Gem::Requirement
77
70
  none: false
78
- requirements:
79
- - - ">="
80
- - !ruby/object:Gem::Version
81
- hash: 3
82
- segments:
83
- - 0
84
- version: "0"
85
- required_rubygems_version: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ! '>='
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ required_rubygems_version: !ruby/object:Gem::Requirement
86
76
  none: false
87
- requirements:
88
- - - ">="
89
- - !ruby/object:Gem::Version
90
- hash: 3
91
- segments:
92
- - 0
93
- version: "0"
77
+ requirements:
78
+ - - ! '>='
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
94
81
  requirements: []
95
-
96
82
  rubyforge_project:
97
83
  rubygems_version: 1.8.24
98
84
  signing_key:
99
85
  specification_version: 3
100
86
  summary: RSpec utility matchers for http response code
101
- test_files:
87
+ test_files:
102
88
  - spec/response_code_matchers_spec.rb
103
89
  - spec/spec_helper.rb