skeptic 0.0.5 → 0.0.6

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