skeptic 0.0.12 → 0.0.14
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/VERSION +1 -1
- data/lib/skeptic/rules/spaces_around_operators.rb +25 -4
- data/skeptic.gemspec +3 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c50ddb8500c67652b5d76236fed471b66e7c10a2
|
4
|
+
data.tar.gz: 701c0cfc317879fcb8d23834dcaffab02ba5d7a7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3af0a80ff4d84495ae3cbe21163bb368913494a69a172d0027fa616e391a9e442170aa10e58e8c195a43ecc2a63fc2ec4b209af7694e95ca77e9e5292d69ce93
|
7
|
+
data.tar.gz: d459748904f7e8fd71e199318f93065cd352a723955cf15912dfbfa291c4e0a77166b5d04da53c5718b6e526a8dfa3cc4e26f9ebee3dfaf29f0a80dfbd46a9c5
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.14
|
@@ -9,15 +9,19 @@ module Skeptic
|
|
9
9
|
IGNORED_TOKEN_TYPES = [:on_sp, :on_ignored_nl, :on_nl, :on_lparen, :on_symbeg, :on_lbracket, :on_lbrace]
|
10
10
|
LEFT_LIMIT_TOKEN_TYPES = [:on_lparen, :on_lbracket]
|
11
11
|
RIGHT_LIMIT_TOKEN_TYPES = [:on_rparen, :on_rbracket]
|
12
|
+
WHITESPACE_TOKEN_TYPES = [:on_sp, :on_nl, :on_ignored_nl]
|
12
13
|
|
13
14
|
def initialize(data)
|
14
15
|
@violations = []
|
15
16
|
@special_tokens_locations = []
|
17
|
+
@unary_token_locations = []
|
16
18
|
end
|
17
19
|
|
18
20
|
def apply_to(code, tokens, sexp)
|
19
21
|
visit sexp
|
20
22
|
|
23
|
+
mark_unary tokens
|
24
|
+
|
21
25
|
@violations = tokens.each_cons(3).select do |_, token, _|
|
22
26
|
operator_expecting_spaces? token
|
23
27
|
end.select do |left, operator, right|
|
@@ -46,6 +50,8 @@ module Skeptic
|
|
46
50
|
end
|
47
51
|
|
48
52
|
def no_spaces_around?(operator, left, right)
|
53
|
+
return false if unary_operator?(operator)
|
54
|
+
|
49
55
|
if LEFT_LIMIT_TOKEN_TYPES.include?(left[1])
|
50
56
|
mark_special_tokens right.first
|
51
57
|
end
|
@@ -69,10 +75,6 @@ module Skeptic
|
|
69
75
|
!special_token?(neighbour)
|
70
76
|
end
|
71
77
|
|
72
|
-
def whitespace_token?(token)
|
73
|
-
token[1] == :on_sp or token[1] == :on_ignored_nl
|
74
|
-
end
|
75
|
-
|
76
78
|
def range_operator?(operator)
|
77
79
|
operator.last[0..1] == '..'
|
78
80
|
end
|
@@ -86,6 +88,25 @@ module Skeptic
|
|
86
88
|
@special_tokens_locations.include? token.first
|
87
89
|
end
|
88
90
|
|
91
|
+
def unary_operator?(token)
|
92
|
+
token[1] == :on_op and @unary_token_locations.include?(token[0])
|
93
|
+
end
|
94
|
+
|
95
|
+
def mark_unary(tokens)
|
96
|
+
@unary_token_locations = []
|
97
|
+
last_significant_token = nil
|
98
|
+
tokens.each do |token|
|
99
|
+
if token[1] == :on_op
|
100
|
+
if last_significant_token == :on_op
|
101
|
+
@unary_token_locations << token[0]
|
102
|
+
end
|
103
|
+
last_significant_token = :on_op
|
104
|
+
elsif !WHITESPACE_TOKEN_TYPES.include?(token[1])
|
105
|
+
last_significant_token = token[1]
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
89
110
|
on :blockarg, :rest_param do |ident|
|
90
111
|
mark_special_tokens ident.last
|
91
112
|
end
|
data/skeptic.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: skeptic 0.0.
|
5
|
+
# stub: skeptic 0.0.14 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "skeptic"
|
9
|
-
s.version = "0.0.
|
9
|
+
s.version = "0.0.14"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
13
13
|
s.authors = ["Stefan Kanev"]
|
14
|
-
s.date = "2015-10-
|
14
|
+
s.date = "2015-10-16"
|
15
15
|
s.description = "An experimental, half-assed, bug-ridden and highly opinionated code analyzer."
|
16
16
|
s.email = "stefan.kanev@gmail.com"
|
17
17
|
s.executables = ["skeptic"]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: skeptic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefan Kanev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-10-
|
11
|
+
date: 2015-10-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: trollop
|