warder 0.1.4 → 0.1.5

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: b03990a126c35737b97b3150aa66006778a705a6
4
- data.tar.gz: 87f1978be044393d4036df203d358ca1c98b9bb4
3
+ metadata.gz: 8fc3f7ef42e9897e30fe070ae20376ec610ef3e4
4
+ data.tar.gz: f8d04d91d316a1bd1b6b6318cb9d04231a00b8f5
5
5
  SHA512:
6
- metadata.gz: ca3a0d169d92a065fe327d9b0db4fcaed69203d717b0258eedc4a6787900511039bfb0e011c65b0d75bb37fe3e22ee2427fcfa3f77b7f58966720d835502b315
7
- data.tar.gz: db3a88db71e0142b8bc2f4a899cda5e90abe47b58ef7a54df085b5c5f240d29ad8ad2a090ed0c805320488a1d2aff0b37585479ca6050cdfdeb1bd68146784d4
6
+ metadata.gz: b00b71994d9e5af8d39cf5634bb91c80c26ae7a9554f93c96c807b3839ba9104e41571081abde3cee0cdef33c1662feae0bff756829bb9455aa13522595a5efc
7
+ data.tar.gz: d8105384af5092c059ae96aa48f207f07355704061da94af94a94b3ee8f46e04e76b0298a46bdc732322ab6f2cec803ba6827224a0b01861c7bbacf45adc7d17
@@ -1,5 +1,5 @@
1
- Feature: checks for rails related security issues
2
- In order to find security issues
1
+ Feature: checks for rails best practices advices
2
+ In order to get rails advices
3
3
  As a ruby developer
4
4
  I want to run warder with --rails-advice option
5
5
 
@@ -0,0 +1,25 @@
1
+ Feature: checks for Sandi Metz rules violations
2
+ In order to find Sandi Metz rules violations
3
+ As a ruby developer
4
+ I want to run warder with --sandi-rules option
5
+
6
+ Scenario: run warder with enabled sandi rules option
7
+ Given I have valid_rails_app project in directory
8
+ And I am on project directory
9
+ When I run `warder --sandi-rules`
10
+ Then warder detects sandi rules violations
11
+ Then the exit status should be 0
12
+
13
+ Scenario: run warder with enabled sandi rules option on invalid project
14
+ Given I have invalid_rails_app project in directory
15
+ And I am on project directory
16
+ When I run `warder --sandi-rules`
17
+ Then warder detects sandi rules violations
18
+ Then the exit status should be 1
19
+
20
+ Scenario: run warder with disabled sandi rules option on invalid project
21
+ Given I have invalid_rails_app project in directory
22
+ And I am on project directory
23
+ When I run `warder --no-sandi-rules`
24
+ Then warder does nothing
25
+ Then the exit status should be 0
@@ -0,0 +1,7 @@
1
+ def executing_sandi_rules
2
+ "executing 'sandi_meter -d -p .'"
3
+ end
4
+
5
+ def sandi_rules_output
6
+ `cd tmp/aruba/#{@projectname}/ && sandi_meter -d -p .`
7
+ end
@@ -16,7 +16,7 @@ Then(/^warder does nothing$/) do
16
16
  step 'the output should match /.{0}/'
17
17
  end
18
18
 
19
- Then(/^warder detects (.+) issues$/) do |what|
19
+ Then(/^warder detects (.+) (issues|violations)$/) do |what, _|
20
20
  executing_output = send(:"executing_#{what.gsub(' ', '_')}")
21
21
  step "the output should contain \"#{executing_output}\""
22
22
 
@@ -8,6 +8,7 @@ require 'warder/code_smells_runner'
8
8
  require 'warder/code_complexity_runner'
9
9
  require 'warder/rails_security_runner'
10
10
  require 'warder/rails_advice_runner'
11
+ require 'warder/sandi_rules_runner'
11
12
  require 'warder/bundle_audit_runner'
12
13
  require 'warder/cli/arguments'
13
14
  require 'warder/cli'
@@ -2,6 +2,7 @@ module Warder
2
2
  # abstract class for command runners
3
3
  class Runner
4
4
  SCORE = 30
5
+ FAILURE_THRESHOLD = 0
5
6
 
6
7
  def initialize(stdout, options = {})
7
8
  @stdout = stdout
@@ -31,8 +32,9 @@ module Warder
31
32
  end
32
33
 
33
34
  def failed?(line)
34
- match = self.class::FAILURE_REGEXP.match(line)
35
- match && match[1].to_i != 0
35
+ klass = self.class
36
+ match = klass::FAILURE_REGEXP.match(line)
37
+ match && match[1].to_i != klass::FAILURE_THRESHOLD
36
38
  end
37
39
 
38
40
  def printable?(*)
@@ -0,0 +1,18 @@
1
+ module Warder
2
+ # responsible for run Sandi Metz rules validation
3
+ class SandiRulesRunner < Runner
4
+ CLI_OPTION = 'r'
5
+ CLI_FULL_OPTION = 'sandi-rules'
6
+ DESCRIPTION = 'Run Sandi Metz rules validation'
7
+ COMMAND_NAME = 'sandi_meter'
8
+ FAILURE_REGEXP = /\d\. (\d+)%/
9
+ FAILURE_THRESHOLD = 100
10
+
11
+ private
12
+
13
+ def command_with_options
14
+ path = @options.files.split(' ').first
15
+ "#{COMMAND_NAME} -d -p #{path}"
16
+ end
17
+ end
18
+ end
@@ -1,4 +1,4 @@
1
1
  # define warder version
2
2
  module Warder
3
- VERSION = '0.1.4'
3
+ VERSION = '0.1.5'
4
4
  end
@@ -4,6 +4,12 @@ class ApplicationController < ActionController::Base
4
4
  protect_from_forgery with: :exception
5
5
 
6
6
  def welcome
7
-
7
+ @user = User.new(params[:first_name], params[:last_name], params[:email], params[:password], params[:password_confirmation])
8
+ if @user
9
+ @logged_in = true
10
+ render text: "Hello #{@user.full_name}!"
11
+ else
12
+ render text: "Hello Anonymous!"
13
+ end
8
14
  end
9
15
  end
@@ -0,0 +1,5 @@
1
+ User < Struct.new(:first_name, :last_name, :email, :password, :password_confirmation) do
2
+ def full_name
3
+ [first_name, last_name].join(' ')
4
+ end
5
+ end
@@ -26,8 +26,8 @@ Gem::Specification.new do |spec|
26
26
  spec.add_dependency 'mago'
27
27
  spec.add_dependency 'brakeman'
28
28
  spec.add_dependency 'rails_best_practices'
29
+ spec.add_dependency 'sandi_meter'
29
30
  spec.add_dependency 'bundler-audit'
30
- # spec.add_dependency 'sandi_meter'
31
31
 
32
32
  spec.add_development_dependency 'bundler', '~> 1.3'
33
33
  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
4
+ version: 0.1.5
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 00:00:00.000000000 Z
11
+ date: 2014-01-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubocop
@@ -122,6 +122,20 @@ dependencies:
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: sandi_meter
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
125
139
  - !ruby/object:Gem::Dependency
126
140
  name: bundler-audit
127
141
  requirement: !ruby/object:Gem::Requirement
@@ -238,6 +252,7 @@ files:
238
252
  - cucumber.yml
239
253
  - features/checks_for_rails_best_practices.feature
240
254
  - features/checks_for_rails_security_issues.feature
255
+ - features/checks_for_sandi_metz_rules.feature
241
256
  - features/checks_for_vulnerable_gems.feature
242
257
  - features/detects_code_complexity.feature
243
258
  - features/detects_code_duplication.feature
@@ -247,6 +262,7 @@ files:
247
262
  - features/show_version.feature
248
263
  - features/step_definitions/checks_for_rails_best_practices_steps.rb
249
264
  - features/step_definitions/checks_for_rails_security_issues_steps.rb
265
+ - features/step_definitions/checks_for_sandi_metz_rules_step.rb
250
266
  - features/step_definitions/checks_for_vulnerable_gems_steps.rb
251
267
  - features/step_definitions/detects_code_complexity_steps.rb
252
268
  - features/step_definitions/detects_code_duplication_steps.rb
@@ -268,6 +284,7 @@ files:
268
284
  - lib/warder/rails_advice_runner.rb
269
285
  - lib/warder/rails_security_runner.rb
270
286
  - lib/warder/runner.rb
287
+ - lib/warder/sandi_rules_runner.rb
271
288
  - lib/warder/style_guide_runner.rb
272
289
  - lib/warder/version.rb
273
290
  - spec/fixtures/invalid_Gemfile
@@ -279,6 +296,7 @@ files:
279
296
  - spec/fixtures/invalid_rails_app/Gemfile
280
297
  - spec/fixtures/invalid_rails_app/Rakefile
281
298
  - spec/fixtures/invalid_rails_app/app/controllers/application_controller.rb
299
+ - spec/fixtures/invalid_rails_app/app/models/user.rb
282
300
  - spec/fixtures/invalid_rails_app/app/views/layouts/application.html.erb
283
301
  - spec/fixtures/invalid_rails_app/config.ru
284
302
  - spec/fixtures/invalid_rails_app/config/application.rb
@@ -352,6 +370,7 @@ summary: Warder of ruby code
352
370
  test_files:
353
371
  - features/checks_for_rails_best_practices.feature
354
372
  - features/checks_for_rails_security_issues.feature
373
+ - features/checks_for_sandi_metz_rules.feature
355
374
  - features/checks_for_vulnerable_gems.feature
356
375
  - features/detects_code_complexity.feature
357
376
  - features/detects_code_duplication.feature
@@ -361,6 +380,7 @@ test_files:
361
380
  - features/show_version.feature
362
381
  - features/step_definitions/checks_for_rails_best_practices_steps.rb
363
382
  - features/step_definitions/checks_for_rails_security_issues_steps.rb
383
+ - features/step_definitions/checks_for_sandi_metz_rules_step.rb
364
384
  - features/step_definitions/checks_for_vulnerable_gems_steps.rb
365
385
  - features/step_definitions/detects_code_complexity_steps.rb
366
386
  - features/step_definitions/detects_code_duplication_steps.rb
@@ -380,6 +400,7 @@ test_files:
380
400
  - spec/fixtures/invalid_rails_app/Gemfile
381
401
  - spec/fixtures/invalid_rails_app/Rakefile
382
402
  - spec/fixtures/invalid_rails_app/app/controllers/application_controller.rb
403
+ - spec/fixtures/invalid_rails_app/app/models/user.rb
383
404
  - spec/fixtures/invalid_rails_app/app/views/layouts/application.html.erb
384
405
  - spec/fixtures/invalid_rails_app/config.ru
385
406
  - spec/fixtures/invalid_rails_app/config/application.rb