simple_delegate 0.0.0 → 0.0.1

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 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