mock_proxy 0.1.1 → 0.1.2

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: 4a0be3478b9b871a212964dcaec40e5cf40fa5ee
4
- data.tar.gz: ae134b7b4c3c168ede44f0ba2a43316a7520e854
3
+ metadata.gz: ceef8aba92781d19960ef4b65b3ece2d8d1d3d4e
4
+ data.tar.gz: 41a93d0fed086e3b9479c60d055b7a7e89a0541a
5
5
  SHA512:
6
- metadata.gz: 5e95648c74a46db859ad2be919128aa33d1a57160889a575bae6c7b9ddf992d28325094b788480e9f3ef9280e37d1699fd75626064027e486377cf466b3b332c
7
- data.tar.gz: 8dd740b3d886373d24ad3537008f8747f9379d8b96ecd79440e4e6db943c236f2c645e7858eae4801a70a3a8698c058a3e8c58a4aec105279d4f533e036d73cc
6
+ metadata.gz: 9792f03d43756a82d7d8cec9b3a72e371205e9caa7904b0915209c49e5755029a1c5bcec58fd3e41a1f4c968df8e7af0f4f064ef9876cbf149573fac27aea1b0
7
+ data.tar.gz: 00e2f0de77ffc357f4a175bdd2c143dca74790a0db3c7a6d2433174d160304995d56efd6936da024432f089cd3447c078a1aad8f41aa6a0849104cf97a8faa6f
@@ -51,14 +51,17 @@ class MockProxy
51
51
  # Use case: Retrieve proc to mock
52
52
  #
53
53
  # @param [MockProxy] proxy existing proxy
54
- # @param [String, Array<String>] key_path the chain of methods or key path. Can be a
54
+ # @param [String, Symbol, #to_s, Array<String, Symbol, #to_s>] key_path the chain of methods or key path. Can be a
55
55
  # dot delimited key path or an array of method names as strings or symbols
56
56
  # @return [Block]
57
57
  def self.get(proxy, key_path)
58
58
  get_callback(proxy, key_path)
59
59
  end
60
60
 
61
- # Deep merges the callback tree, replacing existing values with new values
61
+ # Deep merges the callback tree, replacing existing values with new values.
62
+ # Avoid using this method for one method change; prefer replace_at. It has clearer
63
+ # intent and less chances to mess up. MockProxy.merge uses deep_merge under the hood and
64
+ # can have unexpected behaviour. It also does not type check. Use at risk
62
65
  #
63
66
  # Use case: Reuse existing stub but with some different values
64
67
  #
@@ -78,7 +81,7 @@ class MockProxy
78
81
  # Use case: Reuse existing stub but modify a proc
79
82
  #
80
83
  # @param [MockProxy] proxy existing proxy
81
- # @param [String, Array<String>] key_path the chain of methods or key path. Can be a
84
+ # @param [String, Symbol, #to_s, Array<String, Symbol, #to_s>] key_path the chain of methods or key path. Can be a
82
85
  # dot delimited key path or an array of method names as strings or symbols
83
86
  # @return [MockProxy] the original proxy object
84
87
  def self.replace_at(proxy, key_path, &block)
@@ -91,7 +94,7 @@ class MockProxy
91
94
  # Use case: Observe method call without changing the existing callback's stubbed return value
92
95
  #
93
96
  # @param [MockProxy] proxy existing proxy
94
- # @param [String, Array<String>] key_path the chain of methods or key path. Can be a
97
+ # @param [String, Symbol, #to_s, Array<String, Symbol, #to_s>] key_path the chain of methods or key path. Can be a
95
98
  # dot delimited key path or an array of method names as strings or symbols
96
99
  # @yieldparam [*args] args
97
100
  # @yieldreturn [optional]
@@ -114,7 +117,7 @@ class MockProxy
114
117
  # Use case: Get full control of the existing proc while running custom code
115
118
  #
116
119
  # @param [MockProxy] proxy existing proxy
117
- # @param [String, Array<String>] key_path the chain of methods or key path. Can be a
120
+ # @param [String, Symbol, #to_s, Array<String, Symbol, #to_s>] key_path the chain of methods or key path. Can be a
118
121
  # dot delimited key path or an array of method names as strings or symbols
119
122
  # @yieldparam [*args, &block] args, original callback
120
123
  # @yieldreturn [optional]
@@ -133,12 +136,12 @@ class MockProxy
133
136
 
134
137
  # @private
135
138
  # @param [MockProxy] proxy existing proxy
136
- # @param [String, Array<String>] key_path the chain of methods or key path. Can be a
139
+ # @param [String, Symbol, #to_s, Array<String, Symbol, #to_s>] key_path the chain of methods or key path. Can be a
137
140
  # dot delimited key path or an array of method names as strings or symbols
138
141
  # @return [Proc] if proc found at key path
139
142
  # @raise [ArgumentError] if proc not found or hash found at key path
140
143
  def self.get_callback(proxy, key_path)
141
- key_paths = key_path.is_a?(Array) ? key_path.map(&:to_s) :key_path.split('.')
144
+ key_paths = key_path.is_a?(Array) ? key_path.map(&:to_s) : key_path.split('.')
142
145
  existing_callback_hash = proxy.instance_variable_get('@callback_hash')
143
146
  callback = key_paths.reduce(existing_callback_hash) do |callback_hash, key|
144
147
  if callback_hash && callback_hash[key]
@@ -157,13 +160,13 @@ class MockProxy
157
160
 
158
161
  # @private
159
162
  # @param [MockProxy] proxy existing proxy
160
- # @param [String, Array<String>] key_path the chain of methods or key path. Can be a
163
+ # @param [String, Symbol, #to_s, Array<String, Symbol, #to_s>] key_path the chain of methods or key path. Can be a
161
164
  # dot delimited key path or an array of method names as strings or symbols
162
165
  # @param [Proc] proc the new proc to replace the existing proc
163
166
  # @return [MockProxy] if proc existed at key path
164
167
  # @raise [ArgumentError] if proc not found or hash found at key path
165
168
  def self.set_callback(proxy, key_path, proc)
166
- key_paths = key_path.is_a?(Array) ? key_path.map(&:to_s) :key_path.split('.')
169
+ key_paths = key_path.is_a?(Array) ? key_path.map(&:to_s) : key_path.to_s.split('.')
167
170
  copied_callback_hash = proxy.instance_variable_get('@callback_hash').clone
168
171
  key_paths.reduce(copied_callback_hash) do |callback_hash, key|
169
172
  if !callback_hash || !callback_hash[key]
@@ -1,4 +1,4 @@
1
1
  class MockProxy
2
2
  # The version number
3
- VERSION = '0.1.1'
3
+ VERSION = '0.1.2'
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mock_proxy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - matrinox