simple-conf 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
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