appfuel 0.2.8 → 0.2.9

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: 88e413bfd2d8d291a082e1ceb3fb292d919c29f4
4
- data.tar.gz: 3a743055b87cf4505dcaa4d8cb27ee8e0f596179
3
+ metadata.gz: 54becd18e0c5c644ef511055cbea0387fb3a9358
4
+ data.tar.gz: 6ee40a006ed3074fbb4a9507d89c6c2c6f3ae825
5
5
  SHA512:
6
- metadata.gz: dd8cadc46ee46043cd3ab4be7326e91274c38462a25d4ee33d14e3c4e23d76ab9755601e9b9402cd8d74da8f19d2c7c7fcee3317fec69777f09311ed4cee6ac6
7
- data.tar.gz: d1c9b2d0d7d11322557dc1e4e3386a5fbda0976fe507f588e88fb108720036076a4396b252e0ddce0d0cdf174ba56957f7013ec2864ce0b1f8d25b903afe124b
6
+ metadata.gz: e97e9094b6360bc89c3567f9d3a262d5269d46a28f963e1bd3433370a53a5341ee02bed4e55a75407128ea8f08fef83296ce31db08dfe709be824bfc244859ae
7
+ data.tar.gz: 88dcc7b47c0393b965b0e52a75cae551afe8f0a2683375781a7bea0708d82e8063ddb27159765d7ec9e07bb3f6d634da2f8a7fa73bde7e3dc59a7c3cb08853fa
data/CHANGELOG.md CHANGED
@@ -3,7 +3,12 @@ All notable changes to this project will be documented in this file. (Pending ap
3
3
 
4
4
  # [Unreleased]
5
5
 
6
+
6
7
  # Releases
8
+ ## [[0.2.9]](https://github.com/rsb/appfuel/releases/tag/0.2.8) 2017-06-14
9
+ ### Changed
10
+ - configuration now resolve to symbols as keys, children included
11
+
7
12
  ## [[0.2.8]](https://github.com/rsb/appfuel/releases/tag/0.2.8) 2017-06-07
8
13
  ### Fixed
9
14
  - searching configuration definitions with a symbol was failing because key was
data/appfuel.gemspec CHANGED
@@ -24,6 +24,7 @@ Gem::Specification.new do |spec|
24
24
  # when dynamically creating form validators. Not sure if it is the library
25
25
  # or the way I am using it.
26
26
  spec.add_dependency "activerecord", "~> 5.1.0"
27
+ spec.add_dependency "pg", "~> 0.20"
27
28
  spec.add_dependency "dry-types", "0.9.2"
28
29
  spec.add_dependency "dry-container", "~> 0.6"
29
30
  spec.add_dependency "dry-validation", "~> 0.10.5"
@@ -62,7 +62,7 @@ module Appfuel
62
62
  # @param key Symbol|String key used config hash
63
63
  # @return Definition
64
64
  def initialize(key)
65
- @key = key.to_s
65
+ @key = key.to_sym
66
66
  @defaults = {}
67
67
  @file = []
68
68
  @validator = nil
@@ -29,6 +29,7 @@ module Appfuel
29
29
  def parse_yaml(path)
30
30
  yaml_module.load_file(path)
31
31
  end
32
+ alias_method :parse_yml, :parse_yaml
32
33
 
33
34
  # Load file will search through a configuration's definition file
34
35
  # paths and use the first on that exists. It parse it based on
@@ -40,21 +41,27 @@ module Appfuel
40
41
  # @return [Hash]
41
42
  def load_file(definition)
42
43
  paths = definition.file
43
- key = definition.key
44
44
 
45
45
  paths.each do |path|
46
46
  ext = file_module.extname(path).strip.downcase[1..-1]
47
47
  parse_method = "parse_#{ext}"
48
48
  unless respond_to?(parse_method)
49
- fail "extension (#{ext}), for (#{key}: #{path}) is not valid, " +
50
- "only yaml and json are supported"
49
+ fail "extension (#{ext}), for (#{definition.key}: #{path}) " +
50
+ "is not valid, only yaml and json are supported"
51
51
  end
52
52
 
53
- return public_send(parse_method, path) if file_module.exists?(path)
53
+ if file_module.exists?(path)
54
+ config = public_send(parse_method, path)
55
+ unless config.is_a?(Hash)
56
+ fail "[config #{parse_method}] config must be a hash"
57
+ end
58
+ config.deep_symbolize_keys!
59
+ return config[definition.key]
60
+ end
54
61
  end
55
62
 
56
63
  list = paths.join(',')
57
- fail "none of :#{key} config files exist at (#{list})"
64
+ fail "none of :#{definition.key} config files exist at (#{list})"
58
65
  end
59
66
  end
60
67
  end
@@ -25,15 +25,11 @@ module Appfuel
25
25
 
26
26
  if file?
27
27
  config = load_file(self)
28
- unless config.is_a?(Hash)
29
- fail "[config populate] Failed :load_file did not " +
30
- "return a hash (#{file})"
31
- end
28
+ else
32
29
  config = config[key]
33
30
  end
34
31
 
35
32
  config ||= {}
36
-
37
33
  config = defaults.deep_merge(config)
38
34
  config = config.deep_merge(load_env(env_data, self))
39
35
  config = config.deep_merge(overrides || {})
@@ -60,9 +56,10 @@ module Appfuel
60
56
 
61
57
  def populate_children(child_hash, data, env_data = {})
62
58
  child_hash.each do |(def_key, definition)|
63
-
59
+ if definition.file?
60
+ data[def_key] = load_file(definition)
61
+ end
64
62
  data[def_key] ||= {}
65
- data[def_key] = load_file(definition) if definition.file?
66
63
  data[def_key] = definition.defaults.deep_merge(data[def_key])
67
64
  data[def_key] = data[def_key].deep_merge(load_env(env_data, definition))
68
65
  unless definition.children.empty?
@@ -29,7 +29,7 @@ module Appfuel
29
29
  # @param terms Array of definition keys
30
30
  def find(child_list, terms)
31
31
  while term = terms.shift
32
- term = term.to_s
32
+ term = term.to_sym
33
33
  child_list.each do |(definition_key, definition)|
34
34
  next unless definition_key == term
35
35
  result = if terms.empty?
@@ -1,3 +1,3 @@
1
1
  module Appfuel
2
- VERSION = "0.2.8"
2
+ VERSION = "0.2.9"
3
3
  end
data/lib/appfuel.rb CHANGED
@@ -146,7 +146,12 @@ module Appfuel
146
146
  runlist_key = "#{namespace}.run"
147
147
  env = container['env']
148
148
  config = container['config']
149
- runlist = container[runlist_key]
149
+
150
+ runlist = []
151
+ if container.key?(runlist_key)
152
+ runlist = container[runlist_key]
153
+ end
154
+
150
155
  unless runlist.respond_to?(:each)
151
156
  fail "[initialize] runlist (#{runlist_key}) must implement :each"
152
157
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appfuel
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.8
4
+ version: 0.2.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Scott-Buccleuch
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-06-07 00:00:00.000000000 Z
11
+ date: 2017-06-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 5.1.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: pg
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.20'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.20'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: dry-types
29
43
  requirement: !ruby/object:Gem::Requirement