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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0ced8ed5601015e9d1aa5f72bfe3e4703dd4c41b
4
- data.tar.gz: 83c8cbafafd64dfa6d4a5edcafcbda8b29bcfd7e
3
+ metadata.gz: fa67c0939cdf123932cc4357f1cdb143559287a7
4
+ data.tar.gz: d31b064fcc971a2162bd995555d38971c29bf8d7
5
5
  SHA512:
6
- metadata.gz: b16413214ce7dbb0d3656c6ccf2a90a2de98448a8dc750fdbef8971b6d9149fac6661a34099a990b15f21f1d5dc18c75589a31bd9e9a9d504c08cde91f38c0f4
7
- data.tar.gz: 092546d340413aa0084e112798413d381398b1f873ec150116b39ea7b8111372b8feab1e161b690e10cb7a644ec26ba1b78fea5c0ec733ff39e658deb8267a16
6
+ metadata.gz: cc793326fe14ff8c7fe62a5d46c9912a3175773702c44de92dda5e1bff5f30913ff56e646852523995874f1cf281018097bd3181da6ce292058c59f24ce29d73
7
+ data.tar.gz: bcfbc983fa5c1fdfd8eba166baaf47f4239707358eed3527ce7d2eee44617c6b2853a13b8c790c0c37a0ba6429cbc3ba0177c5b9ccf66f289acc2dff7fbf81f4
@@ -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
- fail NotImplementedError unless value;
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
@@ -2,5 +2,5 @@
2
2
  module Hexx
3
3
 
4
4
  # Current release.
5
- VERSION = "5.3.0"
5
+ VERSION = "5.4.0"
6
6
  end
@@ -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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hexx
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.3.0
4
+ version: 5.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kozin