right_support 2.6.7 → 2.6.8
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/right_support/log/multiplexer.rb +21 -6
- data/right_support.gemspec +2 -2
- metadata +4 -4
@@ -26,8 +26,7 @@ module RightSupport::Log
|
|
26
26
|
# respond to all of the messages you care to send; this class will perform no error checking
|
27
27
|
# for you!
|
28
28
|
class Multiplexer
|
29
|
-
|
30
|
-
# Access to underlying list of multiplexed objects
|
29
|
+
# Access to underlying list of multiplexed objects.
|
31
30
|
attr_reader :targets
|
32
31
|
|
33
32
|
# Prevent Kernel#warn from being called; #warn should be multiplexed to targets.
|
@@ -41,7 +40,7 @@ module RightSupport::Log
|
|
41
40
|
@targets = targets || []
|
42
41
|
end
|
43
42
|
|
44
|
-
# Add object to list of multiplexed targets
|
43
|
+
# Add object to list of multiplexed targets.
|
45
44
|
#
|
46
45
|
# === Parameters
|
47
46
|
# target(Object):: Add target to list of multiplexed targets
|
@@ -53,7 +52,7 @@ module RightSupport::Log
|
|
53
52
|
self
|
54
53
|
end
|
55
54
|
|
56
|
-
# Remove object from list of multiplexed targets
|
55
|
+
# Remove object from list of multiplexed targets.
|
57
56
|
#
|
58
57
|
# === Parameters
|
59
58
|
# target(Object):: Remove target from list of multiplexed targets
|
@@ -65,7 +64,7 @@ module RightSupport::Log
|
|
65
64
|
self
|
66
65
|
end
|
67
66
|
|
68
|
-
# Access target at given index
|
67
|
+
# Access target at given index.
|
69
68
|
#
|
70
69
|
# === Parameters
|
71
70
|
# index(Integer):: Target index
|
@@ -76,7 +75,7 @@ module RightSupport::Log
|
|
76
75
|
target = @targets[index]
|
77
76
|
end
|
78
77
|
|
79
|
-
# Forward any method invocation to targets
|
78
|
+
# Forward any method invocation to targets.
|
80
79
|
#
|
81
80
|
# === Parameters
|
82
81
|
# m(Symbol):: Method that should be multiplexed
|
@@ -89,5 +88,21 @@ module RightSupport::Log
|
|
89
88
|
res[0]
|
90
89
|
end
|
91
90
|
|
91
|
+
# Adhere to method_missing/respond_to metacontract: claim we
|
92
|
+
# respond to the message if any of our targets does.
|
93
|
+
#
|
94
|
+
# Dispatch will still fail if not ALL of the targets respond
|
95
|
+
# to a given method, hence the caveat that the user of this class
|
96
|
+
# needs to ensure his targets are duck-type compatible with the
|
97
|
+
# way they'll be used.
|
98
|
+
#
|
99
|
+
# === Parameters
|
100
|
+
# m(Symbol):: Name of method
|
101
|
+
#
|
102
|
+
# === Return
|
103
|
+
# respond_to(true|false):: true if this object or its targets respond to m, false otherwise
|
104
|
+
def respond_to?(m)
|
105
|
+
super(m) || @targets.any? { |t| t.respond_to?(m) }
|
106
|
+
end
|
92
107
|
end
|
93
108
|
end
|
data/right_support.gemspec
CHANGED
@@ -7,8 +7,8 @@ spec = Gem::Specification.new do |s|
|
|
7
7
|
s.required_ruby_version = Gem::Requirement.new(">= 1.8.7")
|
8
8
|
|
9
9
|
s.name = 'right_support'
|
10
|
-
s.version = '2.6.
|
11
|
-
s.date = '2012-12-
|
10
|
+
s.version = '2.6.8'
|
11
|
+
s.date = '2012-12-14'
|
12
12
|
|
13
13
|
s.authors = ['Tony Spataro', 'Sergey Sergyenko', 'Ryan Williamson', 'Lee Kirchhoff', 'Sergey Enin', 'Alexey Karpik', 'Scott Messier']
|
14
14
|
s.email = 'support@rightscale.com'
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: right_support
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 7
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 2
|
8
8
|
- 6
|
9
|
-
-
|
10
|
-
version: 2.6.
|
9
|
+
- 8
|
10
|
+
version: 2.6.8
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Tony Spataro
|
@@ -21,7 +21,7 @@ autorequire:
|
|
21
21
|
bindir: bin
|
22
22
|
cert_chain: []
|
23
23
|
|
24
|
-
date: 2012-12-
|
24
|
+
date: 2012-12-14 00:00:00 -08:00
|
25
25
|
default_executable:
|
26
26
|
dependencies: []
|
27
27
|
|