skeptic 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/.rvmrc CHANGED
@@ -1 +1 @@
1
- rvm 1.9.2
1
+ rvm --create 1.9.3@skeptic
data/Gemfile CHANGED
@@ -13,5 +13,5 @@ group :development do
13
13
  gem "aruba"
14
14
  gem "bundler"
15
15
  gem "jeweler"
16
- gem "rcov"
16
+ gem "simplecov"
17
17
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.0.2
@@ -88,6 +88,19 @@ Feature: Running skeptic
88
88
  * Line 2 is too long: 11 columns
89
89
  """
90
90
 
91
+ Scenario: Disallowing trailing whitespace
92
+ Given a file named "input.rb" with:
93
+ """
94
+ no trailing whitespace
95
+ trailing whitespace
96
+ """
97
+ When I run `skeptic --no-trailing-whitespace input.rb`
98
+ Then it should fail with:
99
+ """
100
+ Trailing whitespace
101
+ * Line 2 has trailing whitespace
102
+ """
103
+
91
104
  Scenario: Checking the syntax
92
105
  Given a file named "input.rb" with:
93
106
  """
@@ -0,0 +1,30 @@
1
+ module Skeptic
2
+ module Rules
3
+ class NoTrailingWhitespace
4
+ DESCRIPTION = 'Disallows trailing whitespace'
5
+
6
+ attr_reader :lines_with_trailing_whitespace
7
+
8
+ def initialize(enable = false)
9
+ @lines_with_trailing_whitespace = []
10
+ end
11
+
12
+ def apply_to(code, tokens, sexp)
13
+ code.lines.each_with_index do |line, index|
14
+ @lines_with_trailing_whitespace << index + 1 if line.chomp =~ /\s+$/
15
+ end
16
+ self
17
+ end
18
+
19
+ def violations
20
+ @lines_with_trailing_whitespace.map do |line|
21
+ "Line #{line} has trailing whitespace"
22
+ end
23
+ end
24
+
25
+ def name
26
+ "Trailing whitespace"
27
+ end
28
+ end
29
+ end
30
+ end
data/lib/skeptic/rules.rb CHANGED
@@ -10,5 +10,6 @@ module Skeptic
10
10
  table.register MaxNestingDepth, :int
11
11
  table.register MethodsPerClass, :int
12
12
  table.register NoSemicolons, :boolean
13
+ table.register NoTrailingWhitespace, :boolean
13
14
  end
14
15
  end
data/lib/skeptic.rb CHANGED
@@ -10,6 +10,7 @@ require 'skeptic/rules/methods_per_class'
10
10
  require 'skeptic/rules/lines_per_method'
11
11
  require 'skeptic/rules/no_semicolons'
12
12
  require 'skeptic/rules/line_length'
13
+ require 'skeptic/rules/no_trailing_whitespace'
13
14
 
14
15
  require 'skeptic/rule_table'
15
16
  require 'skeptic/rules'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: skeptic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-10-28 00:00:00.000000000 +03:00
13
- default_executable: skeptic
12
+ date: 2012-10-23 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: trollop
17
- requirement: &2157956920 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
18
17
  none: false
19
18
  requirements:
20
19
  - - ! '>='
@@ -22,10 +21,15 @@ dependencies:
22
21
  version: 1.16.2
23
22
  type: :runtime
24
23
  prerelease: false
25
- version_requirements: *2157956920
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 1.16.2
26
30
  - !ruby/object:Gem::Dependency
27
31
  name: rspec
28
- requirement: &2157956340 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
29
33
  none: false
30
34
  requirements:
31
35
  - - ! '>='
@@ -33,10 +37,15 @@ dependencies:
33
37
  version: '0'
34
38
  type: :development
35
39
  prerelease: false
36
- version_requirements: *2157956340
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
37
46
  - !ruby/object:Gem::Dependency
38
47
  name: cucumber
39
- requirement: &2157955800 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
40
49
  none: false
41
50
  requirements:
42
51
  - - ! '>='
@@ -44,10 +53,15 @@ dependencies:
44
53
  version: '0'
45
54
  type: :development
46
55
  prerelease: false
47
- version_requirements: *2157955800
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
48
62
  - !ruby/object:Gem::Dependency
49
63
  name: aruba
50
- requirement: &2157955200 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
51
65
  none: false
52
66
  requirements:
53
67
  - - ! '>='
@@ -55,10 +69,15 @@ dependencies:
55
69
  version: '0'
56
70
  type: :development
57
71
  prerelease: false
58
- version_requirements: *2157955200
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
59
78
  - !ruby/object:Gem::Dependency
60
79
  name: bundler
61
- requirement: &2157954600 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
62
81
  none: false
63
82
  requirements:
64
83
  - - ! '>='
@@ -66,10 +85,15 @@ dependencies:
66
85
  version: '0'
67
86
  type: :development
68
87
  prerelease: false
69
- version_requirements: *2157954600
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
70
94
  - !ruby/object:Gem::Dependency
71
95
  name: jeweler
72
- requirement: &2157949640 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
73
97
  none: false
74
98
  requirements:
75
99
  - - ! '>='
@@ -77,10 +101,15 @@ dependencies:
77
101
  version: '0'
78
102
  type: :development
79
103
  prerelease: false
80
- version_requirements: *2157949640
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
81
110
  - !ruby/object:Gem::Dependency
82
- name: rcov
83
- requirement: &2157949120 !ruby/object:Gem::Requirement
111
+ name: simplecov
112
+ requirement: !ruby/object:Gem::Requirement
84
113
  none: false
85
114
  requirements:
86
115
  - - ! '>='
@@ -88,7 +117,12 @@ dependencies:
88
117
  version: '0'
89
118
  type: :development
90
119
  prerelease: false
91
- version_requirements: *2157949120
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
92
126
  description: An experimental, half-assed, bug-ridden and highly opinionated code analyzer.
93
127
  email: stefan.kanev@gmail.com
94
128
  executables:
@@ -119,9 +153,9 @@ files:
119
153
  - lib/skeptic/rules/max_nesting_depth.rb
120
154
  - lib/skeptic/rules/methods_per_class.rb
121
155
  - lib/skeptic/rules/no_semicolons.rb
156
+ - lib/skeptic/rules/no_trailing_whitespace.rb
122
157
  - lib/skeptic/scope.rb
123
158
  - lib/skeptic/sexp_visitor.rb
124
- has_rdoc: true
125
159
  homepage: http://github.com/skanev/skeptic
126
160
  licenses:
127
161
  - MIT
@@ -137,7 +171,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
137
171
  version: '0'
138
172
  segments:
139
173
  - 0
140
- hash: -794478687402394833
174
+ hash: 1704281601069197093
141
175
  required_rubygems_version: !ruby/object:Gem::Requirement
142
176
  none: false
143
177
  requirements:
@@ -146,7 +180,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
146
180
  version: '0'
147
181
  requirements: []
148
182
  rubyforge_project:
149
- rubygems_version: 1.6.2
183
+ rubygems_version: 1.8.24
150
184
  signing_key:
151
185
  specification_version: 3
152
186
  summary: Skeptic points out annoying things in your code