simple-conf 0.2.0 → 0.2.1

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NzdmMGFjYjEyYmZhYWQxOGUzNzRlN2ZlYmY4ZGMxZWZlMDdiODBiMg==
4
+ YzFkZGIwNzllOGQzOTBiMzI0MmY3NjNhNjkxNTU4MDQ3ODY2ZWYwOQ==
5
5
  data.tar.gz: !binary |-
6
- YzhjNTM5ZWQyMWFlNmYzNzBkNzNjZjVhN2U4YzhiMTJhYTdkODcyZg==
6
+ OWU4NDlhMWU2ODM4YjU4NWE5MjZmMzc1YTIwNmQ0MGQ4MjliZjNhNg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- Y2M4NDMwYmY2YzZhZDI3ZTMyNDZhMjRkY2NiMDRlYmRmNWUwYTFlNzZlODgy
10
- MTU0YTQ5MmUyYjk5YTVjMzg4ODgxMzk4NTg2MmVkMzFlNjQxMDg2MjcwNzY1
11
- MjhmYjdhMjVkMTZlZDhhOWI5ODlmMTg0ODEwNWI3MTNkYzZjMGQ=
9
+ ZDQ2ZGM5ODMwODk1NmRjZmYyOTAzYzVlZTYxMzU1MmY3YmUzMDQ3NGI2MTAx
10
+ ZjI4ZDJlNWI2ZjBjNTI4MDhmYmMwNzQxNWU1NzgwOTYxODE0ZmVlMWQ2ZmZm
11
+ OTlkMzcwY2I1ZmI0ZGRlZWI0ZTFjNzk1MWI1MzVhZmVhNDMzY2I=
12
12
  data.tar.gz: !binary |-
13
- Y2MxNmEzN2JhYTYxN2QxM2EzYTMwMjlmMmU5MGNkNWQxZTRhNDdkODUzMmY1
14
- NTdkNjA4ZjJmZGRmZDU5N2RiMzEyZDVhZTFhM2E1Nzc5Yzc4ZWQ2MzQ5Mjdh
15
- NDBhZWZjYTdhY2VjMmVjMGY2NThkNGNmMjU2MWE4Y2EyYTQyNDI=
13
+ NmZiNjA5OWFjMDNmMzk3Y2ZiNmNkYzliMzg4NjM4MWY0MjY4Mzc5YmExOTY0
14
+ NTZjZjU0ZTc2MjVjYjIzOGUwMWNkYWE2ZmM5MzdmNTdhZjllZTBkODRlNjIy
15
+ YWIyZWI0OWFlODRkNWVjNGFjNWJkOGNhMjc2NjIzYjk5ZWU2MmQ=
@@ -0,0 +1 @@
1
+ domain: staging.example.com
@@ -6,20 +6,30 @@ module SimpleConf
6
6
  Loader = Struct.new(:klass) do
7
7
  def run
8
8
  paths.each do |path|
9
- yaml_file(path).each_pair do |key, value|
10
- set(key, value)
11
- end
9
+ load_file(path)
10
+ load_file_by_rails_env(path)
11
+ load_file_by_klass_env(path)
12
+ end
13
+ end
12
14
 
13
- yaml_file(path).fetch(Rails.env, {}).each_pair do |key, value|
14
- set(key, value)
15
- end if rails_environment_defined?
15
+ def load_file_by_rails_env(path)
16
+ yaml_file(path).fetch(Rails.env, {}).each_pair do |key, value|
17
+ set(key, value)
18
+ end if rails_environment_defined?
19
+ end
16
20
 
17
- yaml_file(path).fetch(klass.env, {}).each_pair do |key, value|
18
- set(key, value)
19
- end if klass.respond_to?(:env)
21
+ def load_file(path)
22
+ yaml_file(path).each_pair do |key, value|
23
+ set(key, value)
20
24
  end
21
25
  end
22
26
 
27
+ def load_file_by_klass_env(path)
28
+ yaml_file(path).fetch(klass.env, {}).each_pair do |key, value|
29
+ set(key, value)
30
+ end if klass.respond_to?(:env)
31
+ end
32
+
23
33
  def paths
24
34
  [
25
35
  "./config/#{config_file_name}.yml",
@@ -30,7 +40,15 @@ module SimpleConf
30
40
  def config_file_name
31
41
  klass.respond_to?(:config_file_name) ?
32
42
  klass.config_file_name :
33
- "#{klass.name.downcase.split("::").last}"
43
+ "#{underscore(klass.name.split("::").last)}"
44
+ end
45
+
46
+ def underscore(camel_case_string)
47
+ camel_case_string.gsub(/::/, '/').
48
+ gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
49
+ gsub(/([a-z\d])([A-Z])/,'\1_\2').
50
+ tr("-", "_").
51
+ downcase
34
52
  end
35
53
 
36
54
  def yaml_file(path)
@@ -1,3 +1,3 @@
1
1
  module SimpleConf
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
@@ -20,6 +20,10 @@ module ConfigModule
20
20
  end
21
21
  end
22
22
 
23
+ class CamelCaseConfig
24
+ include SimpleConf
25
+ end
26
+
23
27
  class Settings
24
28
  def self.env
25
29
  'test'
@@ -123,3 +127,9 @@ describe SimpleConf do
123
127
  end
124
128
  end
125
129
 
130
+ describe SimpleConf do
131
+ it 'should properly handle camel case names' do
132
+ expect(CamelCaseConfig.domain).to eq('staging.example.com')
133
+ end
134
+ end
135
+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple-conf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Korsak
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-18 00:00:00.000000000 Z
11
+ date: 2014-10-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -41,6 +41,7 @@ files:
41
41
  - LICENSE
42
42
  - README.md
43
43
  - Rakefile
44
+ - config/camel_case_config.yml
44
45
  - config/configuration.yml
45
46
  - config/options.yml
46
47
  - config/options2.local.yml