settingslogic 2.0.8 → 2.0.9
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/.gitignore +10 -0
- data/Gemfile +2 -13
- data/Gemfile.lock +15 -27
- data/README.rdoc +9 -19
- data/Rakefile +4 -23
- data/lib/settingslogic.rb +39 -23
- data/settingslogic.gemspec +16 -62
- data/spec/settings.yml +7 -1
- data/spec/settings_empty.rb +3 -0
- data/spec/settings_empty.yml +0 -0
- data/spec/settingslogic_spec.rb +46 -1
- data/spec/spec_helper.rb +1 -0
- metadata +26 -41
- data/CHANGELOG.rdoc +0 -27
- data/VERSION.yml +0 -5
- data/init.rb +0 -1
- data/rails/init.rb +0 -1
data/.gitignore
ADDED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,38 +1,26 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
settingslogic (2.0.9)
|
5
|
+
|
1
6
|
GEM
|
2
7
|
remote: http://rubygems.org/
|
3
8
|
specs:
|
4
|
-
columnize (0.3.6)
|
5
9
|
diff-lcs (1.1.3)
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
rcov (0.9.11)
|
16
|
-
rspec (2.8.0)
|
17
|
-
rspec-core (~> 2.8.0)
|
18
|
-
rspec-expectations (~> 2.8.0)
|
19
|
-
rspec-mocks (~> 2.8.0)
|
20
|
-
rspec-core (2.8.0)
|
21
|
-
rspec-expectations (2.8.0)
|
22
|
-
diff-lcs (~> 1.1.2)
|
23
|
-
rspec-mocks (2.8.0)
|
24
|
-
ruby-debug (0.10.4)
|
25
|
-
columnize (>= 0.1)
|
26
|
-
ruby-debug-base (~> 0.10.4.0)
|
27
|
-
ruby-debug-base (0.10.4)
|
28
|
-
linecache (>= 0.3)
|
10
|
+
rake (10.0.3)
|
11
|
+
rspec (2.12.0)
|
12
|
+
rspec-core (~> 2.12.0)
|
13
|
+
rspec-expectations (~> 2.12.0)
|
14
|
+
rspec-mocks (~> 2.12.0)
|
15
|
+
rspec-core (2.12.2)
|
16
|
+
rspec-expectations (2.12.1)
|
17
|
+
diff-lcs (~> 1.1.3)
|
18
|
+
rspec-mocks (2.12.1)
|
29
19
|
|
30
20
|
PLATFORMS
|
31
21
|
ruby
|
32
22
|
|
33
23
|
DEPENDENCIES
|
34
|
-
jeweler
|
35
24
|
rake
|
36
|
-
rcov
|
37
25
|
rspec
|
38
|
-
|
26
|
+
settingslogic!
|
data/README.rdoc
CHANGED
@@ -3,8 +3,6 @@
|
|
3
3
|
Settingslogic is a simple configuration / settings solution that uses an ERB enabled YAML file. It has been great for
|
4
4
|
our apps, maybe you will enjoy it too. Settingslogic works with Rails, Sinatra, or any Ruby project.
|
5
5
|
|
6
|
-
So here is my question to you.....is Settingslogic a great settings solution or the greatest?
|
7
|
-
|
8
6
|
== Helpful links
|
9
7
|
|
10
8
|
* <b>Documentation:</b> http://rdoc.info/projects/binarylogic/settingslogic
|
@@ -13,15 +11,7 @@ So here is my question to you.....is Settingslogic a great settings solution or
|
|
13
11
|
|
14
12
|
== Installation
|
15
13
|
|
16
|
-
|
17
|
-
|
18
|
-
sudo gem install settingslogic
|
19
|
-
|
20
|
-
Or as a Rails plugin:
|
21
|
-
|
22
|
-
script/plugin install git://github.com/binarylogic/settingslogic.git
|
23
|
-
|
24
|
-
Settingslogic does not have any dependencies on Rails. Installing as a gem is recommended.
|
14
|
+
gem install settingslogic
|
25
15
|
|
26
16
|
== Usage
|
27
17
|
|
@@ -54,7 +44,7 @@ Using a namespace allows us to change our configuration depending on our environ
|
|
54
44
|
saweet: nested settings
|
55
45
|
neat_setting: 24
|
56
46
|
awesome_setting: <%= "Did you know 5 + 5 = #{5 + 5}?" %>
|
57
|
-
|
47
|
+
|
58
48
|
development:
|
59
49
|
<<: *defaults
|
60
50
|
neat_setting: 800
|
@@ -65,7 +55,7 @@ Using a namespace allows us to change our configuration depending on our environ
|
|
65
55
|
production:
|
66
56
|
<<: *defaults
|
67
57
|
|
68
|
-
_Note_: Certain Ruby/Bundler versions include a version of the Psych YAML parser which incorrectly handles merges (the `<<` in the example above.)
|
58
|
+
_Note_: Certain Ruby/Bundler versions include a version of the Psych YAML parser which incorrectly handles merges (the `<<` in the example above.)
|
69
59
|
If your default settings seem to be overwriting your environment-specific settings, including the following lines in your config/boot.rb file may solve the problem:
|
70
60
|
|
71
61
|
require 'yaml'
|
@@ -78,17 +68,17 @@ If your default settings seem to be overwriting your environment-specific settin
|
|
78
68
|
|
79
69
|
>> Settings.cool
|
80
70
|
=> "#<Settingslogic::Settings ... >"
|
81
|
-
|
71
|
+
|
82
72
|
>> Settings.cool.saweet
|
83
73
|
=> "nested settings"
|
84
|
-
|
74
|
+
|
85
75
|
>> Settings.neat_setting
|
86
76
|
=> 800
|
87
|
-
|
77
|
+
|
88
78
|
>> Settings.awesome_setting
|
89
79
|
=> "Did you know 5 + 5 = 10?"
|
90
80
|
|
91
|
-
You can use these settings anywhere, for example in a model:
|
81
|
+
You can use these settings anywhere, for example in a model:
|
92
82
|
|
93
83
|
class Post < ActiveRecord::Base
|
94
84
|
self.per_page = Settings.pagination.posts_per_page
|
@@ -116,7 +106,7 @@ Modifying our model example:
|
|
116
106
|
class Post < ActiveRecord::Base
|
117
107
|
self.per_page = Settings.posts['per_page'] || Settings.pagination.per_page
|
118
108
|
end
|
119
|
-
|
109
|
+
|
120
110
|
This would allow you to specify a custom value for per_page just for posts, or
|
121
111
|
to fall back to your default value if not specified.
|
122
112
|
|
@@ -145,7 +135,7 @@ in the global Object namespace:
|
|
145
135
|
|
146
136
|
This can cause collisions with Settingslogic, since those methods are global. Luckily, the
|
147
137
|
solution is to just add a call to load! in your class:
|
148
|
-
|
138
|
+
|
149
139
|
class Settings < Settingslogic
|
150
140
|
source "#{Rails.root}/config/application.yml"
|
151
141
|
namespace Rails.env
|
data/Rakefile
CHANGED
@@ -1,26 +1,7 @@
|
|
1
|
-
require '
|
2
|
-
|
3
|
-
|
4
|
-
begin
|
5
|
-
require 'jeweler'
|
6
|
-
Jeweler::Tasks.new do |gem|
|
7
|
-
gem.name = "settingslogic"
|
8
|
-
gem.summary = "A simple and straightforward settings solution that uses an ERB enabled YAML file and a singleton design pattern."
|
9
|
-
gem.email = "bjohnson@binarylogic.com"
|
10
|
-
gem.homepage = "http://github.com/binarylogic/settingslogic"
|
11
|
-
gem.authors = ["Ben Johnson of Binary Logic"]
|
12
|
-
end
|
13
|
-
Jeweler::GemcutterTasks.new
|
14
|
-
rescue LoadError
|
15
|
-
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
16
|
-
end
|
1
|
+
require 'bundler'
|
2
|
+
Bundler::GemHelper.install_tasks
|
17
3
|
|
18
4
|
require 'rspec/core/rake_task'
|
19
|
-
RSpec::Core::RakeTask.new
|
20
|
-
|
21
|
-
RSpec::Core::RakeTask.new(:rcov) do |spec|
|
22
|
-
spec.pattern = 'spec/**/*_spec.rb'
|
23
|
-
spec.rcov = true
|
24
|
-
end
|
5
|
+
RSpec::Core::RakeTask.new
|
25
6
|
|
26
|
-
task :default => :spec
|
7
|
+
task :default => :spec
|
data/lib/settingslogic.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require "yaml"
|
2
2
|
require "erb"
|
3
|
+
require 'open-uri'
|
3
4
|
|
4
5
|
# A simple settings solution using a YAML file. See README for more information.
|
5
6
|
class Settingslogic < Hash
|
@@ -9,7 +10,7 @@ class Settingslogic < Hash
|
|
9
10
|
def name # :nodoc:
|
10
11
|
self.superclass != Hash && instance.key?("name") ? instance.name : super
|
11
12
|
end
|
12
|
-
|
13
|
+
|
13
14
|
# Enables Settings.get('nested.key.name') for dynamic access
|
14
15
|
def get(key)
|
15
16
|
parts = key.split('.')
|
@@ -21,27 +22,15 @@ class Settingslogic < Hash
|
|
21
22
|
end
|
22
23
|
|
23
24
|
def source(value = nil)
|
24
|
-
|
25
|
-
@source
|
26
|
-
else
|
27
|
-
@source = value
|
28
|
-
end
|
25
|
+
@source ||= value
|
29
26
|
end
|
30
27
|
|
31
28
|
def namespace(value = nil)
|
32
|
-
|
33
|
-
@namespace
|
34
|
-
else
|
35
|
-
@namespace = value
|
36
|
-
end
|
29
|
+
@namespace ||= value
|
37
30
|
end
|
38
31
|
|
39
32
|
def suppress_errors(value = nil)
|
40
|
-
|
41
|
-
@suppress_errors
|
42
|
-
else
|
43
|
-
@suppress_errors = value
|
44
|
-
end
|
33
|
+
@suppress_errors ||= value
|
45
34
|
end
|
46
35
|
|
47
36
|
def [](key)
|
@@ -59,12 +48,12 @@ class Settingslogic < Hash
|
|
59
48
|
instance
|
60
49
|
true
|
61
50
|
end
|
62
|
-
|
51
|
+
|
63
52
|
def reload!
|
64
53
|
@instance = nil
|
65
54
|
load!
|
66
55
|
end
|
67
|
-
|
56
|
+
|
68
57
|
private
|
69
58
|
def instance
|
70
59
|
return @instance if @instance
|
@@ -72,7 +61,7 @@ class Settingslogic < Hash
|
|
72
61
|
create_accessors!
|
73
62
|
@instance
|
74
63
|
end
|
75
|
-
|
64
|
+
|
76
65
|
def method_missing(name, *args, &block)
|
77
66
|
instance.send(name, *args, &block)
|
78
67
|
end
|
@@ -110,7 +99,8 @@ class Settingslogic < Hash
|
|
110
99
|
when Hash
|
111
100
|
self.replace hash_or_file
|
112
101
|
else
|
113
|
-
|
102
|
+
file_contents = open(hash_or_file).read
|
103
|
+
hash = file_contents.empty? ? {} : YAML.load(ERB.new(file_contents).result).to_hash
|
114
104
|
if self.class.namespace
|
115
105
|
hash = hash[self.class.namespace] or return missing_key("Missing setting '#{self.class.namespace}' in #{hash_or_file}")
|
116
106
|
end
|
@@ -141,6 +131,11 @@ class Settingslogic < Hash
|
|
141
131
|
create_accessor_for(key, val)
|
142
132
|
end
|
143
133
|
|
134
|
+
# Returns an instance of a Hash object
|
135
|
+
def to_hash
|
136
|
+
Hash[self]
|
137
|
+
end
|
138
|
+
|
144
139
|
# This handles naming collisions with Sinatra/Vlad/Capistrano. Since these use a set()
|
145
140
|
# helper that defines methods in Object, ANY method_missing ANYWHERE picks up the Vlad/Sinatra
|
146
141
|
# settings! So settings.deploy_to title actually calls Object.deploy_to (from set :deploy_to, "host"),
|
@@ -156,17 +151,38 @@ class Settingslogic < Hash
|
|
156
151
|
# http://bmorearty.wordpress.com/2009/01/09/fun-with-rubys-instance_eval-and-class_eval/
|
157
152
|
def create_accessor_for(key, val=nil)
|
158
153
|
return unless key.to_s =~ /^\w+$/ # could have "some-setting:" which blows up eval
|
159
|
-
instance_variable_set("@#{key}", val)
|
154
|
+
instance_variable_set("@#{key}", val)
|
160
155
|
self.class.class_eval <<-EndEval
|
161
156
|
def #{key}
|
162
157
|
return @#{key} if @#{key}
|
163
158
|
return missing_key("Missing setting '#{key}' in #{@section}") unless has_key? '#{key}'
|
164
159
|
value = fetch('#{key}')
|
165
|
-
@#{key} = value.is_a?(Hash)
|
160
|
+
@#{key} = if value.is_a?(Hash)
|
161
|
+
self.class.new(value, "'#{key}' section in #{@section}")
|
162
|
+
elsif value.is_a?(Array) && value.all?{|v| v.is_a? Hash}
|
163
|
+
value.map{|v| self.class.new(v)}
|
164
|
+
else
|
165
|
+
value
|
166
|
+
end
|
166
167
|
end
|
167
168
|
EndEval
|
168
169
|
end
|
169
|
-
|
170
|
+
|
171
|
+
def symbolize_keys
|
172
|
+
|
173
|
+
inject({}) do |memo, tuple|
|
174
|
+
|
175
|
+
k = (tuple.first.to_sym rescue tuple.first) || tuple.first
|
176
|
+
|
177
|
+
v = k.is_a?(Symbol) ? send(k) : tuple.last # make sure the value is accessed the same way Settings.foo.bar works
|
178
|
+
|
179
|
+
memo[k] = v && v.respond_to?(:symbolize_keys) ? v.symbolize_keys : v #recurse for nested hashes
|
180
|
+
|
181
|
+
memo
|
182
|
+
end
|
183
|
+
|
184
|
+
end
|
185
|
+
|
170
186
|
def missing_key(msg)
|
171
187
|
return nil if self.class.suppress_errors
|
172
188
|
|
data/settingslogic.gemspec
CHANGED
@@ -1,67 +1,21 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
1
|
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
5
3
|
|
6
4
|
Gem::Specification.new do |s|
|
7
|
-
s.name
|
8
|
-
s.version
|
5
|
+
s.name = "settingslogic"
|
6
|
+
s.version = "2.0.9"
|
7
|
+
s.platform = Gem::Platform::RUBY
|
8
|
+
s.authors = ["Ben Johnson"]
|
9
|
+
s.email = ["bjohnson@binarylogic.com"]
|
10
|
+
s.homepage = "http://github.com/binarylogic/settingslogic"
|
11
|
+
s.summary = %q{A simple and straightforward settings solution that uses an ERB enabled YAML file and a singleton design pattern.}
|
12
|
+
s.description = %q{A simple and straightforward settings solution that uses an ERB enabled YAML file and a singleton design pattern.}
|
9
13
|
|
10
|
-
s.
|
11
|
-
s.
|
12
|
-
s.date = "2012-01-09"
|
13
|
-
s.email = "bjohnson@binarylogic.com"
|
14
|
-
s.extra_rdoc_files = [
|
15
|
-
"LICENSE",
|
16
|
-
"README.rdoc"
|
17
|
-
]
|
18
|
-
s.files = [
|
19
|
-
"CHANGELOG.rdoc",
|
20
|
-
"Gemfile",
|
21
|
-
"Gemfile.lock",
|
22
|
-
"LICENSE",
|
23
|
-
"README.rdoc",
|
24
|
-
"Rakefile",
|
25
|
-
"VERSION.yml",
|
26
|
-
"init.rb",
|
27
|
-
"lib/settingslogic.rb",
|
28
|
-
"rails/init.rb",
|
29
|
-
"settingslogic.gemspec",
|
30
|
-
"spec/settings.rb",
|
31
|
-
"spec/settings.yml",
|
32
|
-
"spec/settings2.rb",
|
33
|
-
"spec/settings3.rb",
|
34
|
-
"spec/settings4.rb",
|
35
|
-
"spec/settingslogic_spec.rb",
|
36
|
-
"spec/spec_helper.rb"
|
37
|
-
]
|
38
|
-
s.homepage = "http://github.com/binarylogic/settingslogic"
|
39
|
-
s.require_paths = ["lib"]
|
40
|
-
s.rubygems_version = "1.8.10"
|
41
|
-
s.summary = "A simple and straightforward settings solution that uses an ERB enabled YAML file and a singleton design pattern."
|
42
|
-
|
43
|
-
if s.respond_to? :specification_version then
|
44
|
-
s.specification_version = 3
|
45
|
-
|
46
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
47
|
-
s.add_development_dependency(%q<rake>, [">= 0"])
|
48
|
-
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
49
|
-
s.add_development_dependency(%q<rspec>, [">= 0"])
|
50
|
-
s.add_development_dependency(%q<rcov>, [">= 0"])
|
51
|
-
s.add_development_dependency(%q<ruby-debug19>, [">= 0"])
|
52
|
-
else
|
53
|
-
s.add_dependency(%q<rake>, [">= 0"])
|
54
|
-
s.add_dependency(%q<jeweler>, [">= 0"])
|
55
|
-
s.add_dependency(%q<rspec>, [">= 0"])
|
56
|
-
s.add_dependency(%q<rcov>, [">= 0"])
|
57
|
-
s.add_dependency(%q<ruby-debug19>, [">= 0"])
|
58
|
-
end
|
59
|
-
else
|
60
|
-
s.add_dependency(%q<rake>, [">= 0"])
|
61
|
-
s.add_dependency(%q<jeweler>, [">= 0"])
|
62
|
-
s.add_dependency(%q<rspec>, [">= 0"])
|
63
|
-
s.add_dependency(%q<rcov>, [">= 0"])
|
64
|
-
s.add_dependency(%q<ruby-debug19>, [">= 0"])
|
65
|
-
end
|
66
|
-
end
|
14
|
+
s.add_development_dependency 'rake'
|
15
|
+
s.add_development_dependency 'rspec'
|
67
16
|
|
17
|
+
s.files = `git ls-files`.split("\n")
|
18
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
19
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
|
+
s.require_paths = ["lib"]
|
21
|
+
end
|
data/spec/settings.yml
CHANGED
File without changes
|
data/spec/settingslogic_spec.rb
CHANGED
@@ -9,6 +9,10 @@ describe "Settingslogic" do
|
|
9
9
|
Settings.setting1.setting1_child.should == "saweet"
|
10
10
|
end
|
11
11
|
|
12
|
+
it "should access settings in nested arrays" do
|
13
|
+
Settings.array.first.name.should == "first"
|
14
|
+
end
|
15
|
+
|
12
16
|
it "should access deep nested settings" do
|
13
17
|
Settings.setting1.deep.another.should == "my value"
|
14
18
|
end
|
@@ -126,6 +130,18 @@ describe "Settingslogic" do
|
|
126
130
|
Settings.language['some-dash-setting#'].should == 'dashtastic'
|
127
131
|
end
|
128
132
|
|
133
|
+
it "should handle settings with nil value" do
|
134
|
+
Settings["flag"] = true
|
135
|
+
Settings["flag"] = nil
|
136
|
+
Settings.flag.should == nil
|
137
|
+
end
|
138
|
+
|
139
|
+
it "should handle settings with false value" do
|
140
|
+
Settings["flag"] = true
|
141
|
+
Settings["flag"] = false
|
142
|
+
Settings.flag.should == false
|
143
|
+
end
|
144
|
+
|
129
145
|
it "should support instance usage as well" do
|
130
146
|
settings = SettingsInst.new(Settings.source)
|
131
147
|
settings.setting1.setting1_child.should == "saweet"
|
@@ -152,11 +168,40 @@ describe "Settingslogic" do
|
|
152
168
|
it "should allow a name setting to be overriden" do
|
153
169
|
Settings.name.should == 'test'
|
154
170
|
end
|
171
|
+
|
172
|
+
it "should allow symbolize_keys" do
|
173
|
+
Settings.reload!
|
174
|
+
result = Settings.language.haskell.symbolize_keys
|
175
|
+
result.class.should == Hash
|
176
|
+
result.should == {:paradigm => "functional"}
|
177
|
+
end
|
178
|
+
|
179
|
+
it "should allow symbolize_keys on nested hashes" do
|
180
|
+
Settings.reload!
|
181
|
+
result = Settings.language.symbolize_keys
|
182
|
+
result.class.should == Hash
|
183
|
+
result.should == {
|
184
|
+
:haskell => {:paradigm => "functional"},
|
185
|
+
:smalltalk => {:paradigm => "object oriented"}
|
186
|
+
}
|
187
|
+
end
|
188
|
+
|
189
|
+
it "should handle empty file" do
|
190
|
+
SettingsEmpty.keys.should eql([])
|
191
|
+
end
|
155
192
|
|
156
193
|
# Put this test last or else call to .instance will load @instance,
|
157
194
|
# masking bugs.
|
158
195
|
it "should be a hash" do
|
159
196
|
Settings.send(:instance).should be_is_a(Hash)
|
160
197
|
end
|
161
|
-
|
198
|
+
|
199
|
+
describe "#to_hash" do
|
200
|
+
it "should return a new instance of a Hash object" do
|
201
|
+
Settings.to_hash.should be_kind_of(Hash)
|
202
|
+
Settings.to_hash.class.name.should == "Hash"
|
203
|
+
Settings.to_hash.object_id.should_not == Settings.object_id
|
204
|
+
end
|
205
|
+
end
|
206
|
+
|
162
207
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,19 +1,19 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: settingslogic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.9
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
|
-
- Ben Johnson
|
8
|
+
- Ben Johnson
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-12-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,32 +21,15 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
25
|
-
- !ruby/object:Gem::Dependency
|
26
|
-
name: jeweler
|
27
|
-
requirement: &70269561838420 !ruby/object:Gem::Requirement
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
28
25
|
none: false
|
29
26
|
requirements:
|
30
27
|
- - ! '>='
|
31
28
|
- !ruby/object:Gem::Version
|
32
29
|
version: '0'
|
33
|
-
type: :development
|
34
|
-
prerelease: false
|
35
|
-
version_requirements: *70269561838420
|
36
30
|
- !ruby/object:Gem::Dependency
|
37
31
|
name: rspec
|
38
|
-
requirement:
|
39
|
-
none: false
|
40
|
-
requirements:
|
41
|
-
- - ! '>='
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
version: '0'
|
44
|
-
type: :development
|
45
|
-
prerelease: false
|
46
|
-
version_requirements: *70269561855380
|
47
|
-
- !ruby/object:Gem::Dependency
|
48
|
-
name: rcov
|
49
|
-
requirement: &70269561854140 !ruby/object:Gem::Requirement
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
50
33
|
none: false
|
51
34
|
requirements:
|
52
35
|
- - ! '>='
|
@@ -54,42 +37,35 @@ dependencies:
|
|
54
37
|
version: '0'
|
55
38
|
type: :development
|
56
39
|
prerelease: false
|
57
|
-
version_requirements:
|
58
|
-
- !ruby/object:Gem::Dependency
|
59
|
-
name: ruby-debug19
|
60
|
-
requirement: &70269561851960 !ruby/object:Gem::Requirement
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
61
41
|
none: false
|
62
42
|
requirements:
|
63
43
|
- - ! '>='
|
64
44
|
- !ruby/object:Gem::Version
|
65
45
|
version: '0'
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
email: bjohnson@binarylogic.com
|
46
|
+
description: A simple and straightforward settings solution that uses an ERB enabled
|
47
|
+
YAML file and a singleton design pattern.
|
48
|
+
email:
|
49
|
+
- bjohnson@binarylogic.com
|
71
50
|
executables: []
|
72
51
|
extensions: []
|
73
|
-
extra_rdoc_files:
|
74
|
-
- LICENSE
|
75
|
-
- README.rdoc
|
52
|
+
extra_rdoc_files: []
|
76
53
|
files:
|
77
|
-
-
|
54
|
+
- .gitignore
|
78
55
|
- Gemfile
|
79
56
|
- Gemfile.lock
|
80
57
|
- LICENSE
|
81
58
|
- README.rdoc
|
82
59
|
- Rakefile
|
83
|
-
- VERSION.yml
|
84
|
-
- init.rb
|
85
60
|
- lib/settingslogic.rb
|
86
|
-
- rails/init.rb
|
87
61
|
- settingslogic.gemspec
|
88
62
|
- spec/settings.rb
|
89
63
|
- spec/settings.yml
|
90
64
|
- spec/settings2.rb
|
91
65
|
- spec/settings3.rb
|
92
66
|
- spec/settings4.rb
|
67
|
+
- spec/settings_empty.rb
|
68
|
+
- spec/settings_empty.yml
|
93
69
|
- spec/settingslogic_spec.rb
|
94
70
|
- spec/spec_helper.rb
|
95
71
|
homepage: http://github.com/binarylogic/settingslogic
|
@@ -112,9 +88,18 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
112
88
|
version: '0'
|
113
89
|
requirements: []
|
114
90
|
rubyforge_project:
|
115
|
-
rubygems_version: 1.8.
|
91
|
+
rubygems_version: 1.8.24
|
116
92
|
signing_key:
|
117
93
|
specification_version: 3
|
118
94
|
summary: A simple and straightforward settings solution that uses an ERB enabled YAML
|
119
95
|
file and a singleton design pattern.
|
120
|
-
test_files:
|
96
|
+
test_files:
|
97
|
+
- spec/settings.rb
|
98
|
+
- spec/settings.yml
|
99
|
+
- spec/settings2.rb
|
100
|
+
- spec/settings3.rb
|
101
|
+
- spec/settings4.rb
|
102
|
+
- spec/settings_empty.rb
|
103
|
+
- spec/settings_empty.yml
|
104
|
+
- spec/settingslogic_spec.rb
|
105
|
+
- spec/spec_helper.rb
|
data/CHANGELOG.rdoc
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
== 2.0.2 released 2009-08-22
|
2
|
-
|
3
|
-
* Define methods during method_missing instead of during initialization. Allows for modification on the fly.
|
4
|
-
|
5
|
-
== 2.0.0 released 2009-08-22
|
6
|
-
|
7
|
-
* Less magic, instead of automatically defining a Settings constant, you should define your own constant. See the readme for an example.
|
8
|
-
|
9
|
-
== 1.0.3 released 2009-04-23
|
10
|
-
|
11
|
-
* Fix Settings initialized with a Hash to work with both symbol and string hash keys.
|
12
|
-
|
13
|
-
== 1.0.2 released 2009-04-09
|
14
|
-
|
15
|
-
* Call key? off of the self in the class level name method.
|
16
|
-
|
17
|
-
== 1.0.1 released 2009-04-02
|
18
|
-
|
19
|
-
* Inherit from hash.
|
20
|
-
|
21
|
-
== 1.0.0 released 2008-12-05
|
22
|
-
|
23
|
-
* Only define methods if we have settings.
|
24
|
-
|
25
|
-
== 0.9.0 released 2008-10-30
|
26
|
-
|
27
|
-
* Initial release
|
data/VERSION.yml
DELETED
data/init.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + "/rails/init.rb"
|
data/rails/init.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require "settingslogic"
|