brakeman 5.4.1 → 6.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGES.md +14 -0
- data/README.md +2 -2
- data/bundle/load.rb +3 -4
- data/bundle/ruby/3.1.0/gems/parallel-1.23.0/lib/parallel/version.rb +4 -0
- data/bundle/ruby/3.1.0/gems/{parallel-1.22.1 → parallel-1.23.0}/lib/parallel.rb +43 -3
- data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/History.rdoc +38 -0
- data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/Manifest.txt +2 -0
- data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/README.rdoc +2 -1
- data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/compare/normalize.rb +1 -0
- data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/lib/ruby20_parser.rb +4267 -4284
- data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/lib/ruby20_parser.y +50 -26
- data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/lib/ruby21_parser.rb +4241 -4240
- data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/lib/ruby21_parser.y +50 -26
- data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/lib/ruby22_parser.rb +4289 -4290
- data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/lib/ruby22_parser.y +50 -26
- data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/lib/ruby23_parser.rb +4274 -4243
- data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/lib/ruby23_parser.y +50 -26
- data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/lib/ruby24_parser.rb +4279 -4298
- data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/lib/ruby24_parser.y +50 -26
- data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/lib/ruby25_parser.rb +4270 -4289
- data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/lib/ruby25_parser.y +50 -26
- data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/lib/ruby26_parser.rb +4270 -4289
- data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/lib/ruby26_parser.y +50 -26
- data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/lib/ruby27_parser.rb +4173 -4206
- data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/lib/ruby27_parser.y +50 -26
- data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/lib/ruby30_parser.rb +6029 -5971
- data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/lib/ruby30_parser.y +135 -86
- data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/lib/ruby31_parser.rb +6195 -6184
- data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/lib/ruby31_parser.y +136 -87
- data/bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby32_parser.rb +13601 -0
- data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2/lib/ruby3_parser.yy → ruby_parser-3.20.3/lib/ruby32_parser.y} +158 -163
- data/bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby3_parser.yy +3635 -0
- data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/lib/ruby_lexer.rb +15 -7
- data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/lib/ruby_lexer.rex.rb +1 -1
- data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/lib/ruby_lexer_strings.rb +2 -2
- data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/lib/ruby_parser.rb +2 -0
- data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/lib/ruby_parser.yy +50 -26
- data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/lib/ruby_parser_extras.rb +25 -19
- data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/tools/munge.rb +8 -2
- data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/tools/ripper.rb +14 -12
- data/bundle/ruby/3.1.0/gems/{sexp_processor-4.16.1 → sexp_processor-4.17.0}/History.rdoc +13 -0
- data/bundle/ruby/3.1.0/gems/{sexp_processor-4.16.1 → sexp_processor-4.17.0}/lib/pt_testcase.rb +3 -3
- data/bundle/ruby/3.1.0/gems/{sexp_processor-4.16.1 → sexp_processor-4.17.0}/lib/sexp.rb +8 -2
- data/bundle/ruby/3.1.0/gems/{sexp_processor-4.16.1 → sexp_processor-4.17.0}/lib/sexp_processor.rb +1 -1
- data/bundle/ruby/3.1.0/gems/{sexp_processor-4.16.1 → sexp_processor-4.17.0}/lib/strict_sexp.rb +6 -5
- data/lib/brakeman/app_tree.rb +0 -1
- data/lib/brakeman/checks/check_content_tag.rb +8 -5
- data/lib/brakeman/checks/check_eol_ruby.rb +3 -1
- data/lib/brakeman/report/report_github.rb +1 -1
- data/lib/brakeman/scanner.rb +0 -1
- data/lib/brakeman/tracker/config.rb +15 -11
- data/lib/brakeman/version.rb +1 -1
- data/lib/brakeman.rb +6 -2
- metadata +56 -68
- data/bundle/ruby/3.1.0/gems/parallel-1.22.1/lib/parallel/processor_count.rb +0 -44
- data/bundle/ruby/3.1.0/gems/parallel-1.22.1/lib/parallel/version.rb +0 -4
- data/bundle/ruby/3.1.0/gems/ruby_parser-legacy-1.0.0/History.rdoc +0 -6
- data/bundle/ruby/3.1.0/gems/ruby_parser-legacy-1.0.0/Manifest.txt +0 -19
- data/bundle/ruby/3.1.0/gems/ruby_parser-legacy-1.0.0/README.rdoc +0 -54
- data/bundle/ruby/3.1.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby18_parser.rb +0 -5794
- data/bundle/ruby/3.1.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby18_parser.y +0 -1909
- data/bundle/ruby/3.1.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby19_parser.rb +0 -6186
- data/bundle/ruby/3.1.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby19_parser.y +0 -2117
- data/bundle/ruby/3.1.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby_lexer.rb +0 -1412
- data/bundle/ruby/3.1.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby_lexer.rex +0 -179
- data/bundle/ruby/3.1.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby_lexer.rex.rb +0 -323
- data/bundle/ruby/3.1.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby_parser.rb +0 -30
- data/bundle/ruby/3.1.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby_parser_extras.rb +0 -1388
- data/bundle/ruby/3.1.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy.rb +0 -5
- /data/bundle/ruby/3.1.0/gems/{parallel-1.22.1 → parallel-1.23.0}/MIT-LICENSE.txt +0 -0
- /data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/debugging.md +0 -0
- /data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/gauntlet.md +0 -0
- /data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/lib/rp_extensions.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/lib/rp_stringscanner.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{ruby_parser-3.19.2 → ruby_parser-3.20.3}/lib/ruby_lexer.rex +0 -0
- /data/bundle/ruby/3.1.0/gems/{sexp_processor-4.16.1 → sexp_processor-4.17.0}/Manifest.txt +0 -0
- /data/bundle/ruby/3.1.0/gems/{sexp_processor-4.16.1 → sexp_processor-4.17.0}/README.rdoc +0 -0
- /data/bundle/ruby/3.1.0/gems/{sexp_processor-4.16.1 → sexp_processor-4.17.0}/lib/composite_sexp_processor.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{sexp_processor-4.16.1 → sexp_processor-4.17.0}/lib/sexp_matcher.rb +0 -0
- /data/bundle/ruby/3.1.0/gems/{sexp_processor-4.16.1 → sexp_processor-4.17.0}/lib/unique.rb +0 -0
@@ -73,11 +73,14 @@ class Brakeman::CheckContentTag < Brakeman::CheckCrossSiteScripting
|
|
73
73
|
check_argument result, content
|
74
74
|
end
|
75
75
|
|
76
|
-
#
|
77
|
-
if
|
78
|
-
|
79
|
-
|
80
|
-
|
76
|
+
# This changed in Rails 6.1.6
|
77
|
+
if version_between? '0.0.0', '6.1.5'
|
78
|
+
#Attribute keys are never escaped, so check them for user input
|
79
|
+
if not @matched and hash? attributes and not request_value? attributes
|
80
|
+
hash_iterate(attributes) do |k, _v|
|
81
|
+
check_argument result, k
|
82
|
+
return if @matched
|
83
|
+
end
|
81
84
|
end
|
82
85
|
end
|
83
86
|
|
@@ -21,6 +21,8 @@ class Brakeman::CheckEOLRuby < Brakeman::EOLCheck
|
|
21
21
|
['2.5.0', '2.5.99'] => Date.new(2021, 3, 31),
|
22
22
|
['2.6.0', '2.6.99'] => Date.new(2022, 3, 31),
|
23
23
|
['2.7.0', '2.7.99'] => Date.new(2023, 3, 31),
|
24
|
-
['3.0.0', '
|
24
|
+
['3.0.0', '3.0.99'] => Date.new(2024, 3, 31),
|
25
|
+
['3.1.0', '3.1.99'] => Date.new(2025, 3, 31),
|
26
|
+
['3.2.0', '3.2.99'] => Date.new(2026, 3, 31),
|
25
27
|
}
|
26
28
|
end
|
data/lib/brakeman/scanner.rb
CHANGED
@@ -20,9 +20,7 @@ module Brakeman
|
|
20
20
|
|
21
21
|
def default_protect_from_forgery?
|
22
22
|
if version_between? "5.2.0.beta1", "9.9.9"
|
23
|
-
if @rails.dig(:action_controller, :default_protect_from_forgery) == Sexp.new(:
|
24
|
-
return false
|
25
|
-
else
|
23
|
+
if @rails.dig(:action_controller, :default_protect_from_forgery) == Sexp.new(:true)
|
26
24
|
return true
|
27
25
|
end
|
28
26
|
end
|
@@ -191,13 +189,19 @@ module Brakeman
|
|
191
189
|
# Load defaults based on config.load_defaults value
|
192
190
|
# as documented here: https://guides.rubyonrails.org/configuring.html#results-of-config-load-defaults
|
193
191
|
def load_rails_defaults
|
194
|
-
return unless
|
192
|
+
return unless node_type? tracker.config.rails[:load_defaults], :lit, :str
|
193
|
+
|
194
|
+
version = tracker.config.rails[:load_defaults].value.to_s
|
195
|
+
|
196
|
+
unless version.match? /^\d+\.\d+$/
|
197
|
+
Brakeman.debug "[Notice] Unknown version: #{tracker.config.rails[:load_defaults]}"
|
198
|
+
return
|
199
|
+
end
|
195
200
|
|
196
|
-
version = tracker.config.rails[:load_defaults].value
|
197
201
|
true_value = Sexp.new(:true)
|
198
202
|
false_value = Sexp.new(:false)
|
199
203
|
|
200
|
-
if version >= 5.0
|
204
|
+
if version >= '5.0'
|
201
205
|
set_rails_config(value: true_value, path: [:action_controller, :per_form_csrf_tokens])
|
202
206
|
set_rails_config(value: true_value, path: [:action_controller, :forgery_protection_origin_check])
|
203
207
|
set_rails_config(value: true_value, path: [:active_record, :belongs_to_required_by_default])
|
@@ -205,12 +209,12 @@ module Brakeman
|
|
205
209
|
set_rails_config(value: true_value, path: [:ssl_options, :hsts, :subdomains])
|
206
210
|
end
|
207
211
|
|
208
|
-
if version >= 5.1
|
212
|
+
if version >= '5.1'
|
209
213
|
set_rails_config(value: false_value, path: [:assets, :unknown_asset_fallback])
|
210
214
|
set_rails_config(value: true_value, path: [:action_view, :form_with_generates_remote_forms])
|
211
215
|
end
|
212
216
|
|
213
|
-
if version >= 5.2
|
217
|
+
if version >= '5.2'
|
214
218
|
set_rails_config(value: true_value, path: [:active_record, :cache_versioning])
|
215
219
|
set_rails_config(value: true_value, path: [:action_dispatch, :use_authenticated_cookie_encryption])
|
216
220
|
set_rails_config(value: true_value, path: [:active_support, :use_authenticated_message_encryption])
|
@@ -219,7 +223,7 @@ module Brakeman
|
|
219
223
|
set_rails_config(value: true_value, path: [:action_view, :form_with_generates_ids])
|
220
224
|
end
|
221
225
|
|
222
|
-
if version >= 6.0
|
226
|
+
if version >= '6.0'
|
223
227
|
set_rails_config(value: Sexp.new(:lit, :zeitwerk), path: [:autoloader])
|
224
228
|
set_rails_config(value: false_value, path: [:action_view, :default_enforce_utf8])
|
225
229
|
set_rails_config(value: true_value, path: [:action_dispatch, :use_cookies_with_metadata])
|
@@ -232,7 +236,7 @@ module Brakeman
|
|
232
236
|
set_rails_config(value: true_value, path: [:active_record, :collection_cache_versioning])
|
233
237
|
end
|
234
238
|
|
235
|
-
if version >= 6.1
|
239
|
+
if version >= '6.1'
|
236
240
|
set_rails_config(value: true_value, path: [:action_controller, :urlsafe_csrf_tokens])
|
237
241
|
set_rails_config(value: Sexp.new(:lit, :lax), path: [:action_dispatch, :cookies_same_site_protection])
|
238
242
|
set_rails_config(value: Sexp.new(:lit, 308), path: [:action_dispatch, :ssl_default_redirect_status])
|
@@ -244,7 +248,7 @@ module Brakeman
|
|
244
248
|
set_rails_config(value: true_value, path: [:active_storage, :track_variants])
|
245
249
|
end
|
246
250
|
|
247
|
-
if version >= 7.0
|
251
|
+
if version >= '7.0'
|
248
252
|
video_args =
|
249
253
|
Sexp.new(:str, "-vf 'select=eq(n\\,0)+eq(key\\,1)+gt(scene\\,0.015),loop=loop=-1:size=2,trim=start_frame=1' -frames:v 1 -f image2")
|
250
254
|
hash_class = s(:colon2, s(:colon2, s(:const, :OpenSSL), :Digest), :SHA256)
|
data/lib/brakeman/version.rb
CHANGED
data/lib/brakeman.rb
CHANGED
@@ -493,10 +493,14 @@ module Brakeman
|
|
493
493
|
end
|
494
494
|
|
495
495
|
tracker = run(options)
|
496
|
+
new_report = JSON.parse(tracker.report.to_json, symbolize_names: true)
|
496
497
|
|
497
|
-
new_results =
|
498
|
+
new_results = new_report[:warnings]
|
499
|
+
obsolete_ignored = tracker.unused_fingerprints
|
498
500
|
|
499
|
-
Brakeman::Differ.new(new_results, previous_results).diff
|
501
|
+
Brakeman::Differ.new(new_results, previous_results).diff.tap do |diff|
|
502
|
+
diff[:obsolete] = obsolete_ignored
|
503
|
+
end
|
500
504
|
end
|
501
505
|
|
502
506
|
def self.load_brakeman_dependency name, allow_fail = false
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: brakeman
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 6.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Collins
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-07-20 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Brakeman detects security vulnerabilities in Ruby on Rails applications
|
14
14
|
via static analysis.
|
@@ -131,10 +131,9 @@ files:
|
|
131
131
|
- bundle/ruby/3.1.0/gems/highline-2.1.0/lib/highline/terminal/unix_stty.rb
|
132
132
|
- bundle/ruby/3.1.0/gems/highline-2.1.0/lib/highline/version.rb
|
133
133
|
- bundle/ruby/3.1.0/gems/highline-2.1.0/lib/highline/wrapper.rb
|
134
|
-
- bundle/ruby/3.1.0/gems/parallel-1.
|
135
|
-
- bundle/ruby/3.1.0/gems/parallel-1.
|
136
|
-
- bundle/ruby/3.1.0/gems/parallel-1.
|
137
|
-
- bundle/ruby/3.1.0/gems/parallel-1.22.1/lib/parallel/version.rb
|
134
|
+
- bundle/ruby/3.1.0/gems/parallel-1.23.0/MIT-LICENSE.txt
|
135
|
+
- bundle/ruby/3.1.0/gems/parallel-1.23.0/lib/parallel.rb
|
136
|
+
- bundle/ruby/3.1.0/gems/parallel-1.23.0/lib/parallel/version.rb
|
138
137
|
- bundle/ruby/3.1.0/gems/rexml-3.2.5/LICENSE.txt
|
139
138
|
- bundle/ruby/3.1.0/gems/rexml-3.2.5/NEWS.md
|
140
139
|
- bundle/ruby/3.1.0/gems/rexml-3.2.5/README.md
|
@@ -192,57 +191,46 @@ files:
|
|
192
191
|
- bundle/ruby/3.1.0/gems/ruby2ruby-2.4.4/Manifest.txt
|
193
192
|
- bundle/ruby/3.1.0/gems/ruby2ruby-2.4.4/README.rdoc
|
194
193
|
- bundle/ruby/3.1.0/gems/ruby2ruby-2.4.4/lib/ruby2ruby.rb
|
195
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
196
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
197
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
198
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
199
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
200
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
201
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
202
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
203
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
204
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
205
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
206
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
207
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
208
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
209
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
210
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
211
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
212
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
213
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
214
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
215
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
216
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
217
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
218
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
219
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
220
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
221
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
222
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
223
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
224
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
225
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
226
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
227
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
228
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
229
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
230
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
231
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
232
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-3.
|
233
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-
|
234
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-
|
235
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-legacy-1.0.0/README.rdoc
|
236
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy.rb
|
237
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby18_parser.rb
|
238
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby18_parser.y
|
239
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby19_parser.rb
|
240
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby19_parser.y
|
241
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby_lexer.rb
|
242
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby_lexer.rex
|
243
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby_lexer.rex.rb
|
244
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby_parser.rb
|
245
|
-
- bundle/ruby/3.1.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby_parser_extras.rb
|
194
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/History.rdoc
|
195
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/Manifest.txt
|
196
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/README.rdoc
|
197
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/compare/normalize.rb
|
198
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/debugging.md
|
199
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/gauntlet.md
|
200
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/rp_extensions.rb
|
201
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/rp_stringscanner.rb
|
202
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby20_parser.rb
|
203
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby20_parser.y
|
204
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby21_parser.rb
|
205
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby21_parser.y
|
206
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby22_parser.rb
|
207
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby22_parser.y
|
208
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby23_parser.rb
|
209
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby23_parser.y
|
210
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby24_parser.rb
|
211
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby24_parser.y
|
212
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby25_parser.rb
|
213
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby25_parser.y
|
214
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby26_parser.rb
|
215
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby26_parser.y
|
216
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby27_parser.rb
|
217
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby27_parser.y
|
218
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby30_parser.rb
|
219
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby30_parser.y
|
220
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby31_parser.rb
|
221
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby31_parser.y
|
222
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby32_parser.rb
|
223
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby32_parser.y
|
224
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby3_parser.yy
|
225
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby_lexer.rb
|
226
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby_lexer.rex
|
227
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby_lexer.rex.rb
|
228
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby_lexer_strings.rb
|
229
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby_parser.rb
|
230
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby_parser.yy
|
231
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/lib/ruby_parser_extras.rb
|
232
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/tools/munge.rb
|
233
|
+
- bundle/ruby/3.1.0/gems/ruby_parser-3.20.3/tools/ripper.rb
|
246
234
|
- bundle/ruby/3.1.0/gems/safe_yaml-1.0.5/CHANGES.md
|
247
235
|
- bundle/ruby/3.1.0/gems/safe_yaml-1.0.5/Gemfile
|
248
236
|
- bundle/ruby/3.1.0/gems/safe_yaml-1.0.5/LICENSE.txt
|
@@ -274,16 +262,16 @@ files:
|
|
274
262
|
- bundle/ruby/3.1.0/gems/safe_yaml-1.0.5/lib/safe_yaml/version.rb
|
275
263
|
- bundle/ruby/3.1.0/gems/safe_yaml-1.0.5/run_specs_all_ruby_versions.sh
|
276
264
|
- bundle/ruby/3.1.0/gems/safe_yaml-1.0.5/safe_yaml.gemspec
|
277
|
-
- bundle/ruby/3.1.0/gems/sexp_processor-4.
|
278
|
-
- bundle/ruby/3.1.0/gems/sexp_processor-4.
|
279
|
-
- bundle/ruby/3.1.0/gems/sexp_processor-4.
|
280
|
-
- bundle/ruby/3.1.0/gems/sexp_processor-4.
|
281
|
-
- bundle/ruby/3.1.0/gems/sexp_processor-4.
|
282
|
-
- bundle/ruby/3.1.0/gems/sexp_processor-4.
|
283
|
-
- bundle/ruby/3.1.0/gems/sexp_processor-4.
|
284
|
-
- bundle/ruby/3.1.0/gems/sexp_processor-4.
|
285
|
-
- bundle/ruby/3.1.0/gems/sexp_processor-4.
|
286
|
-
- bundle/ruby/3.1.0/gems/sexp_processor-4.
|
265
|
+
- bundle/ruby/3.1.0/gems/sexp_processor-4.17.0/History.rdoc
|
266
|
+
- bundle/ruby/3.1.0/gems/sexp_processor-4.17.0/Manifest.txt
|
267
|
+
- bundle/ruby/3.1.0/gems/sexp_processor-4.17.0/README.rdoc
|
268
|
+
- bundle/ruby/3.1.0/gems/sexp_processor-4.17.0/lib/composite_sexp_processor.rb
|
269
|
+
- bundle/ruby/3.1.0/gems/sexp_processor-4.17.0/lib/pt_testcase.rb
|
270
|
+
- bundle/ruby/3.1.0/gems/sexp_processor-4.17.0/lib/sexp.rb
|
271
|
+
- bundle/ruby/3.1.0/gems/sexp_processor-4.17.0/lib/sexp_matcher.rb
|
272
|
+
- bundle/ruby/3.1.0/gems/sexp_processor-4.17.0/lib/sexp_processor.rb
|
273
|
+
- bundle/ruby/3.1.0/gems/sexp_processor-4.17.0/lib/strict_sexp.rb
|
274
|
+
- bundle/ruby/3.1.0/gems/sexp_processor-4.17.0/lib/unique.rb
|
287
275
|
- bundle/ruby/3.1.0/gems/slim-4.1.0/CHANGES
|
288
276
|
- bundle/ruby/3.1.0/gems/slim-4.1.0/Gemfile
|
289
277
|
- bundle/ruby/3.1.0/gems/slim-4.1.0/LICENSE
|
@@ -640,7 +628,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
640
628
|
requirements:
|
641
629
|
- - ">="
|
642
630
|
- !ruby/object:Gem::Version
|
643
|
-
version:
|
631
|
+
version: 3.0.0
|
644
632
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
645
633
|
requirements:
|
646
634
|
- - ">="
|
@@ -1,44 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module Parallel
|
3
|
-
# TODO: inline this method into parallel.rb and kill physical_processor_count in next major release
|
4
|
-
module ProcessorCount
|
5
|
-
# Number of processors seen by the OS, used for process scheduling
|
6
|
-
def processor_count
|
7
|
-
require 'etc'
|
8
|
-
@processor_count ||= Integer(ENV['PARALLEL_PROCESSOR_COUNT'] || Etc.nprocessors)
|
9
|
-
end
|
10
|
-
|
11
|
-
# Number of physical processor cores on the current system.
|
12
|
-
def physical_processor_count
|
13
|
-
@physical_processor_count ||= begin
|
14
|
-
ppc =
|
15
|
-
case RbConfig::CONFIG["target_os"]
|
16
|
-
when /darwin[12]/
|
17
|
-
IO.popen("/usr/sbin/sysctl -n hw.physicalcpu").read.to_i
|
18
|
-
when /linux/
|
19
|
-
cores = {} # unique physical ID / core ID combinations
|
20
|
-
phy = 0
|
21
|
-
File.read("/proc/cpuinfo").scan(/^physical id.*|^core id.*/) do |ln|
|
22
|
-
if ln.start_with?("physical")
|
23
|
-
phy = ln[/\d+/]
|
24
|
-
elsif ln.start_with?("core")
|
25
|
-
cid = "#{phy}:#{ln[/\d+/]}"
|
26
|
-
cores[cid] = true unless cores[cid]
|
27
|
-
end
|
28
|
-
end
|
29
|
-
cores.count
|
30
|
-
when /mswin|mingw/
|
31
|
-
require 'win32ole'
|
32
|
-
result_set = WIN32OLE.connect("winmgmts://").ExecQuery(
|
33
|
-
"select NumberOfCores from Win32_Processor"
|
34
|
-
)
|
35
|
-
result_set.to_enum.collect(&:NumberOfCores).reduce(:+)
|
36
|
-
else
|
37
|
-
processor_count
|
38
|
-
end
|
39
|
-
# fall back to logical count if physical info is invalid
|
40
|
-
ppc > 0 ? ppc : processor_count
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
.autotest
|
2
|
-
History.rdoc
|
3
|
-
Manifest.txt
|
4
|
-
README.rdoc
|
5
|
-
Rakefile
|
6
|
-
lib/ruby_parser/legacy.rb
|
7
|
-
lib/ruby_parser/legacy/ruby18_parser.rb
|
8
|
-
lib/ruby_parser/legacy/ruby18_parser.y
|
9
|
-
lib/ruby_parser/legacy/ruby19_parser.rb
|
10
|
-
lib/ruby_parser/legacy/ruby19_parser.y
|
11
|
-
lib/ruby_parser/legacy/ruby_lexer.rb
|
12
|
-
lib/ruby_parser/legacy/ruby_lexer.rex
|
13
|
-
lib/ruby_parser/legacy/ruby_lexer.rex.rb
|
14
|
-
lib/ruby_parser/legacy/ruby_parser.rb
|
15
|
-
lib/ruby_parser/legacy/ruby_parser_extras.rb
|
16
|
-
test/ruby_parser/test_legacy.rb
|
17
|
-
test/ruby_parser/test_ruby_lexer.rb
|
18
|
-
test/ruby_parser/test_ruby_parser.rb
|
19
|
-
test/ruby_parser/test_ruby_parser_extras.rb
|
@@ -1,54 +0,0 @@
|
|
1
|
-
= legacy
|
2
|
-
|
3
|
-
home :: https://github.com/zenspider/ruby_parser-legacy
|
4
|
-
rdoc :: http://docs.seattlerb.org/ruby_parser-legacy
|
5
|
-
|
6
|
-
== DESCRIPTION:
|
7
|
-
|
8
|
-
ruby_parser-legacy includes the ruby 1.8 and 1.9 parsers from
|
9
|
-
ruby_parser (now removed) and plugs them into the existing system.
|
10
|
-
|
11
|
-
== FEATURES/PROBLEMS:
|
12
|
-
|
13
|
-
* Drop in compatibility via one require
|
14
|
-
|
15
|
-
== SYNOPSIS:
|
16
|
-
|
17
|
-
require "ruby_parser/legacy"
|
18
|
-
|
19
|
-
rp = RubyParser.new
|
20
|
-
rp.parse File.read "very_old_ruby.rb"
|
21
|
-
# ... as usual ...
|
22
|
-
|
23
|
-
== REQUIREMENTS:
|
24
|
-
|
25
|
-
* ruby_parser 3.13+
|
26
|
-
|
27
|
-
== INSTALL:
|
28
|
-
|
29
|
-
* [sudo] gem install ruby_parser-legacy
|
30
|
-
|
31
|
-
== LICENSE:
|
32
|
-
|
33
|
-
(The MIT License)
|
34
|
-
|
35
|
-
Copyright (c) Ryan Davis, seattle.rb
|
36
|
-
|
37
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
38
|
-
a copy of this software and associated documentation files (the
|
39
|
-
'Software'), to deal in the Software without restriction, including
|
40
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
41
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
42
|
-
permit persons to whom the Software is furnished to do so, subject to
|
43
|
-
the following conditions:
|
44
|
-
|
45
|
-
The above copyright notice and this permission notice shall be
|
46
|
-
included in all copies or substantial portions of the Software.
|
47
|
-
|
48
|
-
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
49
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
50
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
51
|
-
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
52
|
-
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
53
|
-
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
54
|
-
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|