biran 0.1.12 → 0.1.13.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
  SHA256:
3
- metadata.gz: 4d14217aa3698d0cf75e5ca704c0601debc6c49768668251af03fa552130666f
4
- data.tar.gz: b99edeb48b785ba764c9cb9ab67a2fb403f3216b20b8c95d315592249a6fd417
3
+ metadata.gz: ec150cd74d08598ecb7d3bfb1324bf57c15e20806c0143b042b257569f430bf6
4
+ data.tar.gz: 7863cf3face519ede43bb1ca24f569112ad83fe8e686c467141c81a13a0b981d
5
5
  SHA512:
6
- metadata.gz: 9d660b2a71857448b2cc1508ba8ee250b850a27f5a14c54b47f0c3fc4d9e200d3ddd6546efd134def3c895e3a010a12389a5cb4a004f539ab13983b75386eb5c
7
- data.tar.gz: 6abba1cd95045a1fb5923edb0d7b360728109d1a3e46ea3736fba9153e8a76234806983803a9cd722ab28669f5bbedd0874d49a55b5940ed4bdf5696172623b7
6
+ metadata.gz: 5464720ba0f9989e9941b77ca1fd54a17388eedd3d044e180689ce58fb7a1da87252e0ccfa09fab514410077ffe18b0a7fbbb52a56a35fce0ebc8ed6b5fb4964
7
+ data.tar.gz: 1edb42ac1ebc49f45d6c60e312a4bd089495fdc11c2c96be0f1f2328f4a8d6bbdb5d14b11dbfe16fae34b8c1ab086b6ee48c82bfe4d0c3d0e8a0400e73a4b907
@@ -0,0 +1,2 @@
1
+ my_config:
2
+ key: value
@@ -0,0 +1,13 @@
1
+ defaults: &defaults
2
+ app:
3
+ base_path: <%= Dir.pwd %>
4
+ use_capistrano: false
5
+ files_to_generate:
6
+ my_config:
7
+ extension: '.yml'
8
+
9
+ test:
10
+ <<: *defaults
11
+
12
+ development:
13
+ <<: *defaults
@@ -114,7 +114,7 @@ module Biran
114
114
  end
115
115
 
116
116
  def sanitize_config_files files_list
117
- lambda do |file, _|
117
+ lambda do |(file, _)|
118
118
  files_list[file] ||= {extension: ''}
119
119
  ext = files_list[file].fetch(:extension, '').strip
120
120
  ext.prepend('.') unless ext.start_with?('.') || ext.empty?
data/lib/biran/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Biran
2
- VERSION = '0.1.12'
2
+ VERSION = '0.1.13.1'
3
3
  end
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: biran
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.12
4
+ version: 0.1.13.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - javierg
8
8
  - brlanier
9
9
  - seancookr
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2020-09-03 00:00:00.000000000 Z
13
+ date: 2021-03-18 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: railties
@@ -44,6 +44,9 @@ dependencies:
44
44
  name: rails
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '5.0'
47
50
  - - ">="
48
51
  - !ruby/object:Gem::Version
49
52
  version: 5.0.7
@@ -51,6 +54,9 @@ dependencies:
51
54
  prerelease: false
52
55
  version_requirements: !ruby/object:Gem::Requirement
53
56
  requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '5.0'
54
60
  - - ">="
55
61
  - !ruby/object:Gem::Version
56
62
  version: 5.0.7
@@ -58,58 +64,58 @@ dependencies:
58
64
  name: bundler
59
65
  requirement: !ruby/object:Gem::Requirement
60
66
  requirements:
61
- - - ">="
67
+ - - "~>"
62
68
  - !ruby/object:Gem::Version
63
- version: '0'
69
+ version: '2.1'
64
70
  type: :development
65
71
  prerelease: false
66
72
  version_requirements: !ruby/object:Gem::Requirement
67
73
  requirements:
68
- - - ">="
74
+ - - "~>"
69
75
  - !ruby/object:Gem::Version
70
- version: '0'
76
+ version: '2.1'
71
77
  - !ruby/object:Gem::Dependency
72
78
  name: rspec
73
79
  requirement: !ruby/object:Gem::Requirement
74
80
  requirements:
75
- - - ">="
81
+ - - "~>"
76
82
  - !ruby/object:Gem::Version
77
- version: '0'
83
+ version: '3.7'
78
84
  type: :development
79
85
  prerelease: false
80
86
  version_requirements: !ruby/object:Gem::Requirement
81
87
  requirements:
82
- - - ">="
88
+ - - "~>"
83
89
  - !ruby/object:Gem::Version
84
- version: '0'
90
+ version: '3.7'
85
91
  - !ruby/object:Gem::Dependency
86
92
  name: tapout
87
93
  requirement: !ruby/object:Gem::Requirement
88
94
  requirements:
89
- - - ">="
95
+ - - "~>"
90
96
  - !ruby/object:Gem::Version
91
- version: '0'
97
+ version: '0.4'
92
98
  type: :development
93
99
  prerelease: false
94
100
  version_requirements: !ruby/object:Gem::Requirement
95
101
  requirements:
96
- - - ">="
102
+ - - "~>"
97
103
  - !ruby/object:Gem::Version
98
- version: '0'
104
+ version: '0.4'
99
105
  - !ruby/object:Gem::Dependency
100
106
  name: rspec-ontap
101
107
  requirement: !ruby/object:Gem::Requirement
102
108
  requirements:
103
- - - ">="
109
+ - - "~>"
104
110
  - !ruby/object:Gem::Version
105
- version: '0'
111
+ version: '0.3'
106
112
  type: :development
107
113
  prerelease: false
108
114
  version_requirements: !ruby/object:Gem::Requirement
109
115
  requirements:
110
- - - ">="
116
+ - - "~>"
111
117
  - !ruby/object:Gem::Version
112
- version: '0'
118
+ version: '0.3'
113
119
  description: Biran is the guy that will help you generate config files for your rail
114
120
  app.
115
121
  email:
@@ -121,14 +127,14 @@ files:
121
127
  - MIT-LICENSE
122
128
  - README.md
123
129
  - Rakefile
130
+ - config/_my_config.yml.erb
131
+ - config/app_config.yml
124
132
  - lib/biran.rb
125
133
  - lib/biran/config.rb
126
134
  - lib/biran/config_defaults.rb
127
135
  - lib/biran/configurinator.rb
128
- - lib/biran/configurinator.rb.test_changes
129
136
  - lib/biran/erb_config.rb
130
137
  - lib/biran/exceptions.rb
131
- - lib/biran/hash_refinement.rb
132
138
  - lib/biran/railtie.rb
133
139
  - lib/biran/version.rb
134
140
  - lib/tasks/biran_tasks.rake
@@ -136,7 +142,7 @@ homepage: https://github.com/amco/biran
136
142
  licenses:
137
143
  - MIT
138
144
  metadata: {}
139
- post_install_message:
145
+ post_install_message:
140
146
  rdoc_options: []
141
147
  require_paths:
142
148
  - lib
@@ -151,8 +157,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
151
157
  - !ruby/object:Gem::Version
152
158
  version: '0'
153
159
  requirements: []
154
- rubygems_version: 3.0.3
155
- signing_key:
160
+ rubygems_version: 3.2.3
161
+ signing_key:
156
162
  specification_version: 4
157
163
  summary: Helper for generating config generate tasks.
158
164
  test_files: []
@@ -1,155 +0,0 @@
1
- require 'biran/hash_refinement'
2
-
3
- module Biran
4
- class Configurinator
5
- include ConfigDefaults
6
- using HashRefinement
7
-
8
- DEFAULT_ENV = 'development'
9
-
10
- attr_reader :config, :db_config, :env
11
-
12
- class << self
13
- attr_accessor :config
14
-
15
- def configure
16
- self.config ||= Config.instance
17
- yield config
18
- end
19
- end
20
-
21
- def initialize(env: nil)
22
- @env = env || app_env
23
- @config = build_app_config
24
- end
25
-
26
- def file_tasks
27
- files_to_generate.keys
28
- end
29
-
30
- def files_to_generate
31
- @files_to_generate ||= config.fetch(:app, {})
32
- .fetch(:files_to_generate, configuration.files_to_generate)
33
- .tap { |files_list| files_list.each(&sanitize_config_files(files_list)) }
34
- end
35
-
36
- def create(name:, extension:, output_dir: nil, output_name: nil)
37
- output_dir ||= config_dir
38
- output_name ||= name
39
- generated_file = ERBConfig.new(filtered_config, name, extension, config_dir, output_dir, output_name)
40
- generated_file.bindings = bindings
41
- generated_file.save!
42
- end
43
-
44
- private
45
-
46
- def build_app_config
47
- raise 'Environment not set to build the application config' unless @env
48
- app_config = {
49
- app_root_dir: app_root,
50
- app_shared_dir: app_shared_dir,
51
- app_base_dir: app_base,
52
- env: env,
53
- local_config_file: local_config_file,
54
- secrets_file_path: secrets_file,
55
- vhost: config_vhost_dirs
56
- }
57
-
58
- app_config.deep_merge! app_config_defaults
59
- app_config[:secrets].deep_merge! get_secret_contents(app_config)
60
- app_config[:db_config] = build_db_config
61
-
62
- app_config.deep_merge! local_config_file_contents
63
-
64
- puts "app config final is #{app_config.inspect}"
65
- app_config
66
- end
67
-
68
- def build_db_config
69
- default_db_config = base_db_config
70
- return default_db_config unless File.exist? db_config_override_file
71
- default_db_config.deep_merge! process_config_file(db_config_override_file)
72
- end
73
-
74
- def base_db_config
75
- return @base_db_config if @base_db_config
76
- return @base_db_config = {} unless File.exists? default_db_config_file
77
- @base_db_config ||= process_config_file(default_db_config_file)
78
- end
79
-
80
- def app_config_defaults
81
- return @app_config_defaults if @app_config_defaults
82
- app_config_file = File.join(configuration.config_dirname, configuration.config_filename)
83
- app_defaults = app_defaults_init.dup
84
- config_properties = process_config_file(app_config_file)
85
- @app_config_defaults = app_defaults.deep_merge! config_properties
86
- end
87
-
88
- def process_config_file(config_file)
89
- config_file_contents = File.read(config_file)
90
- config_file_contents = ERB.new(config_file_contents).result
91
- config_file_contents = YAML.safe_load(config_file_contents, [], [], true)
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!
111
- rescue Errno::ENOENT
112
- raise "Missing config file: #{config_file}"
113
- end
114
-
115
- def config_vhost_dirs
116
- {
117
- public_dir: File.join(app_root, vhost_public_dirname),
118
- shared_dir: app_shared_dir.to_s,
119
- log_dir: File.join(app_root, 'log'),
120
- pids_dir: File.join(app_root, 'tmp', 'pids')
121
- }
122
- end
123
-
124
- def local_config_file_contents
125
- return @local_config_contents if @local_config_contents
126
- return @local_config_conents = {} unless File.exists? local_config_file
127
- @local_config_contents = process_config_file(local_config_file)
128
- end
129
-
130
- def get_secret_contents(app_config)
131
- secrets_file_contents = {}
132
- if File.exist? app_config[:secrets_file_path]
133
- secrets_file_contents = process_config_file app_config[:secrets_file_path]
134
- end
135
- secrets_file_contents
136
- end
137
-
138
- def sanitize_config_files files_list
139
- lambda do |file, _|
140
- files_list[file] ||= {extension: ''}
141
- ext = files_list[file].fetch(:extension, '').strip
142
- ext.prepend('.') unless ext.start_with?('.') || ext.empty?
143
- files_list[file][:extension] = ext
144
- end
145
- end
146
-
147
- def filtered_config
148
- @filtered_config ||= config.except(*configuration.app_setup_blocks)
149
- end
150
-
151
- def use_capistrano?
152
- app_config_defaults[:app][:use_capistrano]
153
- end
154
- end
155
- end
@@ -1,19 +0,0 @@
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