hexx 5.3.0 → 5.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 +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
|