a9n 0.10.0 → 1.0.0

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: 4ee6b81b16b79243d8124f9cc0565dfb4e2da7814c49a1b0fdf564e1db54ba1d
4
- data.tar.gz: 0f09a8578098ca8d894b5dc5fa51030e009dbe175b0ac1d42e1b43d078bb4e0f
3
+ metadata.gz: 2a77715c45124cd831c118cd5d0ff571a4efd4b8a7e7bafd371d4bf88a6e0545
4
+ data.tar.gz: 0ca92c1356056471aec28b75191cf1d7e7d17841e52106ec74e48a8c1f28a497
5
5
  SHA512:
6
- metadata.gz: 324a28691a19dfd3455c55525221c17629e88036adbfad6f819f165e336647d4022c4cf6a1db71546595519447fbab3a94fd343d6faf1911bd710df57f206f45
7
- data.tar.gz: 27ae7fc1b29f3714049a37ee55173dd658cb553435c70cdc12de7e118d6b1e9485e74766a4dacf7f63307d7df1a5cf6765f487bcc884918cd83fcb881ad5792e
6
+ metadata.gz: fe9fcee2acbd6c52f226161736bd57e40937229732100eae8350f33f84563807bb5ef0a782143cb229641ff99904fed73e0838616e3293a5d441c70a2d9a98c2
7
+ data.tar.gz: 3e419258aeda7f5d588c150db0d9171b5bf8065e0e32414045ff9dae7844298118c923fc10ca3d74357dc842427ebcb154c9a4da6f3e5024a0cb0206280929e1
data/.gitignore CHANGED
@@ -2,7 +2,6 @@
2
2
  .bundle
3
3
  .config
4
4
  .yardoc
5
- Gemfile.lock
6
5
  _yardoc
7
6
  coverage
8
7
  doc/
@@ -3,12 +3,11 @@ sudo: false
3
3
  language: ruby
4
4
  cache: bundler
5
5
  rvm:
6
- - 2.5.7
7
- - 2.6.5
8
- before_install: gem install bundler -v 2.0.2
6
+ - 2.5
7
+ - 2.6
8
+ before_install: gem install bundler
9
9
  script:
10
- - bundle exec rspec
11
- - bundle exec rubocop
10
+ - bundle exec rake
12
11
  addons:
13
12
  code_climate:
14
13
  repo_token: 9aa2aa2432639c57772b6917ad9da468709e5536b75617575b02b35201a2eaf8
@@ -0,0 +1,67 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ a9n (1.0.0)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+ ast (2.4.0)
10
+ codeclimate-test-reporter (1.0.9)
11
+ simplecov (<= 0.13)
12
+ coderay (1.1.2)
13
+ diff-lcs (1.3)
14
+ docile (1.1.5)
15
+ jaro_winkler (1.5.3)
16
+ json (2.2.0)
17
+ method_source (0.9.2)
18
+ parallel (1.18.0)
19
+ parser (2.6.5.0)
20
+ ast (~> 2.4.0)
21
+ pry (0.12.2)
22
+ coderay (~> 1.1.0)
23
+ method_source (~> 0.9.0)
24
+ rainbow (3.0.0)
25
+ rake (13.0.0)
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.0)
31
+ rspec-support (~> 3.9.0)
32
+ rspec-expectations (3.9.0)
33
+ diff-lcs (>= 1.2.0, < 2.0)
34
+ rspec-support (~> 3.9.0)
35
+ rspec-mocks (3.9.0)
36
+ diff-lcs (>= 1.2.0, < 2.0)
37
+ rspec-support (~> 3.9.0)
38
+ rspec-support (3.9.0)
39
+ rubocop (0.75.1)
40
+ jaro_winkler (~> 1.5.1)
41
+ parallel (~> 1.10)
42
+ parser (>= 2.6)
43
+ rainbow (>= 2.2.2, < 4.0)
44
+ ruby-progressbar (~> 1.7)
45
+ unicode-display_width (>= 1.4.0, < 1.7)
46
+ ruby-progressbar (1.10.1)
47
+ simplecov (0.13.0)
48
+ docile (~> 1.1.0)
49
+ json (>= 1.8, < 3)
50
+ simplecov-html (~> 0.10.0)
51
+ simplecov-html (0.10.2)
52
+ unicode-display_width (1.6.0)
53
+
54
+ PLATFORMS
55
+ ruby
56
+
57
+ DEPENDENCIES
58
+ a9n!
59
+ codeclimate-test-reporter
60
+ pry
61
+ rake
62
+ rspec
63
+ rubocop
64
+ simplecov
65
+
66
+ BUNDLED WITH
67
+ 2.0.2
data/README.md CHANGED
@@ -10,7 +10,7 @@
10
10
  [codeclimate]: https://codeclimate.com/github/knapo/a9n
11
11
  [coverage]: https://codeclimate.com/github/knapo/a9n
12
12
 
13
- A9n is a simple tool to keep ruby/rails apps configuration maintanable and verifiable. It supports Rails 4+ and Ruby 2.4+.
13
+ A9n is a simple tool to keep ruby/rails apps configuration maintanable and verifiable. It supports Rails 4+ and Ruby 2.5+.
14
14
 
15
15
  Why it's named a9n? It's a numeronym for application (where 9 stands for the number of letters between the first **a** and last **n**, similar to i18n or l10n).
16
16
 
data/Rakefile CHANGED
@@ -1,13 +1,8 @@
1
1
  require 'bundler/gem_tasks'
2
2
  require 'rspec/core/rake_task'
3
-
4
3
  require 'rubocop/rake_task'
5
- RuboCop::RakeTask.new
6
4
 
7
- desc 'Run all specs'
8
- RSpec::Core::RakeTask.new(:spec) do |t|
9
- t.pattern = './spec/**/*_spec.rb'
10
- t.rspec_opts = ['--profile', '--color']
11
- end
5
+ RSpec::Core::RakeTask.new(:spec)
6
+ RuboCop::RakeTask.new
12
7
 
13
- task default: [:spec, :rubocop]
8
+ task default: %i[rubocop spec]
@@ -1,25 +1,31 @@
1
1
  require File.expand_path('lib/a9n/version', __dir__)
2
2
 
3
- Gem::Specification.new do |gem|
4
- gem.authors = ['Krzysztof Knapik']
5
- gem.email = ['knapo@knapo.net']
6
- gem.description = 'a9n - ruby/rails apps configuration manager'
7
- gem.summary = 'a9n is a tool to keep ruby/rails apps extra configuration easily maintainable and verifiable'
8
- gem.homepage = 'https://github.com/knapo/a9n'
9
- gem.license = 'MIT'
10
- gem.files = `git ls-files`.split($OUTPUT_RECORD_SEPARATOR)
11
- gem.executables = gem.files.grep(%r{^exe/}).map { |f| File.basename(f) }
12
- gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
13
- gem.name = 'a9n'
14
- gem.require_paths = ['lib']
15
- gem.version = A9n::VERSION
3
+ Gem::Specification.new do |spec|
4
+ spec.name = 'a9n'
5
+ spec.version = A9n::VERSION
6
+ spec.authors = ['Krzysztof Knapik']
7
+ spec.email = ['knapo@knapo.net']
16
8
 
17
- gem.required_ruby_version = '>= 2.4'
9
+ spec.summary = 'a9n - ruby/rails apps configuration manager'
10
+ spec.homepage = 'https://github.com/knapo/a9n'
11
+ spec.license = 'MIT'
18
12
 
19
- gem.add_development_dependency 'codeclimate-test-reporter'
20
- gem.add_development_dependency 'pry'
21
- gem.add_development_dependency 'rake'
22
- gem.add_development_dependency 'rspec'
23
- gem.add_development_dependency 'rubocop'
24
- gem.add_development_dependency 'simplecov'
13
+ spec.metadata['homepage_uri'] = 'https://github.com/RenoFi/rack-graphql'
14
+ spec.metadata['source_code_uri'] = 'https://github.com/RenoFi/rack-graphql'
15
+
16
+ spec.files = Dir.chdir(__dir__) do
17
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(bin/|spec/|test_app/|\.rub)}) }
18
+ end
19
+ spec.bindir = 'exe'
20
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
+ spec.require_paths = ['lib']
22
+
23
+ spec.required_ruby_version = '>= 2.5'
24
+
25
+ spec.add_development_dependency 'codeclimate-test-reporter'
26
+ spec.add_development_dependency 'pry'
27
+ spec.add_development_dependency 'rake'
28
+ spec.add_development_dependency 'rspec'
29
+ spec.add_development_dependency 'rubocop'
30
+ spec.add_development_dependency 'simplecov'
25
31
  end
@@ -1,3 +1,3 @@
1
1
  module A9n
2
- VERSION = '0.10.0'.freeze
2
+ VERSION = '1.0.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: a9n
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Krzysztof Knapik
8
8
  autorequire:
9
- bindir: bin
9
+ bindir: exe
10
10
  cert_chain: []
11
- date: 2019-10-30 00:00:00.000000000 Z
11
+ date: 2019-12-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: codeclimate-test-reporter
@@ -94,7 +94,7 @@ dependencies:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
- description: a9n - ruby/rails apps configuration manager
97
+ description:
98
98
  email:
99
99
  - knapo@knapo.net
100
100
  executables: []
@@ -103,17 +103,13 @@ extra_rdoc_files: []
103
103
  files:
104
104
  - ".gitignore"
105
105
  - ".rspec"
106
- - ".rspec.example"
107
- - ".rubocop.yml"
108
- - ".ruby-gemset"
109
- - ".ruby-version"
110
106
  - ".travis.yml"
111
107
  - Gemfile
108
+ - Gemfile.lock
112
109
  - LICENSE
113
110
  - README.md
114
111
  - Rakefile
115
112
  - a9n.gemspec
116
- - bin/console
117
113
  - lib/a9n.rb
118
114
  - lib/a9n/capistrano.rb
119
115
  - lib/a9n/capistrano/tasks.cap
@@ -125,24 +121,12 @@ files:
125
121
  - lib/a9n/scope.rb
126
122
  - lib/a9n/struct.rb
127
123
  - lib/a9n/version.rb
128
- - spec/integration/a9n_spec.rb
129
- - spec/spec_helper.rb
130
- - spec/unit/a9n_spec.rb
131
- - spec/unit/loader_spec.rb
132
- - spec/unit/scope_spec.rb
133
- - spec/unit/struct_spec.rb
134
- - test_app/benchmark.rb
135
- - test_app/config/a9n.yml
136
- - test_app/config/a9n.yml.example
137
- - test_app/config/a9n/aws.yml
138
- - test_app/config/a9n/cloud.yml.erb
139
- - test_app/config/a9n/emails.yml
140
- - test_app/config/a9n/mailer.yml.example
141
- - test_app/config/no_defaults.yml
142
124
  homepage: https://github.com/knapo/a9n
143
125
  licenses:
144
126
  - MIT
145
- metadata: {}
127
+ metadata:
128
+ homepage_uri: https://github.com/RenoFi/rack-graphql
129
+ source_code_uri: https://github.com/RenoFi/rack-graphql
146
130
  post_install_message:
147
131
  rdoc_options: []
148
132
  require_paths:
@@ -151,7 +135,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
151
135
  requirements:
152
136
  - - ">="
153
137
  - !ruby/object:Gem::Version
154
- version: '2.4'
138
+ version: '2.5'
155
139
  required_rubygems_version: !ruby/object:Gem::Requirement
156
140
  requirements:
157
141
  - - ">="
@@ -161,12 +145,5 @@ requirements: []
161
145
  rubygems_version: 3.0.6
162
146
  signing_key:
163
147
  specification_version: 4
164
- summary: a9n is a tool to keep ruby/rails apps extra configuration easily maintainable
165
- and verifiable
166
- test_files:
167
- - spec/integration/a9n_spec.rb
168
- - spec/spec_helper.rb
169
- - spec/unit/a9n_spec.rb
170
- - spec/unit/loader_spec.rb
171
- - spec/unit/scope_spec.rb
172
- - spec/unit/struct_spec.rb
148
+ summary: a9n - ruby/rails apps configuration manager
149
+ test_files: []
@@ -1,2 +0,0 @@
1
- --color
2
- --format documentation
@@ -1,45 +0,0 @@
1
- Gemspec/RequiredRubyVersion:
2
- Include:
3
- - 2.5
4
- - 2.6
5
-
6
- Metrics/BlockLength:
7
- Max: 30
8
- Exclude:
9
- - '**/*_spec.rb'
10
-
11
- Metrics/LineLength:
12
- Max: 140
13
-
14
- Metrics/ModuleLength:
15
- Max: 120
16
-
17
- Security/YAMLLoad:
18
- Enabled: false
19
-
20
- Style/BlockDelimiters:
21
- EnforcedStyle: braces_for_chaining
22
-
23
- Style/Documentation:
24
- Enabled: false
25
-
26
- Style/GuardClause:
27
- Enabled: false
28
-
29
- Style/EachWithObject:
30
- Enabled: false
31
-
32
- Style/MethodMissingSuper:
33
- Enabled: false
34
-
35
- Style/MissingRespondToMissing:
36
- Enabled: false
37
-
38
- Style/FrozenStringLiteralComment:
39
- Enabled: false
40
-
41
- Style/SymbolArray:
42
- EnforcedStyle: brackets
43
-
44
- Style/TrivialAccessors:
45
- Enabled: false
@@ -1 +0,0 @@
1
- a9n
@@ -1 +0,0 @@
1
- 2.6.5
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'bundler/setup'
4
- require 'a9n'
5
- require 'pry'
6
- require 'irb'
7
-
8
- IRB.start(__FILE__)
@@ -1,150 +0,0 @@
1
- RSpec.describe A9n do
2
- subject { described_class }
3
-
4
- let(:env) { 'test' }
5
-
6
- before do
7
- clean_singleton(subject)
8
- ENV['ERB_FOO'] = 'erbized foo'
9
- ENV['FOO_PASSWORD'] = 'foo123'
10
- ENV['FOO_KEY'] = 'key123'
11
- ENV['AWS_API_KEY'] = 'ASDF1234'
12
- ENV['API_KEY'] = 'XYZ999'
13
- subject.app = double(env: env)
14
- subject.root = File.expand_path('../../test_app', __dir__)
15
- subject.load
16
- end
17
-
18
- after do
19
- clean_singleton(subject)
20
- ENV.delete('ERB_FOO')
21
- ENV.delete('FOO_PASSWORD')
22
- ENV.delete('FOO_KEY')
23
- ENV.delete('AWS_API_KEY')
24
- ENV.delete('API_KEY')
25
- end
26
-
27
- context 'base config file' do
28
- it do
29
- expect(subject.storage).to be_kind_of(A9n::Struct)
30
- end
31
-
32
- it do
33
- expect(subject.default_foo).to eq('default foo')
34
- expect(subject.overriden_foo).to eq('already overriden foo')
35
- subject.set(:default_foo, 'lazy foo')
36
- subject.set(:overriden_foo, 'hard working foo')
37
- expect(subject.default_foo).to eq('lazy foo')
38
- expect(subject.overriden_foo).to eq('hard working foo')
39
- subject.load
40
- expect(subject.default_foo).to eq('default foo')
41
- expect(subject.overriden_foo).to eq('already overriden foo')
42
- end
43
-
44
- it do
45
- expect(subject.fetch(:default_foo)).to eq('default foo')
46
- expect(subject.fetch(:overriden_foo)).to eq('already overriden foo')
47
- end
48
-
49
- it do
50
- expect { subject.invalid }.to raise_error(A9n::NoSuchConfigurationVariableError)
51
- end
52
-
53
- it do
54
- expect { subject.fetch(:invalid) }.to raise_error(::KeyError)
55
- end
56
-
57
- it do
58
- expect { subject.fetch(:invalid, 'Hello').to eq('Hello') }
59
- end
60
- end
61
-
62
- context 'undefined env' do
63
- let(:env) { 'tropical' }
64
-
65
- it do
66
- expect(subject.default_foo).to eq('default foo')
67
- expect(subject.overriden_foo).to eq('not yet overriden foo')
68
- end
69
-
70
- it do
71
- expect(subject.fetch(:default_foo)).to eq('default foo')
72
- expect(subject.fetch(:overriden_foo)).to eq('not yet overriden foo')
73
- end
74
- end
75
-
76
- context 'extra config file' do
77
- before do
78
- expect(subject.aws).to be_kind_of(A9n::Struct)
79
- end
80
-
81
- it do
82
- expect(subject.aws.username).to eq('joe')
83
- expect(subject.aws.api_key).to eq('ASDF1234')
84
- end
85
-
86
- it do
87
- expect(subject.aws.fetch(:username)).to eq('joe')
88
- expect(subject.aws.fetch(:api_key)).to eq('ASDF1234')
89
- end
90
-
91
- it do
92
- expect(subject.fetch(:aws)).to eq(subject.aws)
93
- end
94
- end
95
-
96
- context 'extra config file with erb' do
97
- before do
98
- expect(subject.cloud).to be_kind_of(A9n::Struct)
99
- end
100
-
101
- it do
102
- expect(subject.cloud.username).to eq('testuser')
103
- expect(subject.cloud.password).to eq('qwerty')
104
- end
105
-
106
- it do
107
- expect(subject.cloud.fetch(:username)).to eq('testuser')
108
- expect(subject.cloud.fetch(:password)).to eq('qwerty')
109
- end
110
-
111
- it do
112
- expect(subject.fetch(:cloud)).to eq(subject.cloud)
113
- end
114
- end
115
-
116
- context 'extra config file with example' do
117
- before do
118
- expect(subject.mailer).to be_kind_of(A9n::Struct)
119
- end
120
-
121
- it do
122
- expect(subject.mailer.delivery_method).to eq('test')
123
- end
124
-
125
- it do
126
- expect(subject.mailer.fetch(:delivery_method)).to eq('test')
127
- end
128
-
129
- it do
130
- expect(subject.fetch(:mailer)).to eq(subject.mailer)
131
- end
132
- end
133
-
134
- context 'extra config file without known namspaces' do
135
- before do
136
- expect(subject.emails).to be_kind_of(A9n::Struct)
137
- end
138
-
139
- it do
140
- expect(subject.emails.knapo).to eq('knapo@a9n.local')
141
- expect(subject.emails.admin).to eq('admin@a9n.local')
142
- expect { subject.emails.foo }.to raise_error(A9n::NoSuchConfigurationVariableError)
143
- end
144
-
145
- it do
146
- expect(subject.emails.fetch(:knapo)).to eq('knapo@a9n.local')
147
- expect(subject.emails.fetch(:admin)).to eq('admin@a9n.local')
148
- end
149
- end
150
- end