a9n 0.10.0 → 1.0.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: 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