youthtree-settings 0.3.0 → 1.0.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/.gitignore +21 -0
- data/Rakefile +1 -50
- data/lib/youth_tree/settings.rb +19 -12
- data/youthtree-settings.gemspec +14 -39
- metadata +36 -55
data/.gitignore
ADDED
data/Rakefile
CHANGED
@@ -1,56 +1,7 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'rake'
|
3
|
+
require 'bundler/gem_tasks'
|
3
4
|
|
4
5
|
require 'active_support'
|
5
6
|
require 'active_support/core_ext'
|
6
7
|
require File.expand_path('lib/youth_tree/settings', File.dirname(__FILE__))
|
7
|
-
|
8
|
-
begin
|
9
|
-
require 'jeweler'
|
10
|
-
Jeweler::Tasks.new do |gem|
|
11
|
-
gem.name = "youthtree-settings"
|
12
|
-
gem.summary = "Simple Settings for Rails Applications"
|
13
|
-
gem.description = %Q{Lets you use config/settings.yml in a rails application to manage settings on a per-env basis.}
|
14
|
-
gem.email = "sutto@sutto.net"
|
15
|
-
gem.homepage = "http://github.com/YouthTree/youthtree-settings"
|
16
|
-
gem.authors = ["Darcy Laycock"]
|
17
|
-
gem.version = YouthTree::Settings::VERSION
|
18
|
-
gem.add_dependency "activesupport", "~> 3.0.1"
|
19
|
-
end
|
20
|
-
Jeweler::GemcutterTasks.new
|
21
|
-
rescue LoadError
|
22
|
-
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
23
|
-
end
|
24
|
-
|
25
|
-
require 'rake/testtask'
|
26
|
-
Rake::TestTask.new(:test) do |test|
|
27
|
-
test.libs << 'lib' << 'test'
|
28
|
-
test.pattern = 'test/**/*_test.rb'
|
29
|
-
test.verbose = true
|
30
|
-
end
|
31
|
-
|
32
|
-
begin
|
33
|
-
require 'rcov/rcovtask'
|
34
|
-
Rcov::RcovTask.new do |test|
|
35
|
-
test.libs << 'test'
|
36
|
-
test.pattern = 'test/**/*_test.rb'
|
37
|
-
test.verbose = true
|
38
|
-
end
|
39
|
-
rescue LoadError
|
40
|
-
task :rcov do
|
41
|
-
abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
task :test => :check_dependencies
|
46
|
-
|
47
|
-
task :default => :test
|
48
|
-
|
49
|
-
require 'rake/rdoctask'
|
50
|
-
Rake::RDocTask.new do |rdoc|
|
51
|
-
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
52
|
-
rdoc.rdoc_dir = 'rdoc'
|
53
|
-
rdoc.title = "youthtree-settings #{version}"
|
54
|
-
rdoc.rdoc_files.include('README*')
|
55
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
56
|
-
end
|
data/lib/youth_tree/settings.rb
CHANGED
@@ -4,12 +4,7 @@ require 'erb'
|
|
4
4
|
module YouthTree
|
5
5
|
class Settings
|
6
6
|
|
7
|
-
VERSION = "0.
|
8
|
-
|
9
|
-
cattr_reader :settings_path
|
10
|
-
def self.settings_path
|
11
|
-
@@settings_path ||= Rails.root.join("config", "settings.yml")
|
12
|
-
end
|
7
|
+
VERSION = "1.0.0".freeze
|
13
8
|
|
14
9
|
def initialize(hash = {})
|
15
10
|
@hash = Hash.new { |h,k| h[k] = self.class.new }
|
@@ -64,24 +59,36 @@ module YouthTree
|
|
64
59
|
|
65
60
|
class << self
|
66
61
|
|
62
|
+
def setup(value = nil, &blk)
|
63
|
+
@@setup_callback = (blk || value)
|
64
|
+
end
|
65
|
+
|
66
|
+
def settings_path
|
67
|
+
@@settings_path ||= Rails.root.join("config", "settings.yml").to_s
|
68
|
+
end
|
69
|
+
|
67
70
|
def load_from_file
|
68
|
-
|
71
|
+
if !File.readable?(settings_path)
|
72
|
+
$stderr.puts "Unable to load settings from #{settings_path} - Please check it exists and is readable."
|
73
|
+
return {}
|
74
|
+
end
|
75
|
+
# Otherwise, try loading...
|
76
|
+
contents = File.read(settings_path)
|
69
77
|
contents = ERB.new(contents).result
|
70
78
|
contents = YAML.load(contents)
|
71
79
|
(contents["default"] || {}).deep_merge(contents[Rails.env] || {})
|
72
80
|
end
|
73
81
|
|
74
82
|
def default
|
75
|
-
@@
|
76
|
-
groups = [load_from_file]
|
77
|
-
self.new(groups.inject({}) { |a,v| a.deep_merge(v) })
|
78
|
-
end
|
83
|
+
@@default ||= new(load_from_file)
|
79
84
|
end
|
80
85
|
|
81
86
|
def reset!
|
82
|
-
@@
|
87
|
+
@@default = nil
|
83
88
|
default # Force us to reload the settings
|
84
89
|
YouthTree::Settings.setup_mailer!
|
90
|
+
# If a setup block is defined, call it post configuration.
|
91
|
+
@setup_callback.call if defined?(@setup_callback) && @setup_callback
|
85
92
|
true
|
86
93
|
end
|
87
94
|
|
data/youthtree-settings.gemspec
CHANGED
@@ -1,45 +1,20 @@
|
|
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 -*-
|
5
2
|
|
3
|
+
require File.expand_path('lib/youth_tree/settings', File.dirname(__FILE__))
|
4
|
+
|
6
5
|
Gem::Specification.new do |s|
|
7
|
-
s.name = %q{youthtree-settings}
|
8
|
-
s.version = "0.3.0"
|
9
6
|
|
10
|
-
s.
|
11
|
-
s.
|
12
|
-
s.
|
13
|
-
s.
|
14
|
-
s.email
|
15
|
-
s.
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
s.files = [
|
20
|
-
".document",
|
21
|
-
"LICENSE",
|
22
|
-
"README.md",
|
23
|
-
"Rakefile",
|
24
|
-
"lib/youth_tree/settings.rb",
|
25
|
-
"lib/youthtree-settings.rb",
|
26
|
-
"youthtree-settings.gemspec"
|
27
|
-
]
|
28
|
-
s.homepage = %q{http://github.com/YouthTree/youthtree-settings}
|
7
|
+
s.name = "youthtree-settings"
|
8
|
+
s.summary = "Simple Settings for Rails Applications"
|
9
|
+
s.description = %Q{Lets you use config/settings.yml in a rails application to manage settings on a per-env basis.}
|
10
|
+
s.authors = ["Darcy Laycock"]
|
11
|
+
s.email = ["sutto@sutto.net"]
|
12
|
+
s.homepage = "http://github.com/YouthTree/youthtree-settings"
|
13
|
+
s.files = `git ls-files`.split($\)
|
14
|
+
s.executables = s.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
15
|
+
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
29
16
|
s.require_paths = ["lib"]
|
30
|
-
s.
|
31
|
-
s.
|
32
|
-
|
33
|
-
if s.respond_to? :specification_version then
|
34
|
-
s.specification_version = 3
|
35
|
-
|
36
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
37
|
-
s.add_runtime_dependency(%q<activesupport>, ["~> 3.0.1"])
|
38
|
-
else
|
39
|
-
s.add_dependency(%q<activesupport>, ["~> 3.0.1"])
|
40
|
-
end
|
41
|
-
else
|
42
|
-
s.add_dependency(%q<activesupport>, ["~> 3.0.1"])
|
43
|
-
end
|
44
|
-
end
|
17
|
+
s.version = YouthTree::Settings::VERSION.dup
|
18
|
+
s.add_dependency "activesupport", "~> 3.0.1"
|
45
19
|
|
20
|
+
end
|
metadata
CHANGED
@@ -1,89 +1,70 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: youthtree-settings
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 3
|
9
|
-
- 0
|
10
|
-
version: 0.3.0
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Darcy Laycock
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-04-05 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
22
15
|
name: activesupport
|
23
|
-
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
25
17
|
none: false
|
26
|
-
requirements:
|
18
|
+
requirements:
|
27
19
|
- - ~>
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
hash: 5
|
30
|
-
segments:
|
31
|
-
- 3
|
32
|
-
- 0
|
33
|
-
- 1
|
20
|
+
- !ruby/object:Gem::Version
|
34
21
|
version: 3.0.1
|
35
22
|
type: :runtime
|
36
|
-
|
37
|
-
|
38
|
-
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 3.0.1
|
30
|
+
description: Lets you use config/settings.yml in a rails application to manage settings
|
31
|
+
on a per-env basis.
|
32
|
+
email:
|
33
|
+
- sutto@sutto.net
|
39
34
|
executables: []
|
40
|
-
|
41
35
|
extensions: []
|
42
|
-
|
43
|
-
|
44
|
-
- LICENSE
|
45
|
-
- README.md
|
46
|
-
files:
|
36
|
+
extra_rdoc_files: []
|
37
|
+
files:
|
47
38
|
- .document
|
39
|
+
- .gitignore
|
48
40
|
- LICENSE
|
49
41
|
- README.md
|
50
42
|
- Rakefile
|
51
43
|
- lib/youth_tree/settings.rb
|
52
44
|
- lib/youthtree-settings.rb
|
53
45
|
- youthtree-settings.gemspec
|
54
|
-
has_rdoc: true
|
55
46
|
homepage: http://github.com/YouthTree/youthtree-settings
|
56
47
|
licenses: []
|
57
|
-
|
58
48
|
post_install_message:
|
59
49
|
rdoc_options: []
|
60
|
-
|
61
|
-
require_paths:
|
50
|
+
require_paths:
|
62
51
|
- lib
|
63
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
52
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
64
53
|
none: false
|
65
|
-
requirements:
|
66
|
-
- -
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
|
69
|
-
|
70
|
-
- 0
|
71
|
-
version: "0"
|
72
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
54
|
+
requirements:
|
55
|
+
- - ! '>='
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: '0'
|
58
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
73
59
|
none: false
|
74
|
-
requirements:
|
75
|
-
- -
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
|
78
|
-
segments:
|
79
|
-
- 0
|
80
|
-
version: "0"
|
60
|
+
requirements:
|
61
|
+
- - ! '>='
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '0'
|
81
64
|
requirements: []
|
82
|
-
|
83
65
|
rubyforge_project:
|
84
|
-
rubygems_version: 1.
|
66
|
+
rubygems_version: 1.8.21
|
85
67
|
signing_key:
|
86
68
|
specification_version: 3
|
87
69
|
summary: Simple Settings for Rails Applications
|
88
70
|
test_files: []
|
89
|
-
|