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 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