ruby-conf 2.3.0 → 2.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.
- data/.rvmrc +1 -1
- data/Gemfile.lock +2 -2
- data/VERSION +1 -1
- data/lib/ruby-conf.rb +23 -2
- data/ruby-conf.gemspec +3 -3
- data/spec/lib/ruby-conf_spec.rb +54 -1
- metadata +4 -4
data/.rvmrc
CHANGED
@@ -1 +1 @@
|
|
1
|
-
rvm use ruby-1.9.3-
|
1
|
+
rvm use ruby-1.9.3-p327@rubyconf --create
|
data/Gemfile.lock
CHANGED
@@ -8,7 +8,7 @@ GEM
|
|
8
8
|
git (>= 1.2.5)
|
9
9
|
rake
|
10
10
|
rdoc
|
11
|
-
json (1.7.
|
11
|
+
json (1.7.6)
|
12
12
|
rake (10.0.3)
|
13
13
|
rdoc (3.12)
|
14
14
|
json (~> 1.4)
|
@@ -20,7 +20,7 @@ GEM
|
|
20
20
|
rspec-core (2.12.2)
|
21
21
|
rspec-expectations (2.12.1)
|
22
22
|
diff-lcs (~> 1.1.3)
|
23
|
-
rspec-mocks (2.12.
|
23
|
+
rspec-mocks (2.12.1)
|
24
24
|
yard (0.8.3)
|
25
25
|
|
26
26
|
PLATFORMS
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.4.0
|
data/lib/ruby-conf.rb
CHANGED
@@ -1,6 +1,9 @@
|
|
1
1
|
#
|
2
2
|
#
|
3
3
|
# @author Hollin Wilkins & Curtis Schofield & Mason Bo-bay-son
|
4
|
+
|
5
|
+
$RUBY_CONF = nil
|
6
|
+
|
4
7
|
module Magic
|
5
8
|
attr_accessor :__rc_chain
|
6
9
|
def __rc_gather() "#{to_s}#{__rc_chain.nil? ? "" : " #{__rc_chain.__rc_gather}"}" end
|
@@ -131,7 +134,7 @@ class RubyConf < BasicObject
|
|
131
134
|
|
132
135
|
def __rc_build_string(depth = 0)
|
133
136
|
str = ""
|
134
|
-
str += "[
|
137
|
+
str += "[#{@__rc_name || "CONFIG"}]\n" unless @__rc_parent
|
135
138
|
str += "\n"
|
136
139
|
@__rc_attributes.keys.map{|k| k.to_s }.sort.each do |key|
|
137
140
|
value = self[key]
|
@@ -145,7 +148,7 @@ class RubyConf < BasicObject
|
|
145
148
|
def to_s() __rc_build_string end
|
146
149
|
def to_str() to_s end
|
147
150
|
|
148
|
-
def __rc_build_inspect() "#{"[
|
151
|
+
def __rc_build_inspect() "#{"[#{@__rc_name || "CONFIG"}] " unless @__rc_parent}#{@__rc_attributes.keys.map {|k| k.to_s }.sort.map { |key| "#{key}: #{self[key].is_a?(Config) ? "{ #{self[key].__rc_build_inspect} }" : self[key].inspect}" }.join(", ")}" end
|
149
152
|
def inspect() __rc_build_inspect end
|
150
153
|
end
|
151
154
|
|
@@ -158,6 +161,16 @@ class RubyConf < BasicObject
|
|
158
161
|
const = const.to_sym
|
159
162
|
::Object.const_set(const, config) if !::Object.const_defined?(const) || ::Object.const_get(const).is_a?(Config)
|
160
163
|
end
|
164
|
+
|
165
|
+
if $RUBY_CONF.nil? && (name.nil? || name.to_s =~ /^(?:Rails)?Conf/)
|
166
|
+
$RUBY_CONF = if ::Object.const_defined?(:Rails)
|
167
|
+
cfg = config[:"#{::Rails.env}"] || config[:"#{::Rails.env}_conf"] || config[:"#{::Rails.env}_config"]
|
168
|
+
cfg && cfg.detach || config
|
169
|
+
else
|
170
|
+
config
|
171
|
+
end
|
172
|
+
end
|
173
|
+
|
161
174
|
config
|
162
175
|
end
|
163
176
|
|
@@ -166,4 +179,12 @@ class RubyConf < BasicObject
|
|
166
179
|
def self.method_missing(name, *args) @@__rc_configs[name.to_sym] end
|
167
180
|
|
168
181
|
def self.respond_to?(name) @@__rc_configs.key?(name.to_sym) end
|
182
|
+
|
183
|
+
def self.clear()
|
184
|
+
$RUBY_CONF = nil
|
185
|
+
@@__rc_configs.keys.each do |config|
|
186
|
+
remove_const(config.to_sym) if config.to_s[/^[A-Z]/] && const_defined?(config.to_sym)
|
187
|
+
end
|
188
|
+
@@__rc_configs.clear
|
189
|
+
end
|
169
190
|
end
|
data/ruby-conf.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "ruby-conf"
|
8
|
-
s.version = "2.
|
8
|
+
s.version = "2.4.0"
|
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"]
|
12
|
-
s.date = "
|
12
|
+
s.date = "2013-01-14"
|
13
13
|
s.description = "rubyconf is a ruby configuration dsl that aims to make it simple to write and read configurations for ruby apps without a yaml or xml file"
|
14
14
|
s.email = "blazingpair@blazingcloud.net"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -34,7 +34,7 @@ Gem::Specification.new do |s|
|
|
34
34
|
s.homepage = "http://github.com/blazingpair/ruby-conf"
|
35
35
|
s.licenses = ["MIT"]
|
36
36
|
s.require_paths = ["lib"]
|
37
|
-
s.rubygems_version = "1.8.
|
37
|
+
s.rubygems_version = "1.8.23"
|
38
38
|
s.summary = "dsl (domain specific language) for config files in ruby"
|
39
39
|
|
40
40
|
if s.respond_to? :specification_version then
|
data/spec/lib/ruby-conf_spec.rb
CHANGED
@@ -2,6 +2,11 @@ require 'spec_helper'
|
|
2
2
|
require 'ruby-conf'
|
3
3
|
|
4
4
|
describe RubyConf do
|
5
|
+
|
6
|
+
before do
|
7
|
+
RubyConf.clear
|
8
|
+
end
|
9
|
+
|
5
10
|
subject { RubyConf }
|
6
11
|
|
7
12
|
describe "lambda arguments" do
|
@@ -28,7 +33,6 @@ describe RubyConf do
|
|
28
33
|
var_args ->(*args) { "var|#{args.inspect}" }
|
29
34
|
multi_args ->(one,two) { "multi|#{one.inspect}|#{two.inspect}" }
|
30
35
|
multi_var_args ->(one,*two,three) { "multivar|#{one.inspect}|#{two.inspect}|#{three.inspect}" }
|
31
|
-
|
32
36
|
end
|
33
37
|
|
34
38
|
LambdaToString.to_s.should == "[LambdaToString]\n\nmulti_args: multi|nil|nil\n\nmulti_var_args: multivar|nil|[nil]|nil\n\nno_args: none\n\none_arg: one|nil\n\nvar_args: var|[nil]\n\n"
|
@@ -356,6 +360,55 @@ TEXT
|
|
356
360
|
end.should raise_error NameError
|
357
361
|
|
358
362
|
end
|
363
|
+
end
|
364
|
+
end
|
365
|
+
|
366
|
+
describe "Automatically sets the RAILS_CONF variable" do
|
367
|
+
|
368
|
+
it "sets the first unnamed config as default" do
|
369
|
+
$RUBY_CONF.should be_nil
|
370
|
+
first = RubyConf.define { ident "first" }
|
371
|
+
$RUBY_CONF.should_not be_nil
|
372
|
+
second = RubyConf.define { ident "second" }
|
373
|
+
$RUBY_CONF.should == first
|
374
|
+
$RUBY_CONF.ident.should == "first"
|
375
|
+
end
|
376
|
+
|
377
|
+
it "sets the proper config based on Rails environment and detaches, if it exists" do
|
378
|
+
module ::Rails
|
379
|
+
def self.env() "foo" end
|
380
|
+
end
|
381
|
+
::Object.const_defined?(:Rails).should be_true
|
382
|
+
|
383
|
+
$RUBY_CONF.should be_nil
|
384
|
+
RubyConf.define do
|
385
|
+
foo { ident "correct" }
|
386
|
+
bar { ident "wrong" }
|
387
|
+
end
|
388
|
+
$RUBY_CONF.ident.should == "correct"
|
389
|
+
|
390
|
+
RubyConf.clear
|
391
|
+
$RUBY_CONF.should be_nil
|
392
|
+
RubyConf.define do
|
393
|
+
foo_conf { ident "correct" }
|
394
|
+
bar_conf { ident "wrong" }
|
395
|
+
end
|
396
|
+
$RUBY_CONF.ident.should == "correct"
|
397
|
+
|
398
|
+
RubyConf.clear
|
399
|
+
$RUBY_CONF.should be_nil
|
400
|
+
RubyConf.define do
|
401
|
+
foo_config { ident "correct" }
|
402
|
+
bar_config { ident "wrong" }
|
403
|
+
end
|
404
|
+
$RUBY_CONF.ident.should == "correct"
|
405
|
+
|
406
|
+
RubyConf.clear
|
407
|
+
$RUBY_CONF.should be_nil
|
408
|
+
RubyConf.define do
|
409
|
+
ident "correct"
|
410
|
+
end
|
411
|
+
$RUBY_CONF.ident.should == "correct"
|
359
412
|
|
360
413
|
end
|
361
414
|
end
|
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.
|
4
|
+
version: 2.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-01-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
@@ -112,7 +112,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
112
112
|
version: '0'
|
113
113
|
segments:
|
114
114
|
- 0
|
115
|
-
hash:
|
115
|
+
hash: 121205113869847411
|
116
116
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
117
117
|
none: false
|
118
118
|
requirements:
|
@@ -121,7 +121,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
121
121
|
version: '0'
|
122
122
|
requirements: []
|
123
123
|
rubyforge_project:
|
124
|
-
rubygems_version: 1.8.
|
124
|
+
rubygems_version: 1.8.23
|
125
125
|
signing_key:
|
126
126
|
specification_version: 3
|
127
127
|
summary: dsl (domain specific language) for config files in ruby
|