warder 0.3.1 → 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/features/step_definitions/checks_for_rails_security_issues_steps.rb +2 -1
- data/features/step_definitions/run_steps.rb +2 -2
- data/features/support/env.rb +4 -2
- data/lib/warder.rb +2 -1
- data/lib/warder/arguments.rb +104 -0
- data/lib/warder/aruba_app.rb +20 -0
- data/lib/warder/cli.rb +7 -19
- data/lib/warder/version.rb +1 -1
- data/spec/fixtures/invalid_rails_app/config.ru +1 -1
- data/spec/fixtures/valid_rails_app/Gemfile +1 -1
- data/spec/fixtures/valid_rails_app/Gemfile_lock +46 -44
- data/spec/fixtures/valid_rails_app/config.ru +1 -1
- data/warder.gemspec +9 -9
- metadata +23 -28
- data/lib/warder/cli/arguments.rb +0 -107
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9a9860813b6cf0f11289b9a7272fac12d7151f39
|
4
|
+
data.tar.gz: 8362ff15175f9c7cccaa542daddc7ac38918a503
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 70fc86147b403485a2e1d01e6629670bdd1b84f59c19d1a27d8f2d4c847a8e25cf7a285f2715f3d5a418d8104e2b49fddca5c55a8c66e15b1b51e15151992b72
|
7
|
+
data.tar.gz: 5296b0b893355b53f03cd81f5e9c68bdc42b6c6fcf99e335ff5bbd353642eb6389fc8138245efa072d0ff7870d8490487266f794863a8ff3ec4334903d09521c
|
@@ -19,5 +19,6 @@ Given(/^I have ((in)?valid_rails_app) project in directory$/) do |name, _|
|
|
19
19
|
end
|
20
20
|
|
21
21
|
Given(/^I am on project directory$/) do
|
22
|
-
|
22
|
+
dir = Aruba::ArubaPath.new("tmp/aruba/#{@projectname}")
|
23
|
+
aruba.instance_variable_set('@current_directory', dir)
|
23
24
|
end
|
@@ -18,10 +18,10 @@ Then(/^warder does nothing$/) do
|
|
18
18
|
end
|
19
19
|
|
20
20
|
Then(/^warder detects( no)? (.+) (issues|violations)$/) do |no, what, _|
|
21
|
-
executing_output = send(:"executing_#{what.
|
21
|
+
executing_output = send(:"executing_#{what.tr(' ', '_')}")
|
22
22
|
step "the output should#{' not' if no} contain \"#{executing_output}\""
|
23
23
|
|
24
|
-
validation_output = send(:"#{what.
|
24
|
+
validation_output = send(:"#{what.tr(' ', '_')}_output")
|
25
25
|
validation_output.split("\n").each do |string|
|
26
26
|
step "the output should#{' not' if no} contain \"#{string}\""
|
27
27
|
end
|
data/features/support/env.rb
CHANGED
@@ -17,5 +17,7 @@ ENV['PATH'] = "#{bin_path}#{File::PATH_SEPARATOR}#{ENV['PATH']}"
|
|
17
17
|
|
18
18
|
require 'warder'
|
19
19
|
|
20
|
-
Aruba.
|
21
|
-
|
20
|
+
Aruba.configure do |config|
|
21
|
+
config.command_launcher = :in_process
|
22
|
+
config.main_class = Warder::CLI
|
23
|
+
end
|
data/lib/warder.rb
CHANGED
@@ -11,7 +11,8 @@ require 'warder/rails_advice_runner'
|
|
11
11
|
require 'warder/sandi_rules_runner'
|
12
12
|
require 'warder/bundle_audit_runner'
|
13
13
|
require 'warder/coffee_lint_runner'
|
14
|
-
require 'warder/
|
14
|
+
require 'warder/aruba_app'
|
15
|
+
require 'warder/arguments'
|
15
16
|
require 'warder/cli'
|
16
17
|
|
17
18
|
# scope for validators
|
@@ -0,0 +1,104 @@
|
|
1
|
+
require 'optparse'
|
2
|
+
|
3
|
+
module Warder
|
4
|
+
# responsible for parsing cli arguments
|
5
|
+
class Arguments
|
6
|
+
def initialize(argv, stdout, kernel)
|
7
|
+
@argv = argv
|
8
|
+
@stdout = stdout
|
9
|
+
@kernel = kernel
|
10
|
+
@options = {}
|
11
|
+
end
|
12
|
+
|
13
|
+
def parse
|
14
|
+
parse_options
|
15
|
+
assign_files
|
16
|
+
OpenStruct.new(@options)
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def parse_options
|
22
|
+
OptionParser.new do |opts|
|
23
|
+
quiet(opts)
|
24
|
+
stats(opts)
|
25
|
+
combined(opts)
|
26
|
+
validators(opts)
|
27
|
+
end.parse!(@argv)
|
28
|
+
end
|
29
|
+
|
30
|
+
def assign_files
|
31
|
+
@options['files'] = @argv.empty? ? '.' : @argv.join(' ')
|
32
|
+
end
|
33
|
+
|
34
|
+
def combined(opts)
|
35
|
+
version(opts)
|
36
|
+
opts.banner = 'Usage: warder [options] [dir1 file1 file2 ...]'
|
37
|
+
all(opts)
|
38
|
+
rails(opts)
|
39
|
+
end
|
40
|
+
|
41
|
+
def version(opts)
|
42
|
+
opts.on('-v', '--version', 'Show version') do |_|
|
43
|
+
@stdout.puts Warder::VERSION
|
44
|
+
@kernel.exit 0
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def quiet(opts)
|
49
|
+
opts.on('-q', '--quiet', 'Do not echo validators output.') do
|
50
|
+
@options['quiet'] = true
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def stats(opts)
|
55
|
+
opts.on('-t', '--[no-]stats', 'Print statistics.') do |value|
|
56
|
+
@options['stats'] = value
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def all(opts)
|
61
|
+
opts.on('-A', '--all', 'Run all validators') do |value|
|
62
|
+
all_validators(value)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def all_validators(value)
|
67
|
+
Warder.validators.each do |validator|
|
68
|
+
full_option = validator::CLI_FULL_OPTION
|
69
|
+
@options[full_option] = value
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
def rails(opts)
|
74
|
+
desc = 'Run rails related validators'
|
75
|
+
opts.on('-R', '--[no-]rails', desc) do |value|
|
76
|
+
rails_validators(value)
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
def rails_validators(value)
|
81
|
+
Warder.validators.each do |validator|
|
82
|
+
next unless validator.to_s.match(/\AWarder::Rails/)
|
83
|
+
full_option = validator::CLI_FULL_OPTION
|
84
|
+
@options[full_option] = value
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
def validators(opts)
|
89
|
+
Warder.validators.each do |validator|
|
90
|
+
validator(opts, validator)
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
def validator(opts, validator)
|
95
|
+
option = validator::CLI_OPTION
|
96
|
+
full_option = validator::CLI_FULL_OPTION
|
97
|
+
desc = validator::DESCRIPTION
|
98
|
+
|
99
|
+
opts.on("-#{option}", "--[no-]#{full_option}", desc) do |value|
|
100
|
+
@options[full_option] = value
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Warder
|
2
|
+
# responsible for aruba cli app test integration
|
3
|
+
class ArubaApp
|
4
|
+
def initialize(argv, stdin = STDIN, stdout = STDOUT,
|
5
|
+
stderr = STDERR, kernel = Kernel)
|
6
|
+
@stdin = stdin
|
7
|
+
@stdout = stdout
|
8
|
+
@stderr = stderr
|
9
|
+
@kernel = kernel
|
10
|
+
argv
|
11
|
+
end
|
12
|
+
|
13
|
+
def execute!
|
14
|
+
@kernel.exit execute || 0
|
15
|
+
end
|
16
|
+
|
17
|
+
def execute
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/warder/cli.rb
CHANGED
@@ -1,38 +1,26 @@
|
|
1
1
|
module Warder
|
2
2
|
# responsible for cli integration
|
3
|
-
class CLI
|
3
|
+
class CLI < ArubaApp
|
4
4
|
def initialize(argv, stdin = STDIN, stdout = STDOUT,
|
5
5
|
stderr = STDERR, kernel = Kernel)
|
6
|
+
super
|
6
7
|
@argv = argv
|
7
|
-
@stdin = stdin
|
8
|
-
@stdout = stdout
|
9
|
-
@stderr = stderr
|
10
|
-
@kernel = kernel
|
11
|
-
end
|
12
|
-
|
13
|
-
def execute!
|
14
|
-
@kernel.exit execute
|
15
8
|
end
|
16
9
|
|
17
10
|
private
|
18
11
|
|
19
12
|
def execute
|
20
|
-
|
13
|
+
options = Arguments.new(@argv, @stdout, @kernel).parse
|
21
14
|
exit_codes = Warder.validators.map do |validator|
|
22
|
-
perform_validation(validator)
|
15
|
+
perform_validation(validator, options)
|
23
16
|
end
|
24
17
|
exit_codes.compact.inject(0, :+)
|
25
18
|
end
|
26
19
|
|
27
|
-
def
|
28
|
-
args = Arguments.new(@argv, @stdout, @kernel)
|
29
|
-
@options = args.parse
|
30
|
-
end
|
31
|
-
|
32
|
-
def perform_validation(validator)
|
20
|
+
def perform_validation(validator, options)
|
33
21
|
key = validator::CLI_FULL_OPTION
|
34
|
-
return 0 unless
|
35
|
-
runner = validator.new(@stdout,
|
22
|
+
return 0 unless options.send(key)
|
23
|
+
runner = validator.new(@stdout, options)
|
36
24
|
runner.perform
|
37
25
|
end
|
38
26
|
end
|
data/lib/warder/version.rb
CHANGED
@@ -1,92 +1,94 @@
|
|
1
1
|
GEM
|
2
2
|
remote: https://rubygems.org/
|
3
3
|
specs:
|
4
|
-
actionmailer (4.2.
|
5
|
-
actionpack (= 4.2.
|
6
|
-
actionview (= 4.2.
|
7
|
-
activejob (= 4.2.
|
4
|
+
actionmailer (4.2.5)
|
5
|
+
actionpack (= 4.2.5)
|
6
|
+
actionview (= 4.2.5)
|
7
|
+
activejob (= 4.2.5)
|
8
8
|
mail (~> 2.5, >= 2.5.4)
|
9
9
|
rails-dom-testing (~> 1.0, >= 1.0.5)
|
10
|
-
actionpack (4.2.
|
11
|
-
actionview (= 4.2.
|
12
|
-
activesupport (= 4.2.
|
10
|
+
actionpack (4.2.5)
|
11
|
+
actionview (= 4.2.5)
|
12
|
+
activesupport (= 4.2.5)
|
13
13
|
rack (~> 1.6)
|
14
14
|
rack-test (~> 0.6.2)
|
15
15
|
rails-dom-testing (~> 1.0, >= 1.0.5)
|
16
16
|
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
17
|
-
actionview (4.2.
|
18
|
-
activesupport (= 4.2.
|
17
|
+
actionview (4.2.5)
|
18
|
+
activesupport (= 4.2.5)
|
19
19
|
builder (~> 3.1)
|
20
20
|
erubis (~> 2.7.0)
|
21
21
|
rails-dom-testing (~> 1.0, >= 1.0.5)
|
22
22
|
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
23
|
-
activejob (4.2.
|
24
|
-
activesupport (= 4.2.
|
23
|
+
activejob (4.2.5)
|
24
|
+
activesupport (= 4.2.5)
|
25
25
|
globalid (>= 0.3.0)
|
26
|
-
activemodel (4.2.
|
27
|
-
activesupport (= 4.2.
|
26
|
+
activemodel (4.2.5)
|
27
|
+
activesupport (= 4.2.5)
|
28
28
|
builder (~> 3.1)
|
29
|
-
activerecord (4.2.
|
30
|
-
activemodel (= 4.2.
|
31
|
-
activesupport (= 4.2.
|
29
|
+
activerecord (4.2.5)
|
30
|
+
activemodel (= 4.2.5)
|
31
|
+
activesupport (= 4.2.5)
|
32
32
|
arel (~> 6.0)
|
33
|
-
activesupport (4.2.
|
33
|
+
activesupport (4.2.5)
|
34
34
|
i18n (~> 0.7)
|
35
35
|
json (~> 1.7, >= 1.7.7)
|
36
36
|
minitest (~> 5.1)
|
37
37
|
thread_safe (~> 0.3, >= 0.3.4)
|
38
38
|
tzinfo (~> 1.1)
|
39
|
-
arel (6.0.
|
39
|
+
arel (6.0.3)
|
40
40
|
builder (3.2.2)
|
41
|
+
concurrent-ruby (1.0.0)
|
41
42
|
erubis (2.7.0)
|
42
|
-
globalid (0.3.
|
43
|
+
globalid (0.3.6)
|
43
44
|
activesupport (>= 4.1.0)
|
44
45
|
i18n (0.7.0)
|
45
46
|
json (1.8.3)
|
46
|
-
loofah (2.0.
|
47
|
+
loofah (2.0.3)
|
47
48
|
nokogiri (>= 1.5.9)
|
48
49
|
mail (2.6.3)
|
49
50
|
mime-types (>= 1.16, < 3)
|
50
|
-
mime-types (2.
|
51
|
-
|
52
|
-
minitest (5.
|
53
|
-
nokogiri (1.6.
|
54
|
-
|
51
|
+
mime-types (2.99)
|
52
|
+
mini_portile2 (2.0.0)
|
53
|
+
minitest (5.8.3)
|
54
|
+
nokogiri (1.6.7)
|
55
|
+
mini_portile2 (~> 2.0.0.rc2)
|
55
56
|
rack (1.6.4)
|
56
57
|
rack-test (0.6.3)
|
57
58
|
rack (>= 1.0)
|
58
|
-
rails (4.2.
|
59
|
-
actionmailer (= 4.2.
|
60
|
-
actionpack (= 4.2.
|
61
|
-
actionview (= 4.2.
|
62
|
-
activejob (= 4.2.
|
63
|
-
activemodel (= 4.2.
|
64
|
-
activerecord (= 4.2.
|
65
|
-
activesupport (= 4.2.
|
59
|
+
rails (4.2.5)
|
60
|
+
actionmailer (= 4.2.5)
|
61
|
+
actionpack (= 4.2.5)
|
62
|
+
actionview (= 4.2.5)
|
63
|
+
activejob (= 4.2.5)
|
64
|
+
activemodel (= 4.2.5)
|
65
|
+
activerecord (= 4.2.5)
|
66
|
+
activesupport (= 4.2.5)
|
66
67
|
bundler (>= 1.3.0, < 2.0)
|
67
|
-
railties (= 4.2.
|
68
|
+
railties (= 4.2.5)
|
68
69
|
sprockets-rails
|
69
70
|
rails-deprecated_sanitizer (1.0.3)
|
70
71
|
activesupport (>= 4.2.0.alpha)
|
71
|
-
rails-dom-testing (1.0.
|
72
|
+
rails-dom-testing (1.0.7)
|
72
73
|
activesupport (>= 4.2.0.beta, < 5.0)
|
73
74
|
nokogiri (~> 1.6.0)
|
74
75
|
rails-deprecated_sanitizer (>= 1.0.1)
|
75
76
|
rails-html-sanitizer (1.0.2)
|
76
77
|
loofah (~> 2.0)
|
77
|
-
railties (4.2.
|
78
|
-
actionpack (= 4.2.
|
79
|
-
activesupport (= 4.2.
|
78
|
+
railties (4.2.5)
|
79
|
+
actionpack (= 4.2.5)
|
80
|
+
activesupport (= 4.2.5)
|
80
81
|
rake (>= 0.8.7)
|
81
82
|
thor (>= 0.18.1, < 2.0)
|
82
83
|
rake (10.4.2)
|
83
|
-
sprockets (3.2
|
84
|
-
|
85
|
-
|
84
|
+
sprockets (3.5.2)
|
85
|
+
concurrent-ruby (~> 1.0)
|
86
|
+
rack (> 1, < 3)
|
87
|
+
sprockets-rails (2.3.3)
|
86
88
|
actionpack (>= 3.0)
|
87
89
|
activesupport (>= 3.0)
|
88
90
|
sprockets (>= 2.8, < 4.0)
|
89
|
-
sqlite3 (1.3.
|
91
|
+
sqlite3 (1.3.11)
|
90
92
|
thor (0.19.1)
|
91
93
|
thread_safe (0.3.5)
|
92
94
|
tzinfo (1.2.2)
|
@@ -96,8 +98,8 @@ PLATFORMS
|
|
96
98
|
ruby
|
97
99
|
|
98
100
|
DEPENDENCIES
|
99
|
-
rails (~> 4.2.
|
101
|
+
rails (~> 4.2.5)
|
100
102
|
sqlite3
|
101
103
|
|
102
104
|
BUNDLED WITH
|
103
|
-
1.10.
|
105
|
+
1.10.6
|
data/warder.gemspec
CHANGED
@@ -18,21 +18,21 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features|cucumber)\/})
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.add_dependency 'rubocop', '~> 0.
|
22
|
-
spec.add_dependency 'reek', '~> 3.
|
21
|
+
spec.add_dependency 'rubocop', '~> 0.35'
|
22
|
+
spec.add_dependency 'reek', '~> 3.7'
|
23
23
|
spec.add_dependency 'flay', '~> 2.6', '>= 2.6.1'
|
24
24
|
spec.add_dependency 'flog', '~> 4.3'
|
25
25
|
spec.add_dependency 'mago', '~> 0.1'
|
26
|
-
spec.add_dependency 'brakeman', '~> 3.
|
26
|
+
spec.add_dependency 'brakeman', '~> 3.1'
|
27
27
|
spec.add_dependency 'rails_best_practices', '~> 1.15'
|
28
28
|
spec.add_dependency 'sandi_meter', '~> 1.2'
|
29
|
-
spec.add_dependency 'bundler-audit', '~> 0.
|
30
|
-
spec.add_dependency 'coffeelint', '~> 1.
|
29
|
+
spec.add_dependency 'bundler-audit', '~> 0.4'
|
30
|
+
spec.add_dependency 'coffeelint', '~> 1.14'
|
31
31
|
|
32
32
|
spec.add_development_dependency 'bundler', '~> 1.3'
|
33
33
|
spec.add_development_dependency 'rake', '~> 10.0'
|
34
|
-
spec.add_development_dependency 'rspec', '~> 3.
|
35
|
-
spec.add_development_dependency 'cucumber', '~> 2.
|
36
|
-
spec.add_development_dependency 'aruba', '~> 0.
|
37
|
-
spec.add_development_dependency 'simplecov', '~> 0.
|
34
|
+
spec.add_development_dependency 'rspec', '~> 3.4'
|
35
|
+
spec.add_development_dependency 'cucumber', '~> 2.1'
|
36
|
+
spec.add_development_dependency 'aruba', '~> 0.11'
|
37
|
+
spec.add_development_dependency 'simplecov', '~> 0.11'
|
38
38
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: warder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yura Tolstik
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubocop
|
@@ -16,34 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0.
|
19
|
+
version: '0.35'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0.
|
26
|
+
version: '0.35'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: reek
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '3.
|
34
|
-
- - ">="
|
35
|
-
- !ruby/object:Gem::Version
|
36
|
-
version: 3.0.3
|
33
|
+
version: '3.7'
|
37
34
|
type: :runtime
|
38
35
|
prerelease: false
|
39
36
|
version_requirements: !ruby/object:Gem::Requirement
|
40
37
|
requirements:
|
41
38
|
- - "~>"
|
42
39
|
- !ruby/object:Gem::Version
|
43
|
-
version: '3.
|
44
|
-
- - ">="
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: 3.0.3
|
40
|
+
version: '3.7'
|
47
41
|
- !ruby/object:Gem::Dependency
|
48
42
|
name: flay
|
49
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -98,14 +92,14 @@ dependencies:
|
|
98
92
|
requirements:
|
99
93
|
- - "~>"
|
100
94
|
- !ruby/object:Gem::Version
|
101
|
-
version: '3.
|
95
|
+
version: '3.1'
|
102
96
|
type: :runtime
|
103
97
|
prerelease: false
|
104
98
|
version_requirements: !ruby/object:Gem::Requirement
|
105
99
|
requirements:
|
106
100
|
- - "~>"
|
107
101
|
- !ruby/object:Gem::Version
|
108
|
-
version: '3.
|
102
|
+
version: '3.1'
|
109
103
|
- !ruby/object:Gem::Dependency
|
110
104
|
name: rails_best_practices
|
111
105
|
requirement: !ruby/object:Gem::Requirement
|
@@ -140,28 +134,28 @@ dependencies:
|
|
140
134
|
requirements:
|
141
135
|
- - "~>"
|
142
136
|
- !ruby/object:Gem::Version
|
143
|
-
version: '0.
|
137
|
+
version: '0.4'
|
144
138
|
type: :runtime
|
145
139
|
prerelease: false
|
146
140
|
version_requirements: !ruby/object:Gem::Requirement
|
147
141
|
requirements:
|
148
142
|
- - "~>"
|
149
143
|
- !ruby/object:Gem::Version
|
150
|
-
version: '0.
|
144
|
+
version: '0.4'
|
151
145
|
- !ruby/object:Gem::Dependency
|
152
146
|
name: coffeelint
|
153
147
|
requirement: !ruby/object:Gem::Requirement
|
154
148
|
requirements:
|
155
149
|
- - "~>"
|
156
150
|
- !ruby/object:Gem::Version
|
157
|
-
version: '1.
|
151
|
+
version: '1.14'
|
158
152
|
type: :runtime
|
159
153
|
prerelease: false
|
160
154
|
version_requirements: !ruby/object:Gem::Requirement
|
161
155
|
requirements:
|
162
156
|
- - "~>"
|
163
157
|
- !ruby/object:Gem::Version
|
164
|
-
version: '1.
|
158
|
+
version: '1.14'
|
165
159
|
- !ruby/object:Gem::Dependency
|
166
160
|
name: bundler
|
167
161
|
requirement: !ruby/object:Gem::Requirement
|
@@ -196,56 +190,56 @@ dependencies:
|
|
196
190
|
requirements:
|
197
191
|
- - "~>"
|
198
192
|
- !ruby/object:Gem::Version
|
199
|
-
version: '3.
|
193
|
+
version: '3.4'
|
200
194
|
type: :development
|
201
195
|
prerelease: false
|
202
196
|
version_requirements: !ruby/object:Gem::Requirement
|
203
197
|
requirements:
|
204
198
|
- - "~>"
|
205
199
|
- !ruby/object:Gem::Version
|
206
|
-
version: '3.
|
200
|
+
version: '3.4'
|
207
201
|
- !ruby/object:Gem::Dependency
|
208
202
|
name: cucumber
|
209
203
|
requirement: !ruby/object:Gem::Requirement
|
210
204
|
requirements:
|
211
205
|
- - "~>"
|
212
206
|
- !ruby/object:Gem::Version
|
213
|
-
version: '2.
|
207
|
+
version: '2.1'
|
214
208
|
type: :development
|
215
209
|
prerelease: false
|
216
210
|
version_requirements: !ruby/object:Gem::Requirement
|
217
211
|
requirements:
|
218
212
|
- - "~>"
|
219
213
|
- !ruby/object:Gem::Version
|
220
|
-
version: '2.
|
214
|
+
version: '2.1'
|
221
215
|
- !ruby/object:Gem::Dependency
|
222
216
|
name: aruba
|
223
217
|
requirement: !ruby/object:Gem::Requirement
|
224
218
|
requirements:
|
225
219
|
- - "~>"
|
226
220
|
- !ruby/object:Gem::Version
|
227
|
-
version: '0.
|
221
|
+
version: '0.11'
|
228
222
|
type: :development
|
229
223
|
prerelease: false
|
230
224
|
version_requirements: !ruby/object:Gem::Requirement
|
231
225
|
requirements:
|
232
226
|
- - "~>"
|
233
227
|
- !ruby/object:Gem::Version
|
234
|
-
version: '0.
|
228
|
+
version: '0.11'
|
235
229
|
- !ruby/object:Gem::Dependency
|
236
230
|
name: simplecov
|
237
231
|
requirement: !ruby/object:Gem::Requirement
|
238
232
|
requirements:
|
239
233
|
- - "~>"
|
240
234
|
- !ruby/object:Gem::Version
|
241
|
-
version: '0.
|
235
|
+
version: '0.11'
|
242
236
|
type: :development
|
243
237
|
prerelease: false
|
244
238
|
version_requirements: !ruby/object:Gem::Requirement
|
245
239
|
requirements:
|
246
240
|
- - "~>"
|
247
241
|
- !ruby/object:Gem::Version
|
248
|
-
version: '0.
|
242
|
+
version: '0.11'
|
249
243
|
description: Warder of ruby code
|
250
244
|
email:
|
251
245
|
- yltsrc@gmail.com
|
@@ -293,9 +287,10 @@ files:
|
|
293
287
|
- features/validates_coffeescript_style_guide.feature
|
294
288
|
- features/validates_ruby_style_guide.feature
|
295
289
|
- lib/warder.rb
|
290
|
+
- lib/warder/arguments.rb
|
291
|
+
- lib/warder/aruba_app.rb
|
296
292
|
- lib/warder/bundle_audit_runner.rb
|
297
293
|
- lib/warder/cli.rb
|
298
|
-
- lib/warder/cli/arguments.rb
|
299
294
|
- lib/warder/code_complexity_runner.rb
|
300
295
|
- lib/warder/code_duplication_runner.rb
|
301
296
|
- lib/warder/code_smell_runner.rb
|
@@ -388,7 +383,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
388
383
|
version: '0'
|
389
384
|
requirements: []
|
390
385
|
rubyforge_project:
|
391
|
-
rubygems_version: 2.4.
|
386
|
+
rubygems_version: 2.4.5.1
|
392
387
|
signing_key:
|
393
388
|
specification_version: 4
|
394
389
|
summary: Tool to help improve the quality of ruby code
|
data/lib/warder/cli/arguments.rb
DELETED
@@ -1,107 +0,0 @@
|
|
1
|
-
require 'optparse'
|
2
|
-
|
3
|
-
module Warder
|
4
|
-
# responsible for hiding arguments from global scope
|
5
|
-
class CLI
|
6
|
-
# responsible for parsing cli arguments
|
7
|
-
class Arguments
|
8
|
-
def initialize(argv, stdout, kernel)
|
9
|
-
@argv = argv
|
10
|
-
@stdout = stdout
|
11
|
-
@kernel = kernel
|
12
|
-
@options = {}
|
13
|
-
end
|
14
|
-
|
15
|
-
def parse
|
16
|
-
parse_options
|
17
|
-
assign_files
|
18
|
-
OpenStruct.new(@options)
|
19
|
-
end
|
20
|
-
|
21
|
-
private
|
22
|
-
|
23
|
-
def parse_options
|
24
|
-
OptionParser.new do |opts|
|
25
|
-
quiet(opts)
|
26
|
-
stats(opts)
|
27
|
-
combined(opts)
|
28
|
-
validators(opts)
|
29
|
-
end.parse!(@argv)
|
30
|
-
end
|
31
|
-
|
32
|
-
def assign_files
|
33
|
-
@options['files'] = @argv.empty? ? '.' : @argv.join(' ')
|
34
|
-
end
|
35
|
-
|
36
|
-
def combined(opts)
|
37
|
-
version(opts)
|
38
|
-
opts.banner = 'Usage: warder [options] [dir1 file1 file2 ...]'
|
39
|
-
all(opts)
|
40
|
-
rails(opts)
|
41
|
-
end
|
42
|
-
|
43
|
-
def version(opts)
|
44
|
-
opts.on('-v', '--version', 'Show version') do |_|
|
45
|
-
@stdout.puts Warder::VERSION
|
46
|
-
@kernel.exit 0
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
def quiet(opts)
|
51
|
-
opts.on('-q', '--quiet', 'Do not echo validators output.') do
|
52
|
-
@options['quiet'] = true
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
def stats(opts)
|
57
|
-
opts.on('-t', '--[no-]stats', 'Print statistics.') do |value|
|
58
|
-
@options['stats'] = value
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
def all(opts)
|
63
|
-
opts.on('-A', '--all', 'Run all validators') do |value|
|
64
|
-
all_validators(value)
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
def all_validators(value)
|
69
|
-
Warder.validators.each do |validator|
|
70
|
-
full_option = validator::CLI_FULL_OPTION
|
71
|
-
@options[full_option] = value
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
def rails(opts)
|
76
|
-
desc = 'Run rails related validators'
|
77
|
-
opts.on('-R', '--[no-]rails', desc) do |value|
|
78
|
-
rails_validators(value)
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
def rails_validators(value)
|
83
|
-
Warder.validators.each do |validator|
|
84
|
-
next unless validator.to_s.match(/\AWarder::Rails/)
|
85
|
-
full_option = validator::CLI_FULL_OPTION
|
86
|
-
@options[full_option] = value
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
def validators(opts)
|
91
|
-
Warder.validators.each do |validator|
|
92
|
-
validator(opts, validator)
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
def validator(opts, validator)
|
97
|
-
option = validator::CLI_OPTION
|
98
|
-
full_option = validator::CLI_FULL_OPTION
|
99
|
-
desc = validator::DESCRIPTION
|
100
|
-
|
101
|
-
opts.on("-#{option}", "--[no-]#{full_option}", desc) do |value|
|
102
|
-
@options[full_option] = value
|
103
|
-
end
|
104
|
-
end
|
105
|
-
end
|
106
|
-
end
|
107
|
-
end
|