config_service 1.0.0 → 1.0.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,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ce527c8b797f317bf09e292a976d9b8bdcc8198e
4
- data.tar.gz: 515a824b9712084ec00238eb232c01433d031294
3
+ metadata.gz: 6d78e78d2fb9f00610ebee9b2979b097cf136589
4
+ data.tar.gz: 71c1977080f8823b52637d682b928107e46b22a5
5
5
  SHA512:
6
- metadata.gz: 2bbb424521b05ccca412e52287206305c91be086d1e0808babbd093e1caf611c9459b60a918c919fadf77e8ab79d3fa77af1d431beb7e4e5f65bcb58c12ee029
7
- data.tar.gz: b8c7ef3f62be038debe0016054f1ac2f0da380c3469601b892d8bd4aa3da6558b20120151e94e0bd1bf74aaff3e8bae90df191f7b414953207062d487687cb10
6
+ metadata.gz: 3ec7987d2b349cdd3d3345d734ea41cdc8fc0503836510cb89b569a5482fc15478c80fd985779ca80ca22623b9309e9fcc6e0dbcc906dac693a6c12dde5151ca
7
+ data.tar.gz: 320aad7b8617393b46597cefdec1f215552f978bae59bef31e6708a9a677cc7b0b1d2be2e47350eb207841d834d31729c6151d40ab5a0a617b299f86df5273a0
@@ -1,13 +1,13 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'config_service'
3
- s.version = '1.0.0'
3
+ s.version = '1.0.1'
4
4
  s.summary = "A gem to load config yml files"
5
5
  s.description = "A gem to load config yml files"
6
6
  s.authors = ['Linh Chau']
7
7
  s.email = 'chauhonglinh@gmail.com'
8
8
  s.files = [
9
9
  './config_service.gemspec', 'lib/config_service.rb',
10
- 'lib/services/config_service.rb'
10
+ 'lib/services/config_service.rb', 'lib/utils/hash_utils.rb'
11
11
  ]
12
12
  s.homepage = 'https://github.com/linhchauatl/config_service'
13
13
  s.license = 'MIT'
@@ -1,4 +1,5 @@
1
1
  require 'yaml'
2
+ require 'ostruct'
2
3
  require_relative 'services/config_service'
3
4
 
4
5
  def load_gem_lib(sub_path)
@@ -9,7 +10,7 @@ rescue Exception => error
9
10
  # Who cares?
10
11
  end
11
12
 
12
- ['services'].each do |sub_path|
13
+ ['utils', 'services'].each do |sub_path|
13
14
  load_gem_lib(sub_path)
14
15
  rb_files = Dir.glob("#{File.expand_path('.')}/lib/#{sub_path}/*.rb")
15
16
  rb_files.each { |rb_file| require rb_file }
@@ -16,7 +16,7 @@ class ConfigService
16
16
 
17
17
  raise("#{Time.now.strftime("%m/%d/%Y %H:%M:%S.%3N %z")} ERROR: ConfigService#load_config #{config_file_name} file not found.") unless config_file
18
18
 
19
- YAML.load_file(config_file)
19
+ HashUtils.hash_to_open_struct(YAML.load_file(config_file))
20
20
  end
21
21
 
22
22
  def environment
@@ -0,0 +1,14 @@
1
+ class HashUtils
2
+ class << self
3
+ def hash_to_open_struct(data_hash)
4
+ elements_with_hash_values = data_hash.select { |key, value| value.is_a? Hash }
5
+ return OpenStruct.new(data_hash) if elements_with_hash_values.empty?
6
+
7
+ result = OpenStruct.new(data_hash.select { |key, value| !value.is_a?(Hash) })
8
+ elements_with_hash_values.each do |key, value|
9
+ result.send("#{key}=", hash_to_open_struct(value))
10
+ end
11
+ result
12
+ end
13
+ end
14
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: config_service
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Linh Chau
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-13 00:00:00.000000000 Z
11
+ date: 2015-05-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logging
@@ -61,6 +61,7 @@ files:
61
61
  - "./config_service.gemspec"
62
62
  - lib/config_service.rb
63
63
  - lib/services/config_service.rb
64
+ - lib/utils/hash_utils.rb
64
65
  homepage: https://github.com/linhchauatl/config_service
65
66
  licenses:
66
67
  - MIT
@@ -81,7 +82,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
81
82
  version: '0'
82
83
  requirements: []
83
84
  rubyforge_project:
84
- rubygems_version: 2.4.5
85
+ rubygems_version: 2.4.6
85
86
  signing_key:
86
87
  specification_version: 4
87
88
  summary: A gem to load config yml files