opto 1.8.2 → 1.8.3
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/opto/option.rb +2 -4
- data/lib/opto/resolver.rb +22 -0
- data/lib/opto/resolvers/condition.rb +4 -0
- data/lib/opto/resolvers/evaluate.rb +4 -0
- data/lib/opto/resolvers/interpolate.rb +4 -0
- data/lib/opto/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2d154fe92a61aa8299e7275cb82e22e659becbae
|
4
|
+
data.tar.gz: 572aff6816d0aaf364482f0543c6a68a30a5a981
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ef4277e6893c6cc03226c982821c98079eb8154562f59405d7f0493b5a719dc1c105e8765791afa6f0e3c3bb881f399c5101003e09e200162341ad8b6f0d4ef0
|
7
|
+
data.tar.gz: 5b6bb2f4d14ade307209de3a83e2e97f45ab4cfd3c9f904388f100ffcdde2d8b5d7f85fa8a25fe216321d0971495db0451225d599b72fdc6828e91ef1c307a47
|
data/lib/opto/option.rb
CHANGED
@@ -199,13 +199,11 @@ module Opto
|
|
199
199
|
def resolve
|
200
200
|
resolvers.each do |resolver|
|
201
201
|
begin
|
202
|
-
|
203
|
-
result = resolver.resolve
|
204
|
-
resolver.respond_to?(:after) && resolver.after(self)
|
202
|
+
result = resolver.try_resolve
|
205
203
|
rescue StandardError => ex
|
206
204
|
raise ex, "Resolver '#{resolver.origin}' for '#{name}' : #{ex.message}"
|
207
205
|
end
|
208
|
-
|
206
|
+
unless result.nil?
|
209
207
|
@origin = resolver.origin
|
210
208
|
return result
|
211
209
|
end
|
data/lib/opto/resolver.rb
CHANGED
@@ -43,6 +43,28 @@ module Opto
|
|
43
43
|
def initialize(hint = nil, option = nil)
|
44
44
|
@hint = hint
|
45
45
|
@option = option
|
46
|
+
@tried = false
|
47
|
+
end
|
48
|
+
|
49
|
+
def tried?
|
50
|
+
!!@tried
|
51
|
+
end
|
52
|
+
|
53
|
+
def set_tried
|
54
|
+
@tried = true
|
55
|
+
end
|
56
|
+
|
57
|
+
def reset_tried
|
58
|
+
@tried = false
|
59
|
+
end
|
60
|
+
|
61
|
+
def try_resolve
|
62
|
+
return nil if tried?
|
63
|
+
set_tried
|
64
|
+
self.respond_to?(:before) && self.before
|
65
|
+
result = resolve
|
66
|
+
self.respond_to?(:after) && self.after
|
67
|
+
result
|
46
68
|
end
|
47
69
|
|
48
70
|
# This is a "base" class, you're supposed to inherit from this in your resolver and define a #resolve method.
|
data/lib/opto/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opto
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.8.
|
4
|
+
version: 1.8.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kimmo Lehto
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-02-
|
11
|
+
date: 2017-02-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|