a9n 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fca032540da11055ed22e392e1c2024cda311a6785c4046837fd5b9732d4bfb1
4
- data.tar.gz: 5aa10ab6b540ccfbb44bfc043de67a4e6f5a4baa0027063af5b06d123b8cb6bd
3
+ metadata.gz: 393819f7834f54def787d8aa094136300842604f1f30310e4b0fd0ae2fb9740d
4
+ data.tar.gz: 4577b0ef262d299c979df2e26015443d991d5c39ea15b7d55c610c35784f0216
5
5
  SHA512:
6
- metadata.gz: d916422540256299c914740bef44289464c5ae259c46dddfb864d579279e7f43fe869071c724b3cf7d4b406b227ef529c48b3440c6fa02473890ceab71a5f623
7
- data.tar.gz: 75ebd13b032d9132c0c565a3309e93792cf297a5fc0ddaa8634fba7afac4620b7abca91ee5e32b5c3b2095d03218686e41696c5f01f647fb19e869afb59a9740
6
+ metadata.gz: d04d4642b987bdb4c2707f0754d20941062ab8e333f43a9f6fef085e2cfeecb4a1347eac5e08ceee78a1effbf2874b88c7976dcbf15c971e1492941f52ac6c0c
7
+ data.tar.gz: 81418b9a67cbd97571a6b659306061bd67a96be7eddaec2f85701a725397776eb01b2c616e2f2061e020337bad2136612e1d1279196df9d2908b0caa0f44e301
@@ -0,0 +1,25 @@
1
+ name: Ruby
2
+
3
+ on:
4
+ push:
5
+ branches: [ main ]
6
+ pull_request:
7
+ branches: [ main ]
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ matrix:
14
+ ruby-version: ['2.7', '3.0', '3.1']
15
+
16
+ steps:
17
+ - uses: actions/checkout@v2
18
+ - name: Set up Ruby
19
+ uses: ruby/setup-ruby@v1
20
+ with:
21
+ ruby-version: ${{ matrix.ruby-version }}
22
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
23
+
24
+ - name: Run tests
25
+ run: bundle exec rake ci
data/Gemfile.lock CHANGED
@@ -1,67 +1,69 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- a9n (1.2.0)
4
+ a9n (1.3.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- ast (2.4.0)
10
- codeclimate-test-reporter (1.0.7)
11
- simplecov
12
- coderay (1.1.2)
13
- diff-lcs (1.3)
14
- docile (1.3.2)
15
- jaro_winkler (1.5.4)
16
- method_source (0.9.2)
17
- parallel (1.19.1)
18
- parser (2.7.0.4)
19
- ast (~> 2.4.0)
20
- pry (0.12.2)
21
- coderay (~> 1.1.0)
22
- method_source (~> 0.9.0)
23
- rainbow (3.0.0)
24
- rake (13.0.1)
25
- rexml (3.2.4)
26
- rspec (3.9.0)
27
- rspec-core (~> 3.9.0)
28
- rspec-expectations (~> 3.9.0)
29
- rspec-mocks (~> 3.9.0)
30
- rspec-core (3.9.1)
31
- rspec-support (~> 3.9.1)
32
- rspec-expectations (3.9.0)
9
+ ast (2.4.2)
10
+ coderay (1.1.3)
11
+ diff-lcs (1.5.0)
12
+ method_source (1.0.0)
13
+ parallel (1.21.0)
14
+ parser (3.1.0.0)
15
+ ast (~> 2.4.1)
16
+ pry (0.14.1)
17
+ coderay (~> 1.1)
18
+ method_source (~> 1.0)
19
+ rainbow (3.1.1)
20
+ rake (13.0.6)
21
+ regexp_parser (2.2.1)
22
+ rexml (3.2.5)
23
+ rspec (3.11.0)
24
+ rspec-core (~> 3.11.0)
25
+ rspec-expectations (~> 3.11.0)
26
+ rspec-mocks (~> 3.11.0)
27
+ rspec-core (3.11.0)
28
+ rspec-support (~> 3.11.0)
29
+ rspec-expectations (3.11.0)
33
30
  diff-lcs (>= 1.2.0, < 2.0)
34
- rspec-support (~> 3.9.0)
35
- rspec-mocks (3.9.1)
31
+ rspec-support (~> 3.11.0)
32
+ rspec-mocks (3.11.0)
36
33
  diff-lcs (>= 1.2.0, < 2.0)
37
- rspec-support (~> 3.9.0)
38
- rspec-support (3.9.2)
39
- rubocop (0.80.1)
40
- jaro_winkler (~> 1.5.1)
34
+ rspec-support (~> 3.11.0)
35
+ rspec-support (3.11.0)
36
+ rubocop (1.25.1)
41
37
  parallel (~> 1.10)
42
- parser (>= 2.7.0.1)
38
+ parser (>= 3.1.0.0)
43
39
  rainbow (>= 2.2.2, < 4.0)
40
+ regexp_parser (>= 1.8, < 3.0)
44
41
  rexml
42
+ rubocop-ast (>= 1.15.1, < 2.0)
45
43
  ruby-progressbar (~> 1.7)
46
- unicode-display_width (>= 1.4.0, < 1.7)
47
- ruby-progressbar (1.10.1)
48
- simplecov (0.18.5)
49
- docile (~> 1.1)
50
- simplecov-html (~> 0.11)
51
- simplecov-html (0.12.2)
52
- unicode-display_width (1.6.1)
44
+ unicode-display_width (>= 1.4.0, < 3.0)
45
+ rubocop-ast (1.15.2)
46
+ parser (>= 3.0.1.1)
47
+ rubocop-rake (0.6.0)
48
+ rubocop (~> 1.0)
49
+ rubocop-rspec (2.8.0)
50
+ rubocop (~> 1.19)
51
+ ruby-progressbar (1.11.0)
52
+ unicode-display_width (2.1.0)
53
53
 
54
54
  PLATFORMS
55
- ruby
55
+ x86_64-darwin-20
56
+ x86_64-darwin-21
57
+ x86_64-linux
56
58
 
57
59
  DEPENDENCIES
58
60
  a9n!
59
- codeclimate-test-reporter
60
61
  pry
61
62
  rake
62
63
  rspec
63
64
  rubocop
64
- simplecov
65
+ rubocop-rake
66
+ rubocop-rspec
65
67
 
66
68
  BUNDLED WITH
67
- 2.0.2
69
+ 2.3.7
data/README.md CHANGED
@@ -1,9 +1,9 @@
1
1
  # A9n
2
2
 
3
- [![Gem Version](https://badge.fury.io/rb/a9n.png)][gem_version]
4
- [![Build status](https://secure.travis-ci.org/knapo/a9n.png)][travis]
5
- [![Maintainability](https://api.codeclimate.com/v1/badges/4deae86e0cb581aae0e3/maintainability)](https://codeclimate.com/github/kknapik/a9n/maintainability)
6
- [![Test Coverage](https://api.codeclimate.com/v1/badges/4deae86e0cb581aae0e3/test_coverage)](https://codeclimate.com/github/kknapik/a9n/test_coverage)
3
+ [![Gem Version](https://badge.fury.io/rb/a9n.svg)][gem_version]
4
+ [![Build status](https://secure.travis-ci.org/knapo/a9n.svg)][travis]
5
+ [![Maintainability](https://api.codeclimate.com/v1/badges/566c2c51f1a383d18be8/maintainability)](https://codeclimate.com/github/knapo/a9n/maintainability)
6
+ [![Test Coverage](https://api.codeclimate.com/v1/badges/566c2c51f1a383d18be8/test_coverage)](https://codeclimate.com/github/knapo/a9n/test_coverage)
7
7
 
8
8
  [gem_version]: https://rubygems.org/gems/a9n
9
9
  [travis]: http://travis-ci.org/knapo/a9n
data/Rakefile CHANGED
@@ -5,4 +5,7 @@ require 'rubocop/rake_task'
5
5
  RSpec::Core::RakeTask.new(:spec)
6
6
  RuboCop::RakeTask.new
7
7
 
8
- task default: %i[rubocop spec]
8
+ desc 'Default task to run on ci'
9
+ task ci: %i[spec rubocop]
10
+
11
+ task default: %i[spec rubocop:auto_correct]
data/a9n.gemspec CHANGED
@@ -12,6 +12,7 @@ Gem::Specification.new do |spec|
12
12
 
13
13
  spec.metadata['homepage_uri'] = 'https://github.com/knapo/a9n'
14
14
  spec.metadata['source_code_uri'] = 'https://github.com/knapo/a9n'
15
+ spec.metadata['rubygems_mfa_required'] = 'true'
15
16
 
16
17
  spec.files = Dir.chdir(__dir__) do
17
18
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(bin/|spec/|test_app/|\.rub)}) }
@@ -20,12 +21,12 @@ Gem::Specification.new do |spec|
20
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
22
  spec.require_paths = ['lib']
22
23
 
23
- spec.required_ruby_version = '>= 2.5'
24
+ spec.required_ruby_version = '>= 2.7'
24
25
 
25
- spec.add_development_dependency 'codeclimate-test-reporter'
26
26
  spec.add_development_dependency 'pry'
27
27
  spec.add_development_dependency 'rake'
28
28
  spec.add_development_dependency 'rspec'
29
29
  spec.add_development_dependency 'rubocop'
30
- spec.add_development_dependency 'simplecov'
30
+ spec.add_development_dependency 'rubocop-rake'
31
+ spec.add_development_dependency 'rubocop-rspec'
31
32
  end
@@ -1,5 +1,5 @@
1
1
  if defined?(Capistrano::Configuration.instance)
2
- require 'a9n/capistrano/ver2x.rb'
2
+ require 'a9n/capistrano/ver2x'
3
3
  else
4
4
  load File.expand_path('capistrano/tasks.cap', __dir__)
5
5
  end
data/lib/a9n/loader.rb CHANGED
@@ -30,7 +30,7 @@ module A9n
30
30
  def load_yml(file_path, scope, env)
31
31
  return nil unless File.exist?(file_path)
32
32
 
33
- yml = YAML.load(ERB.new(File.read(file_path)).result)
33
+ yml = A9n::YamlLoader.load(file_path)
34
34
 
35
35
  if no_known_namespaces?(yml)
36
36
  prepare_hash(yml, scope).freeze
data/lib/a9n/struct.rb CHANGED
@@ -18,8 +18,8 @@ module A9n
18
18
  end
19
19
 
20
20
  def find(key)
21
- if data.key?(key)
22
- fetch(key)
21
+ if key && data.key?(key.to_sym)
22
+ fetch(key.to_sym)
23
23
  else
24
24
  raise KeyNotFoundError.new, "Could not find #{key} in #{data.keys.inspect}"
25
25
  end
data/lib/a9n/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module A9n
2
- VERSION = '1.2.0'.freeze
2
+ VERSION = '1.3.0'.freeze
3
3
  end
@@ -0,0 +1,8 @@
1
+ module A9n
2
+ class YamlLoader
3
+ def self.load(file_path)
4
+ kwargs = RUBY_VERSION >= '3.1.0' ? { aliases: true } : {}
5
+ YAML.load(ERB.new(File.read(file_path)).result, **kwargs)
6
+ end
7
+ end
8
+ end
data/lib/a9n.rb CHANGED
@@ -10,6 +10,7 @@ require 'a9n/struct'
10
10
  require 'a9n/scope'
11
11
  require 'a9n/ext/string_inquirer'
12
12
  require 'a9n/ext/hash'
13
+ require 'a9n/yaml_loader'
13
14
  require 'a9n/loader'
14
15
 
15
16
  module A9n
@@ -20,6 +21,8 @@ module A9n
20
21
  DEFAULT_LOG_LEVEL = 'info'.freeze
21
22
 
22
23
  class << self
24
+ attr_writer :logger
25
+
23
26
  def env
24
27
  @env ||= ::A9n::StringInquirer.new(
25
28
  app_env ||
@@ -111,7 +114,7 @@ module A9n
111
114
  end
112
115
 
113
116
  def logger
114
- @logger ||= ::Logger.new(STDOUT, level: fetch(:log_level, DEFAULT_LOG_LEVEL))
117
+ @logger ||= ::Logger.new($stdout, level: fetch(:log_level, DEFAULT_LOG_LEVEL))
115
118
  end
116
119
 
117
120
  def method_missing(name, *args)
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: a9n
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Krzysztof Knapik
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-03-11 00:00:00.000000000 Z
11
+ date: 2022-02-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: codeclimate-test-reporter
14
+ name: pry
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
@@ -25,7 +25,7 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: pry
28
+ name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rake
42
+ name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -53,7 +53,7 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: rspec
56
+ name: rubocop
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
@@ -67,7 +67,7 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: rubocop
70
+ name: rubocop-rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
@@ -81,7 +81,7 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: simplecov
84
+ name: rubocop-rspec
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="
@@ -94,16 +94,16 @@ dependencies:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
- description:
97
+ description:
98
98
  email:
99
99
  - knapo@knapo.net
100
100
  executables: []
101
101
  extensions: []
102
102
  extra_rdoc_files: []
103
103
  files:
104
+ - ".github/workflows/ruby.yml"
104
105
  - ".gitignore"
105
106
  - ".rspec"
106
- - ".travis.yml"
107
107
  - Gemfile
108
108
  - Gemfile.lock
109
109
  - LICENSE
@@ -121,13 +121,15 @@ files:
121
121
  - lib/a9n/scope.rb
122
122
  - lib/a9n/struct.rb
123
123
  - lib/a9n/version.rb
124
+ - lib/a9n/yaml_loader.rb
124
125
  homepage: https://github.com/knapo/a9n
125
126
  licenses:
126
127
  - MIT
127
128
  metadata:
128
129
  homepage_uri: https://github.com/knapo/a9n
129
130
  source_code_uri: https://github.com/knapo/a9n
130
- post_install_message:
131
+ rubygems_mfa_required: 'true'
132
+ post_install_message:
131
133
  rdoc_options: []
132
134
  require_paths:
133
135
  - lib
@@ -135,15 +137,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
135
137
  requirements:
136
138
  - - ">="
137
139
  - !ruby/object:Gem::Version
138
- version: '2.5'
140
+ version: '2.7'
139
141
  required_rubygems_version: !ruby/object:Gem::Requirement
140
142
  requirements:
141
143
  - - ">="
142
144
  - !ruby/object:Gem::Version
143
145
  version: '0'
144
146
  requirements: []
145
- rubygems_version: 3.0.6
146
- signing_key:
147
+ rubygems_version: 3.3.3
148
+ signing_key:
147
149
  specification_version: 4
148
150
  summary: a9n - ruby/rails apps configuration manager
149
151
  test_files: []
data/.travis.yml DELETED
@@ -1,14 +0,0 @@
1
- ---
2
- sudo: false
3
- language: ruby
4
- cache: bundler
5
- rvm:
6
- - 2.5
7
- - 2.6
8
- - 2.7
9
- before_install: gem install bundler
10
- script:
11
- - bundle exec rake
12
- addons:
13
- code_climate:
14
- repo_token: 9aa2aa2432639c57772b6917ad9da468709e5536b75617575b02b35201a2eaf8