method_man 2.1.3 → 2.1.4

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: 4fdbcefd427794328ed76138ee1ae3c40652be07
4
- data.tar.gz: f7a19bd8d6a86ff56c293e31eaa80e0696139b86
3
+ metadata.gz: 81b47336f9cc1310f47c3c8b1bcdac7710594f81
4
+ data.tar.gz: 36486a9aee423f69cb5e405a046c2ab5f31dd34e
5
5
  SHA512:
6
- metadata.gz: 1a12a8183393dc8401035a3f8d0da9c3f5a45d1d0ac5a525198e5130c7c0af0b644ba47091c4654a7d9fa027195a339f195a883f951fb6464a76990cb7cdab9b
7
- data.tar.gz: 98b2d6d7287be407b4a27c910b20527426167415ad91d4b1daff6916986c5f2c1a3286fbd4d89e2ee8d2a50d04e30143ff7b3e8c919ae844b96b1a67840035fd
6
+ metadata.gz: 0ebe52a266f21791980166006d113ea8e2fafadf26780075fed51f48996e82b8cc207d0d7e2e0b7449a4ec11b9e28138b84a101f7f930e367b6120a71a8ddddd
7
+ data.tar.gz: b7470917710d58ac6002e5868ea97a824c841b248dae462afaf0b40a9acc1b7335b58121464c363dd5d1be5ede93fd7c156e1c30db3b87dcb13f41ceff8185cb
data/CHANGELOG.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # Change log
2
2
 
3
+ ## 2.1.4
4
+ Fix bug with delegating to assignment methods like `foo=`.
5
+
3
6
  ## 2.1.1
4
7
  Fix bug preventing arguments from being forwarded to delegated methods.
5
8
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class MethodObject
4
- VERSION = '2.1.3'
4
+ VERSION = '2.1.4'
5
5
  end
data/lib/method_object.rb CHANGED
@@ -66,12 +66,20 @@ class MethodObject
66
66
 
67
67
  def define_delegated_method(delegate)
68
68
  self.class.class_eval(
69
- <<-RUBY
70
- def #{delegate.delegated_method}(*args, &block)
71
- #{delegate.attribute}
72
- .#{delegate.method_to_call_on_delegate}(*args, &block)
73
- end
74
- RUBY
69
+ if delegate.method_to_call_on_delegate.to_s.end_with?('=')
70
+ <<-RUBY
71
+ def #{delegate.delegated_method}(arg)
72
+ #{delegate.attribute}.#{delegate.method_to_call_on_delegate}(arg)
73
+ end
74
+ RUBY
75
+ else
76
+ <<-RUBY
77
+ def #{delegate.delegated_method}(*args, &block)
78
+ #{delegate.attribute}
79
+ .#{delegate.method_to_call_on_delegate}(*args, &block)
80
+ end
81
+ RUBY
82
+ end
75
83
  )
76
84
  end
77
85
 
@@ -25,6 +25,8 @@ RSpec.describe(MethodObject) do
25
25
  attrs(:company, :user)
26
26
 
27
27
  def call
28
+ self.name = 'New Company Name'
29
+ self.company_name = 'New Company Name 2'
28
30
  {
29
31
  address: address,
30
32
  respond_to_address: respond_to_missing?(:address),
@@ -58,10 +60,11 @@ RSpec.describe(MethodObject) do
58
60
  let(:company_name) { 'Periscope Data' }
59
61
  let(:user) { double('user', name: user_name) }
60
62
  let(:user_name) { 'Woody' }
61
-
62
63
  let(:result) { subject.call(company: company, user: user) }
63
64
 
64
65
  specify do
66
+ expect(company).to receive(:name=).ordered.with('New Company Name')
67
+ expect(company).to receive(:name=).ordered.with('New Company Name 2')
65
68
  expect(result).to eq(
66
69
  address: company_address,
67
70
  respond_to_address: true,
@@ -173,7 +176,8 @@ RSpec.describe(MethodObject) do
173
176
  end
174
177
 
175
178
  specify do
176
- expect(subject.call(company: company)).to eq([company_name, company_name])
179
+ expect(subject.call(company: company))
180
+ .to eq([company_name, company_name])
177
181
  end
178
182
  end
179
183
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: method_man
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.3
4
+ version: 2.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Clay Shentrup