rails_config_validator 0.1.2 → 0.2.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 +4 -4
- data/.gitignore +1 -0
- data/README.md +33 -14
- data/Rakefile +3 -3
- data/lib/rails_config_validator/rake_task.rb +27 -11
- data/lib/rails_config_validator/templates/database.schema.yml +26 -0
- data/lib/rails_config_validator/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ff18f579ada65dfbdd3d7c2d2678e04a6f610de8
|
4
|
+
data.tar.gz: af9422fa2f2b1dc175cc853b5991675b4773e32b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3ec6cbd1d5e01d9abfe746f09dc2fcb681eae068e89dfc1e7477af69e15ff4458468e9abe208c9e24a2561acba69eee2c7a07205f4b892f5290541f47afc633a
|
7
|
+
data.tar.gz: 8b23315e6016df39b9a14075e5e9e1da7ca4c714b6e943717d6ef0dd8196f0cded39a4570e2b60056e62561ab9b559baad0d6add6533f970e36289b712de6aca
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -4,41 +4,60 @@
|
|
4
4
|
[](https://gemnasium.com/u2i/rails_config_validator)
|
5
5
|
[](https://codeclimate.com/github/u2i/rails_config_validator)
|
6
6
|
[](https://codeclimate.com/github/u2i/rails_config_validator/coverage)
|
7
|
+
[](http://badge.fury.io/rb/rails_config_validator)
|
7
8
|
|
8
|
-
|
9
|
-
|
10
|
-
TODO: Delete this and the text above, and describe your gem
|
9
|
+
The gem uses [Kwalify](http://www.kuwata-lab.com/kwalify/) schema validator to check Rails configuration files syntax.
|
11
10
|
|
12
11
|
## Installation
|
13
12
|
|
14
|
-
Add this line to your application's Gemfile
|
13
|
+
Add this line to your application's `Gemfile`:
|
15
14
|
|
16
15
|
```ruby
|
17
|
-
gem 'rails_config_validator'
|
16
|
+
gem 'rails_config_validator', '~> 0.1'
|
18
17
|
```
|
19
18
|
|
20
19
|
And then execute:
|
21
20
|
|
22
21
|
$ bundle
|
23
22
|
|
24
|
-
|
23
|
+
Add Rake tasks to `Rakefile`:
|
24
|
+
|
25
|
+
```ruby
|
26
|
+
require 'rails_config_validator/rake_task'
|
27
|
+
RailsConfigValidator::RakeTask.new
|
28
|
+
```
|
29
|
+
|
30
|
+
Run Rake task to copy default `database.yml` schema file and add `config/database.schema.yml` to your version control:
|
31
|
+
|
32
|
+
rake config_validator:init
|
33
|
+
git add config/database.schema.yml
|
25
34
|
|
26
|
-
|
35
|
+
Specify files for which the gem should run validation `config/application.rb` or in environment file:
|
36
|
+
|
37
|
+
```ruby
|
38
|
+
config.config_validator.files = %w(database.yml your-config.yml)
|
39
|
+
```
|
27
40
|
|
28
41
|
## Usage
|
29
42
|
|
30
|
-
|
43
|
+
After deployment the schema can be validated with Rake task:
|
44
|
+
|
45
|
+
export RAILS_ENV=production
|
46
|
+
bundle exec rake config_validator:validate[config/database.yml]
|
31
47
|
|
32
48
|
## Development
|
33
49
|
|
34
|
-
After checking out the repo, run `bin/setup` to install dependencies.
|
50
|
+
After checking out the repo, run `bin/setup` to install dependencies.
|
51
|
+
Then, run `bin/console` for an interactive prompt that will allow you to experiment.
|
52
|
+
|
53
|
+
Use `bundle exec guard` to run `rspec` and `rubocop` on each code change.
|
35
54
|
|
36
|
-
To install this gem onto your local machine, run `bundle exec rake install`.
|
55
|
+
To install this gem onto your local machine, run `bundle exec rake install`.
|
37
56
|
|
38
57
|
## Contributing
|
39
58
|
|
40
|
-
1. Fork it
|
41
|
-
2. Create your feature branch (`git checkout -b my-new-feature`)
|
59
|
+
1. [Fork it](https://github.com/u2i/rails_config_validator/fork)
|
60
|
+
2. Create your feature branch (`git checkout -b feature/my-new-feature`)
|
42
61
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
43
|
-
4. Push to the branch (`git push origin my-new-feature`)
|
44
|
-
5. Create a new Pull Request
|
62
|
+
4. Push to the branch (`git push origin feature/my-new-feature`)
|
63
|
+
5. Create a new Pull Request to branch `develop`.
|
data/Rakefile
CHANGED
@@ -4,20 +4,20 @@ begin
|
|
4
4
|
require 'rspec/core/rake_task'
|
5
5
|
RSpec::Core::RakeTask.new(:spec)
|
6
6
|
rescue LoadError => e
|
7
|
-
puts e
|
7
|
+
STDERR.puts e
|
8
8
|
end
|
9
9
|
|
10
10
|
begin
|
11
11
|
require 'rubocop/rake_task'
|
12
12
|
RuboCop::RakeTask.new(:rubocop)
|
13
13
|
rescue LoadError => e
|
14
|
-
puts e
|
14
|
+
STDERR.puts e
|
15
15
|
end
|
16
16
|
|
17
17
|
begin
|
18
18
|
require 'ci/reporter/rake/rspec'
|
19
19
|
rescue LoadError => e
|
20
|
-
puts e
|
20
|
+
STDERR.puts e
|
21
21
|
end
|
22
22
|
|
23
23
|
task default: [:spec, :rubocop]
|
@@ -3,22 +3,38 @@ require 'rake/tasklib'
|
|
3
3
|
|
4
4
|
module RailsConfigValidator
|
5
5
|
class RakeTask < ::Rake::TaskLib
|
6
|
-
include ::Rake::DSL if defined?(::Rake::DSL)
|
7
|
-
|
8
6
|
def initialize
|
9
7
|
require 'rails_config_validator/validator'
|
10
8
|
|
11
|
-
desc 'Validates Rails config file against YML schema'
|
12
9
|
namespace :config_validator do
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
10
|
+
task_init
|
11
|
+
task_validate
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def task_init
|
18
|
+
desc "Copies database.schema.yml to Rails's config directory"
|
19
|
+
task :init do
|
20
|
+
rake_file_dir = File.expand_path(File.dirname(__FILE__))
|
21
|
+
FileUtils.cp(
|
22
|
+
File.join(rake_file_dir, 'templates', 'database.schema.yml'),
|
23
|
+
File.join(Dir.pwd, 'config')
|
24
|
+
)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def task_validate
|
29
|
+
desc 'Validates Rails config file against YML schema'
|
30
|
+
task :validate, [:config, :schema, :env] do |_, args|
|
31
|
+
config = args[:config]
|
32
|
+
schema = args[:schema]
|
33
|
+
env = args[:env] || Rails.env
|
34
|
+
fail 'Missing parameter :config' if args[:config].nil?
|
18
35
|
|
19
|
-
|
20
|
-
|
21
|
-
end
|
36
|
+
v = RailsConfigValidator::Validator.new(config, env, schema_path: schema)
|
37
|
+
v.valid!
|
22
38
|
end
|
23
39
|
end
|
24
40
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
type: map
|
2
|
+
mapping:
|
3
|
+
adapter:
|
4
|
+
type: str
|
5
|
+
required: true
|
6
|
+
pool:
|
7
|
+
type: int
|
8
|
+
timeout:
|
9
|
+
type: int
|
10
|
+
database:
|
11
|
+
type: str
|
12
|
+
hostname:
|
13
|
+
type: str
|
14
|
+
username:
|
15
|
+
type: str
|
16
|
+
password:
|
17
|
+
type: str
|
18
|
+
socket:
|
19
|
+
type: str
|
20
|
+
encoding:
|
21
|
+
type: str
|
22
|
+
port:
|
23
|
+
type: int
|
24
|
+
range:
|
25
|
+
min: 0
|
26
|
+
max: 65535
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails_config_validator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michał Knapik
|
@@ -229,6 +229,7 @@ files:
|
|
229
229
|
- lib/rails_config_validator/errors.rb
|
230
230
|
- lib/rails_config_validator/railtie.rb
|
231
231
|
- lib/rails_config_validator/rake_task.rb
|
232
|
+
- lib/rails_config_validator/templates/database.schema.yml
|
232
233
|
- lib/rails_config_validator/validator.rb
|
233
234
|
- lib/rails_config_validator/version.rb
|
234
235
|
- rails_config_validator.gemspec
|