warder 0.1.5 → 0.1.6

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
  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