subserver 0.2.1 → 0.2.2
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 +4 -4
- data/lib/subserver/subscriber.rb +59 -3
- data/lib/subserver/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4295d899353208c83176c64e8357e6d6d1618a55
|
4
|
+
data.tar.gz: 95e1bb5f162351711be555a2ab70ee5c7a7b7bb2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3ca18b4e225c79fd7b2f0d490697af02678bbe2ca0ae4efe081655d2f6144c442b9fbd760ff2b0756e738d52076b6af97ee0a7d50a9eeafeffe6080533449a30
|
7
|
+
data.tar.gz: bfd2a798802e7810e1e82c188493224398e7109524a8d8decac574c7e12811b5fa6cf45378d4c0cfe48a6c83fa9046e625f35644f8f8edcf0c785cd3f62befcb
|
data/lib/subserver/subscriber.rb
CHANGED
@@ -3,6 +3,7 @@ module Subserver
|
|
3
3
|
|
4
4
|
def self.included(base)
|
5
5
|
base.extend(ClassMethods)
|
6
|
+
base.subserver_class_attribute :subserver_options_hash
|
6
7
|
end
|
7
8
|
|
8
9
|
def logger
|
@@ -10,15 +11,70 @@ module Subserver
|
|
10
11
|
end
|
11
12
|
|
12
13
|
module ClassMethods
|
13
|
-
@subserver_options
|
14
14
|
|
15
15
|
def subserver_options(opts={})
|
16
|
-
|
16
|
+
self.subserver_options_hash = get_subserver_options.merge(opts)
|
17
17
|
end
|
18
18
|
|
19
19
|
def get_subserver_options
|
20
|
-
|
20
|
+
self.subserver_options_hash ||= Subserver.default_subscriber_options
|
21
21
|
end
|
22
|
+
|
23
|
+
def subserver_class_attribute(*attrs)
|
24
|
+
instance_reader = true
|
25
|
+
instance_writer = true
|
26
|
+
|
27
|
+
attrs.each do |name|
|
28
|
+
singleton_class.instance_eval do
|
29
|
+
undef_method(name) if method_defined?(name) || private_method_defined?(name)
|
30
|
+
end
|
31
|
+
define_singleton_method(name) { nil }
|
32
|
+
|
33
|
+
ivar = "@#{name}"
|
34
|
+
|
35
|
+
singleton_class.instance_eval do
|
36
|
+
m = "#{name}="
|
37
|
+
undef_method(m) if method_defined?(m) || private_method_defined?(m)
|
38
|
+
end
|
39
|
+
define_singleton_method("#{name}=") do |val|
|
40
|
+
singleton_class.class_eval do
|
41
|
+
undef_method(name) if method_defined?(name) || private_method_defined?(name)
|
42
|
+
define_method(name) { val }
|
43
|
+
end
|
44
|
+
|
45
|
+
if singleton_class?
|
46
|
+
class_eval do
|
47
|
+
undef_method(name) if method_defined?(name) || private_method_defined?(name)
|
48
|
+
define_method(name) do
|
49
|
+
if instance_variable_defined? ivar
|
50
|
+
instance_variable_get ivar
|
51
|
+
else
|
52
|
+
singleton_class.send name
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
val
|
58
|
+
end
|
59
|
+
|
60
|
+
if instance_reader
|
61
|
+
undef_method(name) if method_defined?(name) || private_method_defined?(name)
|
62
|
+
define_method(name) do
|
63
|
+
if instance_variable_defined?(ivar)
|
64
|
+
instance_variable_get ivar
|
65
|
+
else
|
66
|
+
self.class.public_send name
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
if instance_writer
|
72
|
+
m = "#{name}="
|
73
|
+
undef_method(m) if method_defined?(m) || private_method_defined?(m)
|
74
|
+
attr_writer name
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
22
78
|
end
|
23
79
|
|
24
80
|
end
|
data/lib/subserver/version.rb
CHANGED