fakeweb-matcher 1.2.2 → 1.2.3

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,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 43ddc80116ddeeddb5d4b268a0252c99f9bd2411
4
+ data.tar.gz: 7c1fb3ba541ddd2466645fcd0b553453279e6d8a
5
+ SHA512:
6
+ metadata.gz: 4ad8c46c69e7809dcfdaac6ba7a8eef114cc33ea2861bedf3c28d1093f6d316c92fbbfdf73c8d2bb9cfcf900fb407898f66c74228e31f63ca64fc0ec9f598dea
7
+ data.tar.gz: db1e4a89c70313c28e4af53d268aae8233cb657cbbacc3b37430bd16bc57301173e4823e0204dfa59dfa90e3a150ef9be35df4247073038f4dee3b5af56da25a
data/Rakefile CHANGED
@@ -1,4 +1,9 @@
1
- require 'tasks/distribution'
2
- require 'tasks/testing'
1
+ require 'rubygems'
2
+ require 'bundler'
3
+
4
+ Bundler.require :default, :development
5
+
6
+ require "#{File.dirname(__FILE__)}/tasks/distribution"
7
+ require "#{File.dirname(__FILE__)}/tasks/testing"
3
8
 
4
9
  task :default => :spec
data/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
- ---
1
+ ---
2
2
  :major: 1
3
3
  :minor: 2
4
- :patch: 2
4
+ :patch: 3
@@ -1,8 +1,8 @@
1
1
  module FakeWebMatcher
2
2
  # Matcher class, following RSpec's expectations. Used to confirm whether a
3
3
  # request has been made on a given method and URI.
4
- #
5
-
4
+ #
5
+
6
6
  # Monkey patch to add a normalize! method to the URI::HTTP class.
7
7
  # It doesn't currently sort the query params which means two URLs
8
8
  # that are equivalent except for a different order of query params
@@ -13,115 +13,120 @@ module FakeWebMatcher
13
13
  # affect equality.
14
14
  def normalize!
15
15
  if query
16
- query_array = self.query.split('&')
17
- set_query(query_array.sort.join('&'))
16
+ normalised_query = self.query.split('&').sort.join('&')
17
+ if respond_to? :set_query
18
+ set_query normalised_query
19
+ else
20
+ self.query = normalised_query
21
+ end
18
22
  end
23
+
19
24
  super
20
25
  end
21
26
  end
22
27
 
23
28
  class RequestMatcher
24
29
  attr_reader :url, :method
25
-
30
+
26
31
  # Create a new matcher.
27
- #
32
+ #
28
33
  # @param [Symbol] method The HTTP method. Defaults to :any if not supplied.
29
34
  # @param [String, Regexp] uri The URI to check for
30
- #
35
+ #
31
36
  def initialize(*args)
32
37
  @method, @url = args_split(*args)
33
38
  end
34
-
39
+
35
40
  # Indication of whether there's a match on the URI from given requests.
36
- #
41
+ #
37
42
  # @param [Module] FakeWeb Module, necessary for RSpec, although not
38
43
  # required internally.
39
44
  # @return [Boolean] true if the URI was requested, otherwise false.
40
- #
45
+ #
41
46
  def matches?(fakeweb)
42
47
  !FakeWeb::Registry.instance.requests.detect { |req|
43
48
  method, url = args_split(*req)
44
49
  match_method(method) && match_url(url)
45
50
  }.nil?
46
51
  end
47
-
52
+
48
53
  # Failure message if the URI should have been requested.
49
- #
54
+ #
50
55
  # @return [String] failure message
51
- #
56
+ #
52
57
  def failure_message
53
58
  regex?(@url) ? regex_failure_message : url_failure_message
54
59
  end
55
-
60
+
56
61
  # Failure message if the URI should not have been requested.
57
- #
62
+ #
58
63
  # @return [String] failure message
59
64
  #
60
65
  def negative_failure_message
61
66
  regex?(@url) ? regex_negative_failure_message : url_negative_failure_message
62
67
  end
63
-
68
+
64
69
  private
65
-
70
+
66
71
  def regex_negative_failure_message
67
72
  "A URL that matches #{@url.inspect} was requested#{failure_message_method} and should not have been."
68
73
  end
69
-
74
+
70
75
  def url_negative_failure_message
71
76
  "The URL #{@url} was requested#{failure_message_method} and should not have been."
72
77
  end
73
-
78
+
74
79
  def regex_failure_message
75
80
  "A URL that matches #{@url.inspect} was not requested#{failure_message_method}."
76
81
  end
77
-
82
+
78
83
  def url_failure_message
79
84
  "The URL #{@url} was not requested#{failure_message_method}."
80
85
  end
81
-
86
+
82
87
  def failure_message_method
83
88
  " using #{formatted_method}" unless @method == :any
84
89
  end
85
-
90
+
86
91
  # Compares methods, or ignores if either side of the comparison is :any.
87
- #
92
+ #
88
93
  # @param [Symbol] method HTTP method
89
94
  # @return [Boolean] true if methods match or either is :any.
90
- #
95
+ #
91
96
  def match_method(method)
92
97
  @method == :any || method == :any || method == @method
93
98
  end
94
-
95
- # Compares the url either by match it agains a regular expression or
99
+
100
+ # Compares the url either by match it agains a regular expression or
96
101
  # by simple comparison
97
- #
102
+ #
98
103
  # @param [String] url the called URI
99
104
  # @return [Boolean] true if exprexted URI and called URI match.
100
- #
105
+ #
101
106
  def match_url(url)
102
107
  return @url.match(url.to_s) if regex?(@url)
103
108
  @url == url
104
109
  end
105
-
110
+
106
111
  # Expected method formatted to be an uppercase string. Example: :get becomes
107
112
  # "GET".
108
- #
113
+ #
109
114
  # @return [String] uppercase method
110
- #
115
+ #
111
116
  def formatted_method
112
117
  @method.to_s.upcase
113
118
  end
114
-
119
+
115
120
  # Interprets given arguments to a method and URI instance. The URI, as a
116
121
  # string, is required, but the method is not (will default to :any).
117
- #
122
+ #
118
123
  # @param [Array] args
119
124
  # @return [Array] Two items: method and URI instance or regular expression
120
- #
125
+ #
121
126
  def args_split(*args)
122
127
  method = :any
123
128
  uri = nil
124
-
129
+
125
130
  case args.length
126
131
  when 1 then uri = args[0]
127
132
  when 2 then method, uri = args[0], args[1]
@@ -131,7 +136,7 @@ module FakeWebMatcher
131
136
  uri = URI.parse(uri) unless regex?(uri)
132
137
  return method, uri
133
138
  end
134
-
139
+
135
140
  def regex?(object)
136
141
  object.is_a?(Regexp)
137
142
  end
@@ -1,4 +1,4 @@
1
- require 'spec/spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe FakeWebMatcher::Extension do
4
4
  it "should be included into the FakeWeb::Registry class" do
@@ -1,4 +1,4 @@
1
- require 'spec/spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe FakeWebMatcher::Matchers do
4
4
  describe '#have_requested' do
@@ -1,4 +1,4 @@
1
- require 'spec/spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe FakeWebMatcher::RequestMatcher do
4
4
  describe '#initialize' do
@@ -1,4 +1,4 @@
1
- require 'spec/spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe FakeWebMatcher do
4
4
  #
data/spec/spec_helper.rb CHANGED
@@ -1,11 +1,11 @@
1
1
  $:.unshift File.dirname(__FILE__) + '/../lib'
2
+ $:.unshift File.dirname(__FILE__) + '/.'
2
3
 
3
4
  require 'rubygems'
5
+ require 'bundler'
6
+
7
+ Bundler.require :default, :development
8
+
4
9
  require 'open-uri'
5
- require 'spec'
6
10
  require 'fake_web'
7
11
  require 'fake_web_matcher'
8
-
9
- Spec::Runner.configure do |config|
10
- #
11
- end
metadata CHANGED
@@ -1,65 +1,93 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: fakeweb-matcher
3
- version: !ruby/object:Gem::Version
4
- hash: 27
5
- prerelease: false
6
- segments:
7
- - 1
8
- - 2
9
- - 2
10
- version: 1.2.2
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.2.3
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Pat Allan
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2010-10-25 00:00:00 +11:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
11
+ date: 2014-12-28 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
22
14
  name: fakeweb
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
27
17
  - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 21
30
- segments:
31
- - 1
32
- - 2
33
- - 5
18
+ - !ruby/object:Gem::Version
34
19
  version: 1.2.5
35
20
  type: :runtime
36
- version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
- name: rspec
39
21
  prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 1.2.5
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
43
31
  - - ">="
44
- - !ruby/object:Gem::Version
45
- hash: 31
46
- segments:
47
- - 1
48
- - 2
49
- - 0
32
+ - !ruby/object:Gem::Version
50
33
  version: 1.2.0
51
34
  type: :runtime
52
- version_requirements: *id002
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 1.2.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: jeweler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '='
46
+ - !ruby/object:Gem::Version
47
+ version: 1.7.0
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '='
53
+ - !ruby/object:Gem::Version
54
+ version: 1.7.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
61
+ version: 0.8.7
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '='
67
+ - !ruby/object:Gem::Version
68
+ version: 0.8.7
69
+ - !ruby/object:Gem::Dependency
70
+ name: yard
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '='
74
+ - !ruby/object:Gem::Version
75
+ version: 0.7.2
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '='
81
+ - !ruby/object:Gem::Version
82
+ version: 0.7.2
53
83
  description:
54
84
  email: pat@freelancing-gods.com
55
85
  executables: []
56
-
57
86
  extensions: []
58
-
59
- extra_rdoc_files:
87
+ extra_rdoc_files:
60
88
  - LICENSE
61
89
  - README.textile
62
- files:
90
+ files:
63
91
  - LICENSE
64
92
  - README.textile
65
93
  - Rakefile
@@ -74,43 +102,33 @@ files:
74
102
  - spec/lib/fake_web_matcher/request_matcher_spec.rb
75
103
  - spec/lib/fake_web_matcher_spec.rb
76
104
  - spec/spec_helper.rb
77
- has_rdoc: true
78
105
  homepage: http://github.com/freelancing-god/fakeweb-matcher
79
106
  licenses: []
80
-
107
+ metadata: {}
81
108
  post_install_message:
82
109
  rdoc_options: []
83
-
84
- require_paths:
110
+ require_paths:
85
111
  - lib
86
- required_ruby_version: !ruby/object:Gem::Requirement
87
- none: false
88
- requirements:
112
+ required_ruby_version: !ruby/object:Gem::Requirement
113
+ requirements:
89
114
  - - ">="
90
- - !ruby/object:Gem::Version
91
- hash: 3
92
- segments:
93
- - 0
94
- version: "0"
95
- required_rubygems_version: !ruby/object:Gem::Requirement
96
- none: false
97
- requirements:
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ required_rubygems_version: !ruby/object:Gem::Requirement
118
+ requirements:
98
119
  - - ">="
99
- - !ruby/object:Gem::Version
100
- hash: 3
101
- segments:
102
- - 0
103
- version: "0"
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
104
122
  requirements: []
105
-
106
123
  rubyforge_project:
107
- rubygems_version: 1.3.7
124
+ rubygems_version: 2.2.2
108
125
  signing_key:
109
- specification_version: 3
126
+ specification_version: 4
110
127
  summary: RSpec matcher for the FakeWeb library
111
- test_files:
128
+ test_files:
112
129
  - spec/lib/fake_web_matcher/extension_spec.rb
113
130
  - spec/lib/fake_web_matcher/matchers_spec.rb
114
131
  - spec/lib/fake_web_matcher/request_matcher_spec.rb
115
132
  - spec/lib/fake_web_matcher_spec.rb
116
133
  - spec/spec_helper.rb
134
+ has_rdoc: