multi_delegator 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/multi_delegator.rb +23 -0
  3. metadata +45 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ec3a4967b5836bd4a710c14fe16ab9542f824654
4
+ data.tar.gz: d8141adb864c46486adb281dbd01199c451f065c
5
+ SHA512:
6
+ metadata.gz: 6ea9dc9169afbf68b3ddca631eb171f343f2f21f975d89865c1331084c5a5c397caac5229844076128fde7a813ae90f0ce5a578253866afd68b68fe5107d8f11
7
+ data.tar.gz: 1e842548d0107b07f9d24ac9da602d38cfcb8de7c8132d67c4a0d5546d35c0b99b0d0689b86a0e915dcab363d7e6ec31a1f9f7fc0ddb61d577834ca006192d7d
@@ -0,0 +1,23 @@
1
+ class MultiDelegator
2
+ VERSION = '0.0.2'
3
+
4
+ def initialize(*delegatees)
5
+ @delegatees = delegatees
6
+ end
7
+
8
+ private
9
+
10
+ def method_missing(meth, *a, &b)
11
+ super unless self.respond_to?(meth)
12
+ @delegatees.map do |delegatee|
13
+ delegatee.send(meth, *a, &b)
14
+ end
15
+ end
16
+
17
+ def respond_to_missing?(meth, incl_private=false)
18
+ @delegatees.all? do |delegatee|
19
+ delegatee.respond_to?(meth, incl_private)
20
+ end || super
21
+ end
22
+
23
+ end
metadata ADDED
@@ -0,0 +1,45 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: multi_delegator
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Gabe Smith
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-03-27 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Delegate method calls to multiple objects
14
+ email:
15
+ - sgt.floydpepper@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/multi_delegator.rb
21
+ homepage: https://github.com/sgtFloyd/multi_delegator
22
+ licenses:
23
+ - MIT
24
+ metadata: {}
25
+ post_install_message:
26
+ rdoc_options: []
27
+ require_paths:
28
+ - lib
29
+ required_ruby_version: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ required_rubygems_version: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ requirements: []
40
+ rubyforge_project:
41
+ rubygems_version: 2.2.2
42
+ signing_key:
43
+ specification_version: 4
44
+ summary: Delegate method calls to multiple objects
45
+ test_files: []