rails_config 0.1.5 → 0.1.6

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/Gemfile CHANGED
@@ -1,8 +1,3 @@
1
1
  source 'http://rubygems.org'
2
2
 
3
- gem "activesupport", ">= 3.0.0.rc"
4
- gem "rspec", ">= 2.0.0.beta.19"
5
- gem 'autotest'
6
- gem "growl-glue"
7
-
8
- gem "ruby-debug"
3
+ gemspec
data/Gemfile.lock CHANGED
@@ -1,32 +1,29 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ rails_config (0.1.5)
5
+ activesupport (~> 3.0)
6
+
1
7
  GEM
2
8
  remote: http://rubygems.org/
3
9
  specs:
4
- activesupport (3.0.0.rc)
5
- autotest (4.3.2)
6
- columnize (0.3.1)
10
+ activesupport (3.0.0)
7
11
  diff-lcs (1.1.2)
8
- growl-glue (1.0.7)
9
- linecache (0.43)
10
- rspec (2.0.0.beta.19)
11
- rspec-core (= 2.0.0.beta.19)
12
- rspec-expectations (= 2.0.0.beta.19)
13
- rspec-mocks (= 2.0.0.beta.19)
14
- rspec-core (2.0.0.beta.19)
15
- rspec-expectations (2.0.0.beta.19)
12
+ rspec (2.0.0)
13
+ rspec-core (= 2.0.0)
14
+ rspec-expectations (= 2.0.0)
15
+ rspec-mocks (= 2.0.0)
16
+ rspec-core (2.0.0)
17
+ rspec-expectations (2.0.0)
16
18
  diff-lcs (>= 1.1.2)
17
- rspec-mocks (2.0.0.beta.19)
18
- ruby-debug (0.10.3)
19
- columnize (>= 0.1)
20
- ruby-debug-base (~> 0.10.3.0)
21
- ruby-debug-base (0.10.3)
22
- linecache (>= 0.3)
19
+ rspec-mocks (2.0.0)
20
+ rspec-core (= 2.0.0)
21
+ rspec-expectations (= 2.0.0)
23
22
 
24
23
  PLATFORMS
25
24
  ruby
26
25
 
27
26
  DEPENDENCIES
28
- activesupport (>= 3.0.0.rc)
29
- autotest
30
- growl-glue
27
+ activesupport (~> 3.0)
28
+ rails_config!
31
29
  rspec (>= 2.0.0.beta.19)
32
- ruby-debug
data/README.md CHANGED
@@ -58,9 +58,22 @@ Config entries are compiled from
58
58
 
59
59
  settings defined in files that are lower in the list override settings higher
60
60
 
61
- ### Reloading config files
61
+ ### Reloading settings
62
62
 
63
- You can reload the Settings from file at any time by running Settings.reload!
63
+ You can reload the Settings object at any time by running Settings.reload!
64
+
65
+ ### Reloading settings and config files
66
+
67
+ You can also reload the Settings object from different config files at runtime.
68
+
69
+ For example, in your tests if you want to test the production settings, you can:
70
+
71
+ Rails.env = "production"
72
+ Settings.reload_from_files(
73
+ Rails.root.join("config", "settings.yml").to_s,
74
+ Rails.root.join("config", "settings", "#{Rails.env}.yml").to_s,
75
+ Rails.root.join("config", "environments", "#{Rails.env}.yml").to_s
76
+ )
64
77
 
65
78
  ### Environment specific config files
66
79
 
data/Rakefile CHANGED
@@ -11,9 +11,11 @@ begin
11
11
  s.email = ["railsjedi@gmail.com", "ifredwu@gmail.com"]
12
12
  s.files = FileList["[A-Z]*", "{bin,generators,lib,spec}/**/*"]
13
13
 
14
- s.add_dependency 'activesupport', "~>3.0"
15
- s.add_development_dependency 'rspec', ">=2.0.0.beta.19"
16
-
14
+ s.add_dependency 'activesupport', "~> 3.0"
15
+ s.add_development_dependency 'rspec', "~> 2.0"
16
+ s.add_development_dependency 'autotest'
17
+ s.add_development_dependency 'growl-glue'
18
+ s.add_development_dependency 'ruby-debug' if RUBY_VERSION < "1.9"
17
19
  end
18
20
  Jeweler::GemcutterTasks.new
19
21
  rescue LoadError
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.5
1
+ 0.1.6
@@ -11,10 +11,6 @@ module RailsConfig
11
11
  @config_sources << source
12
12
  end
13
13
 
14
- def load!
15
- reload!
16
- end
17
-
18
14
  # look through all our sources and rebuild the configuration
19
15
  def reload!
20
16
  conf = {}
@@ -36,6 +32,11 @@ module RailsConfig
36
32
 
37
33
  alias :load! :reload!
38
34
 
35
+ def reload_from_files(*files)
36
+ RailsConfig.load_and_set_settings(files)
37
+ reload!
38
+ end
39
+
39
40
  protected
40
41
 
41
42
  # Recursively converts Hashes to Options (including Hashes inside Arrays)
@@ -10,13 +10,11 @@ if defined?(Rails::Railtie)
10
10
 
11
11
  # Parse the settings before any of the initializers
12
12
  ActiveSupport.on_load :before_initialize, :yield => true do
13
- settings = RailsConfig.load_files(
13
+ RailsConfig.load_and_set_settings(
14
14
  Rails.root.join("config", "settings.yml").to_s,
15
15
  Rails.root.join("config", "settings", "#{Rails.env}.yml").to_s,
16
16
  Rails.root.join("config", "environments", "#{Rails.env}.yml").to_s
17
17
  )
18
-
19
- Kernel.const_set(RailsConfig.const_name, settings)
20
18
  end
21
19
 
22
20
  # Rails Dev environment should reload the Settings on every request
data/lib/rails_config.rb CHANGED
@@ -17,11 +17,6 @@ module RailsConfig
17
17
  @@_ran_once = true
18
18
  end
19
19
 
20
- @@load_paths = []
21
- def self.load_paths
22
- @@load_paths
23
- end
24
-
25
20
  # Create a populated Options instance from a yaml file. If a second yaml file is given, then the sections of that file will overwrite the sections
26
21
  # if the first file if they exist in the first file.
27
22
  def self.load_files(*files)
@@ -32,9 +27,14 @@ module RailsConfig
32
27
  config.add_source!(Sources::YAMLSource.new(file))
33
28
  end
34
29
  config.load!
35
- return config
30
+ config
36
31
  end
37
32
 
33
+ # Loads and sets the settings constant!
34
+ def self.load_and_set_settings(*files)
35
+ Kernel.send(:remove_const, RailsConfig.const_name) if Kernel.const_defined?(RailsConfig.const_name)
36
+ Kernel.const_set(RailsConfig.const_name, RailsConfig.load_files(files))
37
+ end
38
38
  end
39
39
 
40
40
  # add railtie
@@ -44,6 +44,18 @@ describe RailsConfig do
44
44
  config.size.should == 2
45
45
  end
46
46
 
47
+ it "should allow full reload of the settings files" do
48
+ files = [setting_path("settings.yml")]
49
+ RailsConfig.load_and_set_settings(files)
50
+ Settings.server.should == "google.com"
51
+ Settings.size.should == 1
52
+
53
+ files = [setting_path("settings.yml"), setting_path("development.yml")]
54
+ Settings.reload_from_files(files)
55
+ Settings.server.should == "google.com"
56
+ Settings.size.should == 2
57
+ end
58
+
47
59
  context "Nested Settings" do
48
60
  let(:config) do
49
61
  RailsConfig.load_files(setting_path("development.yml"))
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_config
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
5
4
  prerelease: false
6
5
  segments:
7
6
  - 0
8
7
  - 1
9
- - 5
10
- version: 0.1.5
8
+ - 6
9
+ version: 0.1.6
11
10
  platform: ruby
12
11
  authors:
13
12
  - Jacques Crocker
@@ -16,7 +15,7 @@ autorequire:
16
15
  bindir: bin
17
16
  cert_chain: []
18
17
 
19
- date: 2010-09-13 00:00:00 -07:00
18
+ date: 2010-10-12 00:00:00 +11:00
20
19
  default_executable:
21
20
  dependencies:
22
21
  - !ruby/object:Gem::Dependency
@@ -27,7 +26,6 @@ dependencies:
27
26
  requirements:
28
27
  - - ~>
29
28
  - !ruby/object:Gem::Version
30
- hash: 7
31
29
  segments:
32
30
  - 3
33
31
  - 0
@@ -40,18 +38,40 @@ dependencies:
40
38
  requirement: &id002 !ruby/object:Gem::Requirement
41
39
  none: false
42
40
  requirements:
43
- - - ">="
41
+ - - ~>
44
42
  - !ruby/object:Gem::Version
45
- hash: 62196421
46
43
  segments:
47
44
  - 2
48
45
  - 0
49
- - 0
50
- - beta
51
- - 19
52
- version: 2.0.0.beta.19
46
+ version: "2.0"
53
47
  type: :development
54
48
  version_requirements: *id002
49
+ - !ruby/object:Gem::Dependency
50
+ name: autotest
51
+ prerelease: false
52
+ requirement: &id003 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ segments:
58
+ - 0
59
+ version: "0"
60
+ type: :development
61
+ version_requirements: *id003
62
+ - !ruby/object:Gem::Dependency
63
+ name: growl-glue
64
+ prerelease: false
65
+ requirement: &id004 !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ segments:
71
+ - 0
72
+ version: "0"
73
+ type: :development
74
+ version_requirements: *id004
55
75
  description: Provides an easy to use Application Configuration object
56
76
  email:
57
77
  - railsjedi@gmail.com
@@ -113,7 +133,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
113
133
  requirements:
114
134
  - - ">="
115
135
  - !ruby/object:Gem::Version
116
- hash: 3
117
136
  segments:
118
137
  - 0
119
138
  version: "0"
@@ -122,7 +141,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
122
141
  requirements:
123
142
  - - ">="
124
143
  - !ruby/object:Gem::Version
125
- hash: 3
126
144
  segments:
127
145
  - 0
128
146
  version: "0"