biran 0.1.9 → 0.1.10

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
  SHA256:
3
- metadata.gz: fd1a9587486a601454672e7e3756f05f0e91f42000ab77f109d86eceb8c58729
4
- data.tar.gz: d4b1c75531689dea324602cd28a4619002846af2e198eb9b7cd667329457232a
3
+ metadata.gz: 3f486fa4aeeff2d2ec22b1a15a553fc044235c8f15b6c1f4e54e968ad5b1c648
4
+ data.tar.gz: df47f776ed09799f9e71d8b3ddb5ad1c8cb80178326a987fe5231e5f6c2b030c
5
5
  SHA512:
6
- metadata.gz: 94fdbc6e574f3616e4fa49a50cd17ca357dc8790eb1122eeef1d288847144f4c30ff6f7f6757716d44cd78f4d469d5e929bdfd79c01810bc309b3a72b32008cf
7
- data.tar.gz: 5649a2ca6a258fe966aa4062cc07759597fb6f637ba7ee61929c32495243d9f2c181f812a65f86c40502d83daf406adf56b0e70073d862b6b74b0fcd2c4f8f58
6
+ metadata.gz: ca3af8fb137ff99fdbd6bab2682bf7c8d3231ad4914cb81eba76fa8533e04b35448dfdee22729888e4165e6039b8c36c68a603ddb72ad85b77ea48f7f840d30f
7
+ data.tar.gz: 2a466ac6a681c5b64878bcb3bf145584cdfa95dcab0670e57d414525d56650683bab7e6d2513e323bcbf189735fec63d0d6bd8419dbc60b9620cec3ca7a8e1bf
@@ -53,7 +53,7 @@ module Biran
53
53
  }
54
54
 
55
55
  app_config.deep_merge! app_config_defaults
56
- app_config[:secrets] = get_secret_contents(app_config)
56
+ app_config[:secrets].deep_merge! get_secret_contents(app_config)
57
57
  app_config[:db_config] = build_db_config
58
58
 
59
59
  app_config.deep_merge! local_config_file_contents
@@ -1,10 +1,13 @@
1
+ require 'biran/hash_refinement'
2
+
1
3
  module Biran
2
4
  class Configurinator
3
5
  include ConfigDefaults
6
+ using HashRefinement
4
7
 
5
8
  DEFAULT_ENV = 'development'
6
9
 
7
- attr_reader :config, :db_config
10
+ attr_reader :config, :db_config, :env
8
11
 
9
12
  class << self
10
13
  attr_accessor :config
@@ -13,18 +16,10 @@ module Biran
13
16
  self.config ||= Config.instance
14
17
  yield config
15
18
  end
16
-
17
- def env= env
18
- @env = env
19
- end
20
- end
21
-
22
- def env
23
- return @env if @env
24
- @env = app_env
25
19
  end
26
20
 
27
- def initialize
21
+ def initialize(env: nil)
22
+ @env = env || app_env
28
23
  @config = build_app_config
29
24
  end
30
25
 
@@ -32,23 +27,16 @@ module Biran
32
27
  files_to_generate.keys
33
28
  end
34
29
 
35
- def debug_stuff
36
- puts "app env2 is: #{app_env}"
37
- puts "instance @env is #{@env}"
38
- puts "env from method is #{env}"
39
- puts "rack env is #{ENV['RACK_ENV']}"
40
- end
41
-
42
30
  def files_to_generate
43
31
  @files_to_generate ||= config.fetch(:app, {})
44
32
  .fetch(:files_to_generate, configuration.files_to_generate)
45
33
  .tap { |files_list| files_list.each(&sanitize_config_files(files_list)) }
46
34
  end
47
35
 
48
- def create(name:, extension:, output_dir: nil)
36
+ def create(name:, extension:, output_dir: nil, output_name: nil)
49
37
  output_dir ||= config_dir
50
- #debug_stuff
51
- generated_file = ERBConfig.new(filtered_config, name, extension, config_dir, output_dir)
38
+ output_name ||= name
39
+ generated_file = ERBConfig.new(filtered_config, name, extension, config_dir, output_dir, output_name)
52
40
  generated_file.bindings = bindings
53
41
  generated_file.save!
54
42
  end
@@ -56,6 +44,7 @@ module Biran
56
44
  private
57
45
 
58
46
  def build_app_config
47
+ raise 'Environment not set to build the application config' unless @env
59
48
  app_config = {
60
49
  app_root_dir: app_root,
61
50
  app_shared_dir: app_shared_dir,
@@ -67,10 +56,13 @@ module Biran
67
56
  }
68
57
 
69
58
  app_config.deep_merge! app_config_defaults
70
- app_config[:secrets] = get_secret_contents(app_config)
59
+ app_config[:secrets].deep_merge! get_secret_contents(app_config)
71
60
  app_config[:db_config] = build_db_config
72
61
 
73
62
  app_config.deep_merge! local_config_file_contents
63
+
64
+ puts "app config final is #{app_config.inspect}"
65
+ app_config
74
66
  end
75
67
 
76
68
  def build_db_config
@@ -97,7 +89,25 @@ module Biran
97
89
  config_file_contents = File.read(config_file)
98
90
  config_file_contents = ERB.new(config_file_contents).result
99
91
  config_file_contents = YAML.safe_load(config_file_contents, [], [], true)
100
- config_file_contents[env].deep_symbolize_keys!
92
+ #puts "Config file contents after yaml load before env grab #{config_file_contents.inspect}"
93
+ config_file_contents_for_test = config_file_contents['test']
94
+ config_file_contents_for_env = config_file_contents[env]
95
+ puts "Config file contents for test:"
96
+ puts config_file_contents_for_test.to_yaml
97
+ puts
98
+ puts "Config file contents for #{env}:"
99
+ puts config_file_contents_for_env.to_yaml
100
+ puts
101
+ config_file_diff = config_file_contents_for_test.deep_diff(config_file_contents_for_env)
102
+ puts "diff hash is:"
103
+ puts config_file_diff.to_yaml
104
+ puts
105
+ config_file_diff_r = config_file_contents_for_env.deep_diff(config_file_contents_for_test)
106
+ puts "diff hash reversed is:"
107
+ puts config_file_diff_r.to_yaml
108
+ puts
109
+
110
+ config_file_contents_for_env.deep_symbolize_keys!
101
111
  rescue Errno::ENOENT
102
112
  raise "Missing config file: #{config_file}"
103
113
  end
@@ -0,0 +1,19 @@
1
+ module HashRefinement
2
+
3
+ refine Hash do
4
+ def deep_diff(b)
5
+ a = self
6
+ (a.keys | b.keys).inject({}) do |diff, k|
7
+ if a[k] != b[k]
8
+ if a[k].respond_to?(:deep_diff) && b[k].respond_to?(:deep_diff)
9
+ diff[k] = a[k].deep_diff(b[k])
10
+ else
11
+ #diff[k] = b[k] || a[k]
12
+ diff[k] = b.keys.exclude?(k) ? a[k] : b[k]
13
+ end
14
+ end
15
+ diff
16
+ end
17
+ end
18
+ end
19
+ end
@@ -1,3 +1,3 @@
1
1
  module Biran
2
- VERSION = '0.1.9'
2
+ VERSION = '0.1.10'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: biran
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - javierg
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2019-07-24 00:00:00.000000000 Z
13
+ date: 2019-09-30 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: railties
@@ -125,8 +125,9 @@ files:
125
125
  - lib/biran/config.rb
126
126
  - lib/biran/config_defaults.rb
127
127
  - lib/biran/configurinator.rb
128
- - lib/biran/configurinator.rb.debug
128
+ - lib/biran/configurinator.rb.test_changes
129
129
  - lib/biran/erb_config.rb
130
+ - lib/biran/hash_refinement.rb
130
131
  - lib/biran/railtie.rb
131
132
  - lib/biran/version.rb
132
133
  - lib/tasks/biran_tasks.rake