hexx 5.3.0 → 5.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/hexx/dependencies.rb +13 -6
- data/lib/hexx/version.rb +1 -1
- data/spec/hexx/dependencies_spec.rb +14 -0
- 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: fa67c0939cdf123932cc4357f1cdb143559287a7
|
4
|
+
data.tar.gz: d31b064fcc971a2162bd995555d38971c29bf8d7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cc793326fe14ff8c7fe62a5d46c9912a3175773702c44de92dda5e1bff5f30913ff56e646852523995874f1cf281018097bd3181da6ce292058c59f24ce29d73
|
7
|
+
data.tar.gz: bcfbc983fa5c1fdfd8eba166baaf47f4239707358eed3527ce7d2eee44617c6b2853a13b8c790c0c37a0ba6429cbc3ba0177c5b9ccf66f289acc2dff7fbf81f4
|
data/lib/hexx/dependencies.rb
CHANGED
@@ -87,11 +87,11 @@ module Hexx
|
|
87
87
|
# end
|
88
88
|
#
|
89
89
|
# @param [Array<String, Symbol>] names The list of names for dependencies.
|
90
|
-
def depends_on(*names)
|
90
|
+
def depends_on(*names, default: nil)
|
91
91
|
names.flatten.each do |name|
|
92
92
|
DependencyName.new(name).validate
|
93
93
|
add_dependency_setter name
|
94
|
-
add_dependency_getter name
|
94
|
+
add_dependency_getter name, default
|
95
95
|
end
|
96
96
|
end
|
97
97
|
|
@@ -163,13 +163,20 @@ module Hexx
|
|
163
163
|
end"
|
164
164
|
end
|
165
165
|
|
166
|
-
def add_dependency_getter(name)
|
166
|
+
def add_dependency_getter(name, default)
|
167
167
|
instance_eval "
|
168
168
|
def #{ name };
|
169
|
-
value = @#{ name };
|
170
|
-
|
171
|
-
value.constantize;
|
169
|
+
value = @#{ default_name name, default };
|
170
|
+
constantize(value);
|
172
171
|
end"
|
173
172
|
end
|
173
|
+
|
174
|
+
def constantize(value)
|
175
|
+
value.is_a?(Module) ? value : Kernel.const_get(value.to_s)
|
176
|
+
end
|
177
|
+
|
178
|
+
def default_name(name, default)
|
179
|
+
[name, default].compact.map(&:to_s).join " || "
|
180
|
+
end
|
174
181
|
end
|
175
182
|
end
|
data/lib/hexx/version.rb
CHANGED
@@ -40,6 +40,11 @@ module Hexx
|
|
40
40
|
.not_to raise_error
|
41
41
|
end
|
42
42
|
|
43
|
+
it "accepts default option" do
|
44
|
+
expect { described_module.depends_on :item, default: Hexx::Service }
|
45
|
+
.not_to raise_error
|
46
|
+
end
|
47
|
+
|
43
48
|
it "fails when wrong object given" do
|
44
49
|
expect { described_module.depends_on 1 }.to raise_error TypeError
|
45
50
|
end
|
@@ -87,6 +92,15 @@ module Hexx
|
|
87
92
|
expect { described_module.item = "" }.to raise_error ArgumentError
|
88
93
|
end
|
89
94
|
end
|
95
|
+
|
96
|
+
context ":item, default: Hexx::Service" do
|
97
|
+
|
98
|
+
before { described_module.depends_on :item, default: "Hexx::Service" }
|
99
|
+
|
100
|
+
it "sets default value for the item" do
|
101
|
+
expect(described_module.item).to eq Hexx::Service
|
102
|
+
end
|
103
|
+
end
|
90
104
|
end
|
91
105
|
end
|
92
106
|
end
|