forward_to 0.3.0 → 0.4.0

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
  SHA256:
3
- metadata.gz: '079c056657ce3bbdeba3086c185a38723c13ef0b357780a56ad5839e249f1ffe'
4
- data.tar.gz: bc76638c1b0d7d480630d764c17078f4588684c1d00a0c9a820e6c9dfa0a4b59
3
+ metadata.gz: b28ac6a51db0a89c6c59a4a4eff5a72806bfd4103702c6e0416c2aabdab9d20c
4
+ data.tar.gz: cf0f8c489d4d30e8e7c05373af3551af1f52c984dcc664ff9ddbf28aa828bd17
5
5
  SHA512:
6
- metadata.gz: c9b47190963da620d6da24fbef310fa40b9b522da5df19967e363f4a891f3f8db8d8253fd56172a424af9f1cbd0aad7a3c68ed03ebda4fe8e9591250deb56d71
7
- data.tar.gz: 782a9d3e395a922e4ada9352095384ec3b97fc2aa30223a59eabe10e4023719c943654131949387b4565ea1b59a4ec48683d06e7c348c995b4e1bf2b741b12a0
6
+ metadata.gz: 19a767c6d285fddc05186e16c769eb9d09ffb6dfceceb55d6956e78583a1209822cce576568d45666e595043a9ac9beecf0e98c1ebb4d1e580d23631c72e187c
7
+ data.tar.gz: 71429d20828ae7b7c12f4eb4bba99b39637418db10f334308690a03fdd06660f4d7b4e192f6c81471263515e5dfa855de147645540f4a5adaeeab1cf6de49f53
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ForwardTo
4
- VERSION = "0.3.0"
4
+ VERSION = "0.4.0"
5
5
  end
data/lib/forward_to.rb CHANGED
@@ -13,8 +13,8 @@ module ForwardTo
13
13
  # class MyArray
14
14
  # forward_to :@implementation, :empty?, :size, :[]
15
15
  #
16
- # def initialize()
17
- # @implementation = []
16
+ # def initialize(a = [])
17
+ # @implementation = a
18
18
  # end
19
19
  # end
20
20
  #
@@ -24,8 +24,7 @@ module ForwardTo
24
24
  # a[0] = 1
25
25
  # a[0] # -> 1
26
26
  #
27
- # The target of #forward_to can be a method or a member (@variable) but has
28
- # to be a symbol
27
+ # The target of #forward_to can be an attribute or a member variable
29
28
  #
30
29
  def forward_to(target, *methods)
31
30
  for method in Array(methods).flatten
@@ -39,5 +38,27 @@ module ForwardTo
39
38
  end
40
39
  end
41
40
  end
41
+
42
+ # List #forward_to but also an attr reader method for the member object:
43
+ #
44
+ # include ForwardTo
45
+ #
46
+ # class MyArray
47
+ # attr_forward :implementation, :empty?, :size, :[]
48
+ #
49
+ # def initialize(a = [])
50
+ # @implementation = a
51
+ # end
52
+ # end
53
+ #
54
+ # a = MyArray.new([1, 2, 3])
55
+ # a.implementation # -> [1, 2, 3]
56
+ #
57
+ # The target of #attr_reader should be an attribute
58
+ #
59
+ def attr_forward(target, *methods)
60
+ class_eval("attr_reader :#{target}")
61
+ forward_to(target, *methods)
62
+ end
42
63
  end
43
64
 
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: forward_to
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Claus Rasmussen
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2022-09-03 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies: []
13
12
  description: Simple forwarding of methods
14
13
  email:
@@ -32,7 +31,6 @@ licenses: []
32
31
  metadata:
33
32
  homepage_uri: https://github.com/clrgit/forward_to
34
33
  source_code_uri: https://github.com/clrgit/forward_to.git
35
- post_install_message:
36
34
  rdoc_options: []
37
35
  require_paths:
38
36
  - lib
@@ -47,8 +45,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
47
45
  - !ruby/object:Gem::Version
48
46
  version: '0'
49
47
  requirements: []
50
- rubygems_version: 3.3.18
51
- signing_key:
48
+ rubygems_version: 3.6.9
52
49
  specification_version: 4
53
50
  summary: Simple forwarding of methods
54
51
  test_files: []