simple_delegate 0.0.0 → 0.0.1

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: 9e82fac98431e02051df89338e1235675b18d983
4
- data.tar.gz: 31e3c58297b74b46e03cbc16c5fcb26dcbfaaf18
3
+ metadata.gz: 8c4fd652c4eb32b50e18af6623d8b31ebb699d07
4
+ data.tar.gz: 8e12309e549fc21d4233fe94a16ddc2d27d0bcc4
5
5
  SHA512:
6
- metadata.gz: 1ca815178cd173c98452f6d18d697d3d0ffcb06c91cdb742f0fb1f505efa303abfe1ce504a8a18182c598a0fcf2bc7209f573e908c6340787b386aabc574da32
7
- data.tar.gz: 6dd3371efe99664e41556dbeeebd68204fbbfa6498ab1ff61ec379548a34a0b762bdbacc9048fad14d520a66c17179d865ec8a5453d31d6b016bfe128be4de56
6
+ metadata.gz: 74185602036fc2be0b7741cb05593dc2a336fdf582f60a13ed3abe60351588587f3a8c1273c6d0cc517efb7b2ae8152773fd017536f5b71893407ab9b24d2785
7
+ data.tar.gz: ba69fd03a8e74b6a43344e7c7a911b1fbc64cf05cda6897ad50d32f57cc0d0653bf55d9b564ac7683f2ff497ca510119bbf2468ed8e61b9918dd3a4b14c07d7e
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.0
1
+ 0.0.1
@@ -9,8 +9,15 @@ module SimpleDelegate
9
9
 
10
10
  args.each do |method|
11
11
  define_method(method) do |*method_args, &method_blk|
12
- object = instance_variable_get("@#{opts.fetch(:to)}")
13
- raise "No object by that name: #{opts.fetch(:to)}" unless object
12
+ if opts[:to]
13
+ object = instance_variable_get("@#{opts.fetch(:to)}")
14
+ elsif opts[:to_method]
15
+ object = __send__(opts.fetch(:to_method))
16
+ else
17
+ raise "Don't know where to delegate to"
18
+ end
19
+
20
+ raise "Nothing was returned by: #{opts.fetch(:to_method)}" unless object
14
21
  object.__send__(method, *method_args, &method_blk)
15
22
  end
16
23
  end
@@ -2,11 +2,11 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: simple_delegate 0.0.0 ruby lib
5
+ # stub: simple_delegate 0.0.1 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "simple_delegate"
9
- s.version = "0.0.0"
9
+ s.version = "0.0.1"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
@@ -20,10 +20,26 @@ class SampleClass2
20
20
  end
21
21
  end
22
22
 
23
+ class DelegateToMethods
24
+ include SimpleDelegate
25
+
26
+ delegate :method1, :method2, to_method: :spawn_object
27
+
28
+ def spawn_object
29
+ @object = SampleClass2.new
30
+ end
31
+ end
32
+
23
33
  describe "SimpleDelegate" do
24
34
  it "delegates" do
25
35
  sample = SampleClass1.new
26
36
  expect(sample.method1).to eq "method1"
27
37
  expect(sample.method2).to eq "method2"
28
38
  end
39
+
40
+ it "delegates to methods" do
41
+ sample = DelegateToMethods.new
42
+ expect(sample.method1).to eq "method1"
43
+ expect(sample.method2).to eq "method2"
44
+ end
29
45
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_delegate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - kaspernj