dynamic_configuration 0.3.13 → 0.3.14

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 76344d2157db88d0146007e521b296322d4592a1
4
- data.tar.gz: 0e71321dd18c4a10b13459465ecf51c196eaebe1
3
+ metadata.gz: 425ae95c29d5bd5d332340549b603a14bc7763bb
4
+ data.tar.gz: e7238415edef3f48da4bc43137f2e543cee1823c
5
5
  SHA512:
6
- metadata.gz: 60bb564937d89c96fcdebf9d0291330b024c3439d0d781d8b35db29cbc403a94c6b6f81c0ca566ec3aadfbd15f4350d8c993ce33ac688a5c03bdb6312425eedc
7
- data.tar.gz: dbf4554f086be198b6ea294ddf41448c879fef4e166078a6d58966f5885414479f6a578a3f20f8a60b30608133142f397d3d521f8f5d47aa4787be7054e806ba
6
+ metadata.gz: d9536a059603c8568aff1c5c62ba84b24c7e6480733104e409c605ddd0cf8a2588e6386f147ee6fff0efef0bc738993955d12dad6446d294169dae19fa04ef18
7
+ data.tar.gz: 59e496dc3da5fab5eee01485e8a24d574b71386c1f2d637ca8c4ac193f92479dc099f5beb73faef68d908ede187adc3c78165506a4dd0bc4a7ddcabf57b44d6c
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.13
1
+ 0.3.14
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: dynamic_configuration 0.3.13 ruby lib
5
+ # stub: dynamic_configuration 0.3.14 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "dynamic_configuration"
9
- s.version = "0.3.13"
9
+ s.version = "0.3.14"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Jaros\u{142}aw Rzesz\u{f3}tko"]
14
- s.date = "2014-02-06"
14
+ s.date = "2014-02-07"
15
15
  s.description = "Flexible configuration library for Ruby and Rails applications."
16
16
  s.email = "jrzeszotko@gmail.com"
17
17
  s.extra_rdoc_files = [
@@ -27,6 +27,7 @@ Gem::Specification.new do |s|
27
27
  "VERSION",
28
28
  "dynamic_configuration.gemspec",
29
29
  "lib/dynamic_configuration.rb",
30
+ "lib/railtie.rb",
30
31
  "spec/dynamic_configuration_spec.rb",
31
32
  "spec/options/local/main.rb",
32
33
  "spec/options/main.rb",
@@ -1,16 +1,30 @@
1
1
  require 'blankslate'
2
2
 
3
3
  module DynamicConfiguration
4
- def self.create(const_name, config_directory)
5
- ConfigFactory.new.create_config(const_name, config_directory)
4
+ class << self
5
+ def create(const_name, root_file_path)
6
+ @config_paths.push(File.dirname(root_file_path))
7
+ @const_names.push(const_name)
8
+ ConfigFactory.new.create_config(const_name, root_file_path)
9
+ end
10
+
11
+ def config_paths
12
+ @config_paths
13
+ end
14
+
15
+ def const_names
16
+ @const_names
17
+ end
6
18
  end
7
-
19
+
20
+ @const_names, @config_paths = [], []
21
+
8
22
  private
9
23
 
10
- class ConfigFactory
11
- def create_config(const_name, config_directory)
24
+ class ConfigFactory
25
+ def create_config(const_name, root_file_path)
12
26
  detect_rails
13
- setup_config(const_name, config_directory)
27
+ setup_config(const_name, root_file_path)
14
28
  load_main_configuration_files
15
29
  load_per_environment_configuration_files if @rails_loaded
16
30
  load_local_configuration_files
@@ -23,20 +37,21 @@ module DynamicConfiguration
23
37
  def detect_rails
24
38
  @rails_loaded = Object.const_defined?(:Rails)
25
39
  end
26
-
27
- def setup_config(const_name, config_directory)
40
+
41
+ def setup_config(const_name, root_file_path)
28
42
  @const_name = const_name
29
- @config_directory = Pathname.new(config_directory)
43
+ @root_file_path = root_file_path
44
+ @config_directory = Pathname.new(File.dirname(@root_file_path))
30
45
  @config = Config.new(@const_name, @config_directory)
31
46
 
32
- Object.const_set @const_name, @config
47
+ Object.const_set(@const_name, @config)
33
48
  end
34
49
 
35
50
  def load_main_configuration_files
36
51
  @config_directory.entries.each do |mod_file|
37
52
  next if ["..", "."].include?(mod_file.basename.to_s)
38
53
  mod_file = @config_directory + mod_file
39
- next unless mod_file.file? && mod_file.basename.to_s != "#{@const_name.to_s.downcase}.rb"
54
+ next unless mod_file.file? && mod_file.to_s != @root_file_path
40
55
  @config.load_module(mod_file)
41
56
  end
42
57
  end
@@ -71,18 +86,13 @@ module DynamicConfiguration
71
86
 
72
87
  def finalize_config
73
88
  @config.freeze
74
-
75
- if @rails_loaded
76
- ::ActiveSupport::Dependencies.autoload_paths << @config_directory.to_s
77
- ::ActiveSupport::Dependencies.explicitly_unloadable_constants << @const_name.to_s
78
- end
79
89
  end
80
90
  end
81
91
 
82
92
  class Config < ::BlankSlate
83
93
  reveal :freeze
84
94
  reveal :respond_to?
85
-
95
+
86
96
  def initialize(const_name, config_directory)
87
97
  @const_name, @config_directory = const_name, config_directory
88
98
  end
@@ -142,3 +152,5 @@ module DynamicConfiguration
142
152
  class MissingGroupException < StandardError; end
143
153
  class MissingSettingException < StandardError; end
144
154
  end
155
+
156
+ require 'railtie' if defined?(Rails)
data/lib/railtie.rb ADDED
@@ -0,0 +1,15 @@
1
+ class DynamicConfigurationRailtie < Rails::Railtie
2
+ config.to_prepare do
3
+ DynamicConfiguration.const_names.each do |const_name|
4
+ Object.send(:remove_const, const_name) if Object.const_defined?(const_name)
5
+ end
6
+ end
7
+
8
+ initializer "dynamic_configuration.initialize" do |app|
9
+ DynamicConfiguration.config_paths.each do |path|
10
+ unless ActiveSupport::Dependencies.autoload_paths.include?(path)
11
+ ActiveSupport::Dependencies.autoload_paths << path
12
+ end
13
+ end
14
+ end
15
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dynamic_configuration
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.13
4
+ version: 0.3.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jarosław Rzeszótko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-06 00:00:00.000000000 Z
11
+ date: 2014-02-07 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Flexible configuration library for Ruby and Rails applications.
14
14
  email: jrzeszotko@gmail.com
@@ -26,6 +26,7 @@ files:
26
26
  - VERSION
27
27
  - dynamic_configuration.gemspec
28
28
  - lib/dynamic_configuration.rb
29
+ - lib/railtie.rb
29
30
  - spec/dynamic_configuration_spec.rb
30
31
  - spec/options/local/main.rb
31
32
  - spec/options/main.rb