ruby-conf 2.6.2 → 2.6.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.
- data/VERSION +1 -1
- data/lib/ruby-conf.rb +15 -3
- data/ruby-conf.gemspec +1 -1
- data/spec/lib/ruby-conf_spec.rb +25 -7
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.6.
|
1
|
+
2.6.3
|
data/lib/ruby-conf.rb
CHANGED
@@ -89,10 +89,22 @@ module RubyConf
|
|
89
89
|
end
|
90
90
|
|
91
91
|
def [](name, *args)
|
92
|
-
|
92
|
+
name = name.to_sym
|
93
|
+
value = @__rc_attributes[name]
|
93
94
|
if value.is_a?(Proc)
|
94
95
|
args += [nil] * (value.arity.abs - args.size) if value.arity.abs > args.size
|
95
|
-
|
96
|
+
@@stack ||= []
|
97
|
+
if @@stack.include?(name)
|
98
|
+
RubyConf.err("[ruby-conf] Detected recursive proc: #{name}")
|
99
|
+
"[RECURSIVE]"
|
100
|
+
else
|
101
|
+
@@stack << name
|
102
|
+
begin
|
103
|
+
__rc_root.instance_exec(*args, &value)
|
104
|
+
ensure
|
105
|
+
@@stack.delete(name)
|
106
|
+
end
|
107
|
+
end
|
96
108
|
else
|
97
109
|
value
|
98
110
|
end
|
@@ -217,7 +229,7 @@ module RubyConf
|
|
217
229
|
"[UNRESOLVED:#{e}]"
|
218
230
|
end
|
219
231
|
str += "#{key}: "
|
220
|
-
str += value.is_a?(Config) ? (value == self ? "[SELF]" : "{ #{value.__rc_build_inspect} }") : value.inspect
|
232
|
+
str += value.is_a?(RubyConf::Config) ? (value == self ? "[SELF]" : "{ #{value.__rc_build_inspect} }") : value.inspect
|
221
233
|
str
|
222
234
|
}.join(", ")
|
223
235
|
istr
|
data/ruby-conf.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "ruby-conf"
|
8
|
-
s.version = "2.6.
|
8
|
+
s.version = "2.6.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Curtis Schofield & Hollin Wilkins & Mason"]
|
data/spec/lib/ruby-conf_spec.rb
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
+
module RubyConf
|
4
|
+
def self.puts(*args) end
|
5
|
+
end
|
6
|
+
|
3
7
|
describe RubyConf do
|
4
8
|
|
5
9
|
before do
|
@@ -57,8 +61,21 @@ var_args: var|[nil]
|
|
57
61
|
end
|
58
62
|
end
|
59
63
|
end
|
64
|
+
other do
|
65
|
+
val "val"
|
66
|
+
inner do
|
67
|
+
value "correct"
|
68
|
+
end
|
69
|
+
self_refa ->{ self.inner.value }
|
70
|
+
self_refb ->{ self.val }
|
71
|
+
end
|
60
72
|
end
|
61
73
|
|
74
|
+
other = RootTest.other.detach
|
75
|
+
other.inner.value.should == "correct"
|
76
|
+
other.self_refa.should == "correct"
|
77
|
+
other.self_refb.should == "val"
|
78
|
+
|
62
79
|
RootTest.outer.middle.inner.val.should == "value"
|
63
80
|
|
64
81
|
RootTest.__rc_parent.should be_nil
|
@@ -110,10 +127,12 @@ var_args: var|[nil]
|
|
110
127
|
it "does it's best to print procs but will fail gracefully" do
|
111
128
|
RubyConf.define :ProcStrings do
|
112
129
|
valid ->{ "valid return" }
|
113
|
-
valid_args ->(a, b, c){ "all empty > a:#{a} b:#{b} c:#{c}" }
|
130
|
+
valid_args ->(a, b, c){ "all empty > a:#{a} b:#{b} c:#{c} <" }
|
114
131
|
broken ->{ raise "oops" }
|
115
|
-
broken_args ->(a, b, c){ raise "oops: a:#{a} b:#{b} c:#{c}" }
|
132
|
+
broken_args ->(a, b, c){ raise "oops: a:#{a} b:#{b} c:#{c} <" }
|
116
133
|
self_referential ->{self}
|
134
|
+
recursive_to_s ->{self.to_s.split("\n").join(" ")}
|
135
|
+
recursive_inspect ->{self.inspect}
|
117
136
|
end
|
118
137
|
|
119
138
|
tos = <<-STR
|
@@ -121,14 +140,16 @@ var_args: var|[nil]
|
|
121
140
|
|
122
141
|
broken: [UNRESOLVED]
|
123
142
|
broken_args: [UNRESOLVED]
|
143
|
+
recursive_inspect: [ProcStrings] broken: "[UNRESOLVED:oops]", broken_args: "[UNRESOLVED:oops: a: b: c: <]", recursive_inspect: "[RECURSIVE]", recursive_to_s: "[ProcStrings] broken: [UNRESOLVED] broken_args: [UNRESOLVED] recursive_inspect: [RECURSIVE] recursive_to_s: [RECURSIVE] self_referential: [SELF] valid: valid return valid_args: all empty > a: b: c: <", self_referential: [SELF], valid: "valid return", valid_args: "all empty > a: b: c: <"
|
144
|
+
recursive_to_s: [ProcStrings] broken: [UNRESOLVED] broken_args: [UNRESOLVED] recursive_inspect: [ProcStrings] broken: "[UNRESOLVED:oops]", broken_args: "[UNRESOLVED:oops: a: b: c: <]", recursive_inspect: "[RECURSIVE]", recursive_to_s: "[RECURSIVE]", self_referential: [SELF], valid: "valid return", valid_args: "all empty > a: b: c: <" recursive_to_s: [RECURSIVE] self_referential: [SELF] valid: valid return valid_args: all empty > a: b: c: <
|
124
145
|
self_referential: [SELF]
|
125
146
|
valid: valid return
|
126
|
-
valid_args: all empty > a: b: c:
|
147
|
+
valid_args: all empty > a: b: c: <
|
127
148
|
STR
|
128
149
|
|
129
150
|
ProcStrings.to_s.should == tos
|
130
151
|
ProcStrings.to_str.should == tos
|
131
|
-
ProcStrings.inspect.should ==
|
152
|
+
ProcStrings.inspect.should == "[ProcStrings] broken: \"[UNRESOLVED:oops]\", broken_args: \"[UNRESOLVED:oops: a: b: c: <]\", recursive_inspect: \"[ProcStrings] broken: \\\"[UNRESOLVED:oops]\\\", broken_args: \\\"[UNRESOLVED:oops: a: b: c: <]\\\", recursive_inspect: \\\"[RECURSIVE]\\\", recursive_to_s: \\\"[ProcStrings] broken: [UNRESOLVED] broken_args: [UNRESOLVED] recursive_inspect: [RECURSIVE] recursive_to_s: [RECURSIVE] self_referential: [SELF] valid: valid return valid_args: all empty > a: b: c: <\\\", self_referential: [SELF], valid: \\\"valid return\\\", valid_args: \\\"all empty > a: b: c: <\\\"\", recursive_to_s: \"[ProcStrings] broken: [UNRESOLVED] broken_args: [UNRESOLVED] recursive_inspect: [ProcStrings] broken: \\\"[UNRESOLVED:oops]\\\", broken_args: \\\"[UNRESOLVED:oops: a: b: c: <]\\\", recursive_inspect: \\\"[RECURSIVE]\\\", recursive_to_s: \\\"[RECURSIVE]\\\", self_referential: [SELF], valid: \\\"valid return\\\", valid_args: \\\"all empty > a: b: c: <\\\" recursive_to_s: [RECURSIVE] self_referential: [SELF] valid: valid return valid_args: all empty > a: b: c: <\", self_referential: [SELF], valid: \"valid return\", valid_args: \"all empty > a: b: c: <\""
|
132
153
|
end
|
133
154
|
|
134
155
|
it "prints out the config in a human readable way" do
|
@@ -409,9 +430,6 @@ TEXT
|
|
409
430
|
end
|
410
431
|
|
411
432
|
it "will autoload the first ruby-conf that it can find if none is provided" do
|
412
|
-
module RubyConf
|
413
|
-
def self.puts(*args) end
|
414
|
-
end
|
415
433
|
|
416
434
|
dir = Dir["./**/test_conf.rb.tmpl"].first[/^(.*?)\/test_conf.rb.tmpl$/, 1]
|
417
435
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-conf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.6.
|
4
|
+
version: 2.6.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -115,7 +115,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
115
115
|
version: '0'
|
116
116
|
segments:
|
117
117
|
- 0
|
118
|
-
hash:
|
118
|
+
hash: -229567439722494491
|
119
119
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
120
120
|
none: false
|
121
121
|
requirements:
|