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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8fc3f7ef42e9897e30fe070ae20376ec610ef3e4
4
- data.tar.gz: f8d04d91d316a1bd1b6b6318cb9d04231a00b8f5
3
+ metadata.gz: 89cecf176b3b2b1883f804fd8fdb0a033d31fa8b
4
+ data.tar.gz: eab58ed0fbc4f928e67abc6284279170fc3d1837
5
5
  SHA512:
6
- metadata.gz: b00b71994d9e5af8d39cf5634bb91c80c26ae7a9554f93c96c807b3839ba9104e41571081abde3cee0cdef33c1662feae0bff756829bb9455aa13522595a5efc
7
- data.tar.gz: d8105384af5092c059ae96aa48f207f07355704061da94af94a94b3ee8f46e04e76b0298a46bdc732322ab6f2cec803ba6827224a0b01861c7bbacf45adc7d17
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
@@ -21,9 +21,8 @@ module Warder
21
21
 
22
22
  def parse_options
23
23
  OptionParser.new do |opts|
24
- opts.banner = 'Usage: warder [options] [dir1 file1 file2 ...]'
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[option] = value
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
@@ -30,7 +30,8 @@ module Warder
30
30
  end
31
31
 
32
32
  def perform_validation(validator)
33
- key = validator::CLI_OPTION
33
+ key = validator::CLI_FULL_OPTION
34
+
34
35
  if @options.send(key)
35
36
  runner = validator.new(@stdout, @options)
36
37
  runner.perform
@@ -1,4 +1,4 @@
1
1
  # define warder version
2
2
  module Warder
3
- VERSION = '0.1.5'
3
+ VERSION = '0.1.6'
4
4
  end
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 'ruby2ruby'
25
- spec.add_dependency 'flog'
26
- spec.add_dependency 'mago'
27
- spec.add_dependency 'brakeman'
28
- spec.add_dependency 'rails_best_practices'
29
- spec.add_dependency 'sandi_meter'
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.5
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-12 00:00:00.000000000 Z
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: '0'
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: '0'
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: '0'
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: '0'
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: '0'
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: '0'
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: '0'
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: '0'
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: '0'
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: '0'
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: '0'
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: '0'
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: '0'
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: '0'
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: '0'
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: '0'
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