warder 0.1.5 → 0.1.6
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/features/checks_for_all_issues.feature +28 -0
- data/features/checks_for_rails_related_issues.feature +27 -0
- data/lib/warder/cli/arguments.rb +45 -10
- data/lib/warder/cli.rb +2 -1
- data/lib/warder/version.rb +1 -1
- data/warder.gemspec +8 -9
- metadata +38 -48
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 89cecf176b3b2b1883f804fd8fdb0a033d31fa8b
|
4
|
+
data.tar.gz: eab58ed0fbc4f928e67abc6284279170fc3d1837
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 10d23faab41113d402510c954c828c11e6dd72e5e6e688f543644d5231ec094d79dfedd50d96f16dba12101bb9402ad9a3c6ce0f8e1b386905160ec7e9532241
|
7
|
+
data.tar.gz: 38936ad08769e784f8db07d02a02ee19b8a88df776a2491c892df915fba8e7c79d92856cedc9180a61b82b1f0bd2b767262524717da1ed2abe8b524d74e61c6f
|
@@ -0,0 +1,28 @@
|
|
1
|
+
Feature: checks for all issues
|
2
|
+
In order to find all issues
|
3
|
+
As a ruby developer
|
4
|
+
I want to run warder with --all option
|
5
|
+
|
6
|
+
@wip
|
7
|
+
Scenario: run warder with enabled all option
|
8
|
+
Given I have valid_rails_app project in directory
|
9
|
+
And I am on project directory
|
10
|
+
When I run `warder --all`
|
11
|
+
Then warder detects rails best practices issues
|
12
|
+
Then warder detects rails security issues
|
13
|
+
Then the exit status should be 0
|
14
|
+
|
15
|
+
# Scenario: run warder with enabled rails option on invalid project
|
16
|
+
# Given I have invalid_rails_app project in directory
|
17
|
+
# And I am on project directory
|
18
|
+
# When I run `warder --rails`
|
19
|
+
# Then warder detects rails best practices issues
|
20
|
+
# Then warder detects rails security issues
|
21
|
+
# Then the exit status should be 2
|
22
|
+
#
|
23
|
+
# Scenario: run warder with disabled rails option on invalid project
|
24
|
+
# Given I have invalid_rails_app project in directory
|
25
|
+
# And I am on project directory
|
26
|
+
# When I run `warder --no-rails`
|
27
|
+
# Then warder does nothing
|
28
|
+
# Then the exit status should be 0
|
@@ -0,0 +1,27 @@
|
|
1
|
+
Feature: checks for rails related issues
|
2
|
+
In order to find rails related issues
|
3
|
+
As a ruby developer
|
4
|
+
I want to run warder with --rails option
|
5
|
+
|
6
|
+
Scenario: run warder with enabled rails option
|
7
|
+
Given I have valid_rails_app project in directory
|
8
|
+
And I am on project directory
|
9
|
+
When I run `warder --rails`
|
10
|
+
Then warder detects rails best practices issues
|
11
|
+
Then warder detects rails security issues
|
12
|
+
Then the exit status should be 0
|
13
|
+
|
14
|
+
Scenario: run warder with enabled rails option on invalid project
|
15
|
+
Given I have invalid_rails_app project in directory
|
16
|
+
And I am on project directory
|
17
|
+
When I run `warder --rails`
|
18
|
+
Then warder detects rails best practices issues
|
19
|
+
Then warder detects rails security issues
|
20
|
+
Then the exit status should be 2
|
21
|
+
|
22
|
+
Scenario: run warder with disabled rails option on invalid project
|
23
|
+
Given I have invalid_rails_app project in directory
|
24
|
+
And I am on project directory
|
25
|
+
When I run `warder --no-rails`
|
26
|
+
Then warder does nothing
|
27
|
+
Then the exit status should be 0
|
data/lib/warder/cli/arguments.rb
CHANGED
@@ -21,9 +21,8 @@ module Warder
|
|
21
21
|
|
22
22
|
def parse_options
|
23
23
|
OptionParser.new do |opts|
|
24
|
-
opts
|
24
|
+
combined(opts)
|
25
25
|
validators(opts)
|
26
|
-
version(opts)
|
27
26
|
end.parse!(@argv)
|
28
27
|
end
|
29
28
|
|
@@ -31,6 +30,49 @@ module Warder
|
|
31
30
|
@options['files'] = @argv.empty? ? '.' : @argv.join(' ')
|
32
31
|
end
|
33
32
|
|
33
|
+
def combined(opts)
|
34
|
+
version(opts)
|
35
|
+
opts.banner = 'Usage: warder [options] [dir1 file1 file2 ...]'
|
36
|
+
all(opts)
|
37
|
+
rails(opts)
|
38
|
+
end
|
39
|
+
|
40
|
+
def version(opts)
|
41
|
+
opts.on('-v', '--version', 'Show version') do |value|
|
42
|
+
@stdout.puts Warder::VERSION
|
43
|
+
@kernel.exit 0
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def all(opts)
|
48
|
+
opts.on('-A', '--all', 'Run all validators') do |value|
|
49
|
+
all_validators(value)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def all_validators(value)
|
54
|
+
Warder.validators.each do |validator|
|
55
|
+
full_option = validator::CLI_FULL_OPTION
|
56
|
+
@options[full_option] = value
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def rails(opts)
|
61
|
+
desc = 'Run rails related validators'
|
62
|
+
opts.on('-R', '--[no-]rails', desc) do |value|
|
63
|
+
rails_validators(value)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def rails_validators(value)
|
68
|
+
Warder.validators.each do |validator|
|
69
|
+
full_option = validator::CLI_FULL_OPTION
|
70
|
+
if validator.to_s.match(/\AWarder::Rails/)
|
71
|
+
@options[full_option] = value
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
34
76
|
def validators(opts)
|
35
77
|
Warder.validators.each do |validator|
|
36
78
|
validator(opts, validator)
|
@@ -43,14 +85,7 @@ module Warder
|
|
43
85
|
desc = validator::DESCRIPTION
|
44
86
|
|
45
87
|
opts.on("-#{option}", "--[no-]#{full_option}", desc) do |value|
|
46
|
-
@options[
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
def version(opts)
|
51
|
-
opts.on('-v', '--version', 'Show version') do |value|
|
52
|
-
@stdout.puts Warder::VERSION
|
53
|
-
@kernel.exit 0
|
88
|
+
@options[full_option] = value
|
54
89
|
end
|
55
90
|
end
|
56
91
|
end
|
data/lib/warder/cli.rb
CHANGED
data/lib/warder/version.rb
CHANGED
data/warder.gemspec
CHANGED
@@ -19,15 +19,14 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
21
|
spec.add_dependency 'rubocop'
|
22
|
-
spec.add_dependency 'reek'
|
23
|
-
spec.add_dependency 'flay'
|
24
|
-
spec.add_dependency '
|
25
|
-
spec.add_dependency '
|
26
|
-
spec.add_dependency '
|
27
|
-
spec.add_dependency '
|
28
|
-
spec.add_dependency '
|
29
|
-
spec.add_dependency '
|
30
|
-
spec.add_dependency 'bundler-audit'
|
22
|
+
spec.add_dependency 'reek', '~> 1.3.6'
|
23
|
+
spec.add_dependency 'flay', '~> 2.4.0'
|
24
|
+
spec.add_dependency 'flog', '~> 4.2.0'
|
25
|
+
spec.add_dependency 'mago', '~> 0.1.0'
|
26
|
+
spec.add_dependency 'brakeman', '~> 2.3.1'
|
27
|
+
spec.add_dependency 'rails_best_practices', '~> 1.14.4'
|
28
|
+
spec.add_dependency 'sandi_meter', '~> 1.0.5'
|
29
|
+
spec.add_dependency 'bundler-audit', '~> 0.3.0'
|
31
30
|
|
32
31
|
spec.add_development_dependency 'bundler', '~> 1.3'
|
33
32
|
spec.add_development_dependency 'rake'
|
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.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yura Tolstik
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-01-
|
11
|
+
date: 2014-01-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubocop
|
@@ -28,128 +28,114 @@ dependencies:
|
|
28
28
|
name: reek
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 1.3.6
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 1.3.6
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: flay
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :runtime
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: ruby2ruby
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ">="
|
45
|
+
- - "~>"
|
60
46
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
47
|
+
version: 2.4.0
|
62
48
|
type: :runtime
|
63
49
|
prerelease: false
|
64
50
|
version_requirements: !ruby/object:Gem::Requirement
|
65
51
|
requirements:
|
66
|
-
- - "
|
52
|
+
- - "~>"
|
67
53
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
54
|
+
version: 2.4.0
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
56
|
name: flog
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
72
58
|
requirements:
|
73
|
-
- - "
|
59
|
+
- - "~>"
|
74
60
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
61
|
+
version: 4.2.0
|
76
62
|
type: :runtime
|
77
63
|
prerelease: false
|
78
64
|
version_requirements: !ruby/object:Gem::Requirement
|
79
65
|
requirements:
|
80
|
-
- - "
|
66
|
+
- - "~>"
|
81
67
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
68
|
+
version: 4.2.0
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
70
|
name: mago
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
86
72
|
requirements:
|
87
|
-
- - "
|
73
|
+
- - "~>"
|
88
74
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
75
|
+
version: 0.1.0
|
90
76
|
type: :runtime
|
91
77
|
prerelease: false
|
92
78
|
version_requirements: !ruby/object:Gem::Requirement
|
93
79
|
requirements:
|
94
|
-
- - "
|
80
|
+
- - "~>"
|
95
81
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
82
|
+
version: 0.1.0
|
97
83
|
- !ruby/object:Gem::Dependency
|
98
84
|
name: brakeman
|
99
85
|
requirement: !ruby/object:Gem::Requirement
|
100
86
|
requirements:
|
101
|
-
- - "
|
87
|
+
- - "~>"
|
102
88
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
89
|
+
version: 2.3.1
|
104
90
|
type: :runtime
|
105
91
|
prerelease: false
|
106
92
|
version_requirements: !ruby/object:Gem::Requirement
|
107
93
|
requirements:
|
108
|
-
- - "
|
94
|
+
- - "~>"
|
109
95
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
96
|
+
version: 2.3.1
|
111
97
|
- !ruby/object:Gem::Dependency
|
112
98
|
name: rails_best_practices
|
113
99
|
requirement: !ruby/object:Gem::Requirement
|
114
100
|
requirements:
|
115
|
-
- - "
|
101
|
+
- - "~>"
|
116
102
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
103
|
+
version: 1.14.4
|
118
104
|
type: :runtime
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
107
|
requirements:
|
122
|
-
- - "
|
108
|
+
- - "~>"
|
123
109
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
110
|
+
version: 1.14.4
|
125
111
|
- !ruby/object:Gem::Dependency
|
126
112
|
name: sandi_meter
|
127
113
|
requirement: !ruby/object:Gem::Requirement
|
128
114
|
requirements:
|
129
|
-
- - "
|
115
|
+
- - "~>"
|
130
116
|
- !ruby/object:Gem::Version
|
131
|
-
version:
|
117
|
+
version: 1.0.5
|
132
118
|
type: :runtime
|
133
119
|
prerelease: false
|
134
120
|
version_requirements: !ruby/object:Gem::Requirement
|
135
121
|
requirements:
|
136
|
-
- - "
|
122
|
+
- - "~>"
|
137
123
|
- !ruby/object:Gem::Version
|
138
|
-
version:
|
124
|
+
version: 1.0.5
|
139
125
|
- !ruby/object:Gem::Dependency
|
140
126
|
name: bundler-audit
|
141
127
|
requirement: !ruby/object:Gem::Requirement
|
142
128
|
requirements:
|
143
|
-
- - "
|
129
|
+
- - "~>"
|
144
130
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
131
|
+
version: 0.3.0
|
146
132
|
type: :runtime
|
147
133
|
prerelease: false
|
148
134
|
version_requirements: !ruby/object:Gem::Requirement
|
149
135
|
requirements:
|
150
|
-
- - "
|
136
|
+
- - "~>"
|
151
137
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
138
|
+
version: 0.3.0
|
153
139
|
- !ruby/object:Gem::Dependency
|
154
140
|
name: bundler
|
155
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -250,7 +236,9 @@ files:
|
|
250
236
|
- Rakefile
|
251
237
|
- bin/warder
|
252
238
|
- cucumber.yml
|
239
|
+
- features/checks_for_all_issues.feature
|
253
240
|
- features/checks_for_rails_best_practices.feature
|
241
|
+
- features/checks_for_rails_related_issues.feature
|
254
242
|
- features/checks_for_rails_security_issues.feature
|
255
243
|
- features/checks_for_sandi_metz_rules.feature
|
256
244
|
- features/checks_for_vulnerable_gems.feature
|
@@ -368,7 +356,9 @@ signing_key:
|
|
368
356
|
specification_version: 4
|
369
357
|
summary: Warder of ruby code
|
370
358
|
test_files:
|
359
|
+
- features/checks_for_all_issues.feature
|
371
360
|
- features/checks_for_rails_best_practices.feature
|
361
|
+
- features/checks_for_rails_related_issues.feature
|
372
362
|
- features/checks_for_rails_security_issues.feature
|
373
363
|
- features/checks_for_sandi_metz_rules.feature
|
374
364
|
- features/checks_for_vulnerable_gems.feature
|