spektr 0.3.1 → 0.3.3

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
  SHA256:
3
- metadata.gz: 9fc4d66127ccaa7f2a28e6a7de2a6c1f319b078783e8361febbb4fc9a093211d
4
- data.tar.gz: 388985f1b51fe5afd61b1e32033f303f74fceee1d84af8939511703ab6fc3147
3
+ metadata.gz: 1afb80e4a1c5d9cc60a44031a5f3e0b467728f0d5edc75c5ba96dc905afcad6b
4
+ data.tar.gz: a92f43e5cc7865642641df39ba697609c926e67bdbc3cf14130ee2aed186c106
5
5
  SHA512:
6
- metadata.gz: f7e12fabb51be908626346c60fcfe944cbd4e77ea6e9a09c7b48ad47ec6950afde0bd12fcb7b703d975de68d920a0e2844314d495fcc61716a75c375d30ba82b
7
- data.tar.gz: b040b33e65b875e4794748ee00c7cabfd006278923c8dd96d6fad4b8e28ce32579407432047d13d19d998a7320dda59bb3e82e53b14d2e34f4ac662b60b190fb
6
+ metadata.gz: e3369c1e335efd31cd527bd81b6848f50fe718dce399feef67ec3e5afe669629b09fce1acd0e09e5fc45b4fefaed6f5ac592918619306a750381b6aae9843e21
7
+ data.tar.gz: 6750ac48db9693f2b02448b13127456d0a8384f94e84d7d1c7d06ecc5f5320246d8c9bb6471a18d5c75bc7adf421b48d4f3145ba3e14a483cf0079e995734744
data/CHANGELOG.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.3.3
6
+
7
+ * Remove hard dependency of haml 5
8
+
9
+ ## 0.3.2
10
+
11
+ * Rescue from lib file parsing errors
12
+
13
+ * Drop Active Support from dependencies
14
+
15
+ * Improve Gemspec
16
+
5
17
  ## 0.3.0
6
18
 
7
19
  * Add support to ignore findings
data/lib/spektr/app.rb CHANGED
@@ -94,8 +94,12 @@ module Spektr
94
94
  # TODO: load non-app lib too
95
95
  @lib_files = find_files('lib').map do |path|
96
96
  next if loaded_files.include?(path)
97
-
98
- Targets::Base.new(path, File.read(path, encoding: 'utf-8'))
97
+ begin
98
+ Targets::Base.new(path, File.read(path, encoding: 'utf-8'))
99
+ rescue Parser::SyntaxError => e
100
+ ::Spektr.logger.debug "Couldn't parse #{path}: #{e.message}"
101
+ nil
102
+ end
99
103
  end.reject(&:nil?)
100
104
  self
101
105
  end
@@ -0,0 +1,16 @@
1
+ class String
2
+ def blank?
3
+ nil? || self == ""
4
+ end
5
+
6
+ def underscore
7
+ camel_cased_word = self
8
+ return camel_cased_word.to_s unless /[A-Z-]|::/.match?(camel_cased_word)
9
+ word = camel_cased_word.to_s.gsub("::", "/")
10
+ word.gsub!(/(?:(?<=([A-Za-z\d]))|\b)((?=a))(?=\b|[^a-z])/) { "#{$1 && '_' }#{$2.downcase}" }
11
+ word.gsub!(/([A-Z]+)(?=[A-Z][a-z])|([a-z\d])(?=[A-Z])/) { ($1 || $2) << "_" }
12
+ word.tr!("-", "_")
13
+ word.downcase!
14
+ word
15
+ end
16
+ end
@@ -17,7 +17,6 @@ module Spektr
17
17
  end
18
18
 
19
19
  def on_class(node)
20
- debugger
21
20
  puts "on class2: #{node.inspect}"
22
21
  end
23
22
  end
@@ -1,3 +1,3 @@
1
1
  module Spektr
2
- VERSION = '0.3.1'
2
+ VERSION = '0.3.3'
3
3
  end
data/lib/spektr.rb CHANGED
@@ -5,13 +5,11 @@ require 'parser'
5
5
  require 'parser/current'
6
6
  require 'unparser'
7
7
  require 'erb'
8
- require 'slim/erb_converter'
9
8
  require 'haml'
10
- require 'active_support/core_ext/string/inflections'
11
9
  require 'logger'
12
10
  require 'tty/spinner'
13
11
  require 'tty/table'
14
-
12
+ require 'spektr/core_ext/string'
15
13
  require 'zeitwerk'
16
14
  loader = Zeitwerk::Loader.for_gem
17
15
  loader.collapse("#{__dir__}/processors")
data/spektr.gemspec CHANGED
@@ -8,14 +8,14 @@ Gem::Specification.new do |spec|
8
8
 
9
9
  spec.summary = 'Rails static code analyzer for security issues'
10
10
  spec.description = 'Rails static code analyzer for security issues'
11
- spec.homepage = 'https://railscop.com'
12
- spec.license = 'MIT'
11
+ spec.homepage = 'https://spektrhq.com'
12
+ spec.license = 'Spektr Custom Licence'
13
13
  spec.required_ruby_version = Gem::Requirement.new('>= 2.3.0')
14
14
 
15
15
  # spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
16
16
 
17
17
  spec.metadata['homepage_uri'] = spec.homepage
18
- # spec.metadata["source_code_uri"] = "TODO: Put your gem's public repo URL here."
18
+ spec.metadata["source_code_uri"] = "https://github.com/gregmolnar/spektr"
19
19
  # spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
20
20
 
21
21
  # Specify which files should be added to the gem when it is released.
@@ -23,13 +23,12 @@ Gem::Specification.new do |spec|
23
23
  spec.files = Dir.chdir(File.expand_path(__dir__)) do
24
24
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
25
25
  end
26
- spec.bindir = 'exe'
26
+ spec.bindir = 'bin'
27
27
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
28
  spec.require_paths = ['lib']
29
29
 
30
- spec.add_dependency 'activesupport', '~> 6.1.0'
31
30
  spec.add_dependency 'erubi'
32
- spec.add_dependency 'haml', '~>5.1'
31
+ spec.add_dependency 'haml'
33
32
  spec.add_dependency 'parser', '~> 3.0.0'
34
33
  spec.add_dependency 'pastel'
35
34
  spec.add_dependency 'ruby_parser', '~>3.13'
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spektr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Greg Molnar
8
8
  autorequire:
9
- bindir: exe
9
+ bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-27 00:00:00.000000000 Z
11
+ date: 2022-11-10 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: activesupport
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: 6.1.0
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: 6.1.0
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: erubi
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -42,16 +28,16 @@ dependencies:
42
28
  name: haml
43
29
  requirement: !ruby/object:Gem::Requirement
44
30
  requirements:
45
- - - "~>"
31
+ - - ">="
46
32
  - !ruby/object:Gem::Version
47
- version: '5.1'
33
+ version: '0'
48
34
  type: :runtime
49
35
  prerelease: false
50
36
  version_requirements: !ruby/object:Gem::Requirement
51
37
  requirements:
52
- - - "~>"
38
+ - - ">="
53
39
  - !ruby/object:Gem::Version
54
- version: '5.1'
40
+ version: '0'
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: parser
57
43
  requirement: !ruby/object:Gem::Requirement
@@ -289,7 +275,6 @@ files:
289
275
  - CHANGELOG.md
290
276
  - CODE_OF_CONDUCT.md
291
277
  - Gemfile
292
- - Gemfile.lock
293
278
  - Guardfile
294
279
  - LICENSE.txt
295
280
  - README.md
@@ -329,6 +314,7 @@ files:
329
314
  - lib/spektr/checks/sqli.rb
330
315
  - lib/spektr/checks/xss.rb
331
316
  - lib/spektr/cli.rb
317
+ - lib/spektr/core_ext/string.rb
332
318
  - lib/spektr/erubi.rb
333
319
  - lib/spektr/exp/assignment.rb
334
320
  - lib/spektr/exp/base.rb
@@ -350,11 +336,12 @@ files:
350
336
  - lib/spektr/warning.rb
351
337
  - railsgoat-example.png
352
338
  - spektr.gemspec
353
- homepage: https://railscop.com
339
+ homepage: https://spektrhq.com
354
340
  licenses:
355
- - MIT
341
+ - Spektr Custom Licence
356
342
  metadata:
357
- homepage_uri: https://railscop.com
343
+ homepage_uri: https://spektrhq.com
344
+ source_code_uri: https://github.com/gregmolnar/spektr
358
345
  post_install_message:
359
346
  rdoc_options: []
360
347
  require_paths:
data/Gemfile.lock DELETED
@@ -1,138 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- spektr (0.3.1)
5
- activesupport (~> 6.1.0)
6
- erubi
7
- haml (~> 5.1)
8
- parser (~> 3.0.0)
9
- pastel
10
- ruby_parser (~> 3.13)
11
- slim
12
- tty-color
13
- tty-option
14
- tty-spinner
15
- tty-table
16
- unparser (~> 0.6.0)
17
- zeitwerk
18
-
19
- GEM
20
- remote: https://rubygems.org/
21
- specs:
22
- activesupport (6.1.7)
23
- concurrent-ruby (~> 1.0, >= 1.0.2)
24
- i18n (>= 1.6, < 2)
25
- minitest (>= 5.1)
26
- tzinfo (~> 2.0)
27
- zeitwerk (~> 2.3)
28
- ast (2.4.2)
29
- byebug (11.1.3)
30
- coderay (1.1.3)
31
- concurrent-ruby (1.1.10)
32
- diff-lcs (1.5.0)
33
- erubi (1.11.0)
34
- ffi (1.15.5)
35
- formatador (0.3.0)
36
- guard (2.18.0)
37
- formatador (>= 0.2.4)
38
- listen (>= 2.7, < 4.0)
39
- lumberjack (>= 1.0.12, < 2.0)
40
- nenv (~> 0.1)
41
- notiffany (~> 0.0)
42
- pry (>= 0.13.0)
43
- shellany (~> 0.0)
44
- thor (>= 0.18.1)
45
- guard-compat (1.2.1)
46
- guard-minitest (2.4.6)
47
- guard-compat (~> 1.2)
48
- minitest (>= 3.0)
49
- haml (5.2.2)
50
- temple (>= 0.8.0)
51
- tilt
52
- i18n (1.12.0)
53
- concurrent-ruby (~> 1.0)
54
- listen (3.7.1)
55
- rb-fsevent (~> 0.10, >= 0.10.3)
56
- rb-inotify (~> 0.9, >= 0.9.10)
57
- lumberjack (1.2.8)
58
- method_source (1.0.0)
59
- minitest (5.15.0)
60
- nenv (0.3.0)
61
- notiffany (0.1.3)
62
- nenv (~> 0.1)
63
- shellany (~> 0.0)
64
- parallel (1.21.0)
65
- parser (3.0.3.2)
66
- ast (~> 2.4.1)
67
- pastel (0.8.0)
68
- tty-color (~> 0.5)
69
- pry (0.14.1)
70
- coderay (~> 1.1)
71
- method_source (~> 1.0)
72
- rainbow (3.0.0)
73
- rake (12.3.3)
74
- rb-fsevent (0.11.0)
75
- rb-inotify (0.10.1)
76
- ffi (~> 1.0)
77
- regexp_parser (2.2.0)
78
- rexml (3.2.5)
79
- rubocop (1.24.0)
80
- parallel (~> 1.10)
81
- parser (>= 3.0.0.0)
82
- rainbow (>= 2.2.2, < 4.0)
83
- regexp_parser (>= 1.8, < 3.0)
84
- rexml
85
- rubocop-ast (>= 1.15.0, < 2.0)
86
- ruby-progressbar (~> 1.7)
87
- unicode-display_width (>= 1.4.0, < 3.0)
88
- rubocop-ast (1.15.0)
89
- parser (>= 3.0.1.1)
90
- ruby-progressbar (1.11.0)
91
- ruby_parser (3.19.1)
92
- sexp_processor (~> 4.16)
93
- sexp_processor (4.16.1)
94
- shellany (0.0.1)
95
- slim (4.1.0)
96
- temple (>= 0.7.6, < 0.9)
97
- tilt (>= 2.0.6, < 2.1)
98
- strings (0.2.1)
99
- strings-ansi (~> 0.2)
100
- unicode-display_width (>= 1.5, < 3.0)
101
- unicode_utils (~> 1.4)
102
- strings-ansi (0.2.0)
103
- temple (0.8.2)
104
- thor (1.2.1)
105
- tilt (2.0.11)
106
- tty-color (0.6.0)
107
- tty-cursor (0.7.1)
108
- tty-option (0.2.0)
109
- tty-screen (0.8.1)
110
- tty-spinner (0.9.3)
111
- tty-cursor (~> 0.7)
112
- tty-table (0.12.0)
113
- pastel (~> 0.8)
114
- strings (~> 0.2.0)
115
- tty-screen (~> 0.8)
116
- tzinfo (2.0.5)
117
- concurrent-ruby (~> 1.0)
118
- unicode-display_width (2.1.0)
119
- unicode_utils (1.4.0)
120
- unparser (0.6.2)
121
- diff-lcs (~> 1.3)
122
- parser (>= 3.0.0)
123
- zeitwerk (2.6.1)
124
-
125
- PLATFORMS
126
- ruby
127
-
128
- DEPENDENCIES
129
- byebug
130
- guard
131
- guard-minitest
132
- minitest (~> 5.0)
133
- rake (~> 12.0)
134
- rubocop
135
- spektr!
136
-
137
- BUNDLED WITH
138
- 2.1.4