skeptic 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.5
1
+ 0.0.6
@@ -63,47 +63,59 @@ module Skeptic
63
63
 
64
64
  private
65
65
 
66
- on :class, :module, :def do |name, *args, body|
67
- extracted_name = strip_name_suffix(extract_name(name))
68
- check_name sexp_type, extracted_name, extract_line_number(name)
69
- visit args.first if args.first
66
+ on :class, :module do |name, *, body|
67
+ check_ident sexp_type, name
70
68
  visit body
71
69
  end
72
70
 
73
- on :defs do |target, _, name, params, body|
74
- if [target, name].any? do |ident|
75
- bad_name? :defs, strip_name_suffix(extract_name(ident))
76
- end
77
- @violations << [:defs, "#{target}.#{name}", extract_line_number(name)]
78
- end
71
+ on :def, :defs do |*, name, params, body|
72
+ check_ident sexp_type, name
79
73
  visit params
80
74
  visit body
81
75
  end
82
76
 
77
+ on :lambda do |params, body|
78
+ visit params if params
79
+ visit body
80
+ end
81
+
82
+ on :do_block, :brace_block do |(_, params, _), body|
83
+ visit params if params
84
+ visit body
85
+ end
86
+
87
+ on :assign do |target, value|
88
+ if target.first == :var_field
89
+ check_name target.last.first, extract_name(target), extract_line_number(target)
90
+ end
91
+ end
92
+
93
+ on :params do |*params|
94
+ extract_param_idents(params).each do |param_ident|
95
+ check_ident :@ident, param_ident
96
+ end
97
+ end
98
+
83
99
  on :symbol do |type, text, location|
84
100
  check_name :symbol, text, location.first
85
101
  end
86
102
 
87
- on :@ident, :@ivar, :@cvar, :@const do |text, location|
88
- check_name sexp_type, strip_name_prefix(text), location.first
103
+ def check_ident(type, ident)
104
+ check_name(type, extract_name(ident), extract_line_number(ident))
89
105
  end
90
106
 
91
107
  def check_name(type, name, line)
92
- if bad_name? type, name
108
+ if bad_name? type, strip_word_punctuation(name)
93
109
  @violations << [type, name, line]
94
110
  end
95
111
  end
96
112
 
97
113
  def bad_name?(type, name)
98
- !CONVENTION_REGEXES[EXPECTED_CONVENTIONS[type]].match(name)
99
- end
100
-
101
- def strip_name_suffix(name)
102
- name.sub(/[!?]\z/, '')
114
+ !name.empty? and !CONVENTION_REGEXES[EXPECTED_CONVENTIONS[type]].match(name)
103
115
  end
104
116
 
105
- def strip_name_prefix(name)
106
- name.sub(/\A@{1,2}/, '')
117
+ def strip_word_punctuation(word)
118
+ word.gsub(/[^[^[:ascii:]]a-zA-Z0-9_]/, '')
107
119
  end
108
120
  end
109
121
  end
data/skeptic.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "skeptic"
8
- s.version = "0.0.5"
8
+ s.version = "0.0.6"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Stefan Kanev"]
12
- s.date = "2013-11-15"
12
+ s.date = "2013-12-14"
13
13
  s.description = "An experimental, half-assed, bug-ridden and highly opinionated code analyzer."
14
14
  s.email = "stefan.kanev@gmail.com"
15
15
  s.executables = ["skeptic"]
@@ -52,7 +52,7 @@ Gem::Specification.new do |s|
52
52
  s.homepage = "http://github.com/skanev/skeptic"
53
53
  s.licenses = ["MIT"]
54
54
  s.require_paths = ["lib"]
55
- s.rubygems_version = "1.8.24"
55
+ s.rubygems_version = "1.8.23"
56
56
  s.summary = "Skeptic points out annoying things in your code"
57
57
 
58
58
  if s.respond_to? :specification_version then
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.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-11-15 00:00:00.000000000 Z
12
+ date: 2013-12-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: trollop
@@ -191,6 +191,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
191
191
  - - ! '>='
192
192
  - !ruby/object:Gem::Version
193
193
  version: '0'
194
+ segments:
195
+ - 0
196
+ hash: -418497778918983562
194
197
  required_rubygems_version: !ruby/object:Gem::Requirement
195
198
  none: false
196
199
  requirements:
@@ -199,7 +202,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
199
202
  version: '0'
200
203
  requirements: []
201
204
  rubyforge_project:
202
- rubygems_version: 1.8.24
205
+ rubygems_version: 1.8.23
203
206
  signing_key:
204
207
  specification_version: 3
205
208
  summary: Skeptic points out annoying things in your code