rubocop-sketchup 1.4.0 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +21 -20
  3. data/assets/output.html.erb +301 -301
  4. data/config/default.yml +400 -379
  5. data/lib/rubocop/sketchup/config.rb +63 -63
  6. data/lib/rubocop/sketchup/cop/bugs/material_name.rb +108 -108
  7. data/lib/rubocop/sketchup/cop/bugs/render_mode.rb +72 -72
  8. data/lib/rubocop/sketchup/cop/bugs/uniform_scaling.rb +36 -36
  9. data/lib/rubocop/sketchup/cop/deprecations/add_separator_to_menu.rb +25 -25
  10. data/lib/rubocop/sketchup/cop/deprecations/operation_next_transparent.rb +30 -30
  11. data/lib/rubocop/sketchup/cop/deprecations/require_all.rb +27 -27
  12. data/lib/rubocop/sketchup/cop/deprecations/set_texture_projection.rb +26 -26
  13. data/lib/rubocop/sketchup/cop/deprecations/show_ruby_panel.rb +25 -25
  14. data/lib/rubocop/sketchup/cop/deprecations/sketchup_set.rb +30 -30
  15. data/lib/rubocop/sketchup/cop/performance/openssl.rb +41 -41
  16. data/lib/rubocop/sketchup/cop/performance/operation_disable_ui.rb +33 -33
  17. data/lib/rubocop/sketchup/cop/performance/selection_bulk.rb +79 -79
  18. data/lib/rubocop/sketchup/cop/performance/type_check.rb +63 -63
  19. data/lib/rubocop/sketchup/cop/performance/typename.rb +24 -24
  20. data/lib/rubocop/sketchup/cop/requirements/api_namespace.rb +30 -30
  21. data/lib/rubocop/sketchup/cop/requirements/debug_mode.rb +27 -0
  22. data/lib/rubocop/sketchup/cop/requirements/exit.rb +33 -33
  23. data/lib/rubocop/sketchup/cop/requirements/extension_namespace.rb +125 -125
  24. data/lib/rubocop/sketchup/cop/requirements/file_structure.rb +97 -97
  25. data/lib/rubocop/sketchup/cop/requirements/gem_install.rb +45 -45
  26. data/lib/rubocop/sketchup/cop/requirements/get_extension_license.rb +95 -95
  27. data/lib/rubocop/sketchup/cop/requirements/global_constants.rb +38 -38
  28. data/lib/rubocop/sketchup/cop/requirements/global_include.rb +42 -42
  29. data/lib/rubocop/sketchup/cop/requirements/global_methods.rb +65 -65
  30. data/lib/rubocop/sketchup/cop/requirements/global_variables.rb +95 -95
  31. data/lib/rubocop/sketchup/cop/requirements/initialize_entity.rb +76 -0
  32. data/lib/rubocop/sketchup/cop/requirements/language_handler_globals.rb +46 -46
  33. data/lib/rubocop/sketchup/cop/requirements/load_path.rb +83 -83
  34. data/lib/rubocop/sketchup/cop/requirements/minimal_registration.rb +73 -73
  35. data/lib/rubocop/sketchup/cop/requirements/observers_start_operation.rb +161 -161
  36. data/lib/rubocop/sketchup/cop/requirements/register_extension.rb +45 -45
  37. data/lib/rubocop/sketchup/cop/requirements/ruby_core_namespace.rb +291 -291
  38. data/lib/rubocop/sketchup/cop/requirements/ruby_stdlib_namespace.rb +634 -634
  39. data/lib/rubocop/sketchup/cop/requirements/shipped_extensions_namespace.rb +61 -61
  40. data/lib/rubocop/sketchup/cop/requirements/sketchup_extension.rb +119 -119
  41. data/lib/rubocop/sketchup/cop/requirements/sketchup_require.rb +150 -150
  42. data/lib/rubocop/sketchup/cop/suggestions/add_group.rb +49 -49
  43. data/lib/rubocop/sketchup/cop/suggestions/compatibility.rb +128 -128
  44. data/lib/rubocop/sketchup/cop/suggestions/dc_internals.rb +34 -34
  45. data/lib/rubocop/sketchup/cop/suggestions/file_encoding.rb +78 -78
  46. data/lib/rubocop/sketchup/cop/suggestions/model_entities.rb +58 -58
  47. data/lib/rubocop/sketchup/cop/suggestions/monkey_patched_api.rb +45 -45
  48. data/lib/rubocop/sketchup/cop/suggestions/operation_name.rb +137 -137
  49. data/lib/rubocop/sketchup/cop/suggestions/sketchup_find_support_file.rb +39 -39
  50. data/lib/rubocop/sketchup/cop/suggestions/sleep.rb +25 -0
  51. data/lib/rubocop/sketchup/cop/suggestions/tool_drawing_bounds.rb +45 -45
  52. data/lib/rubocop/sketchup/cop/suggestions/tool_invalidate.rb +68 -68
  53. data/lib/rubocop/sketchup/cop/suggestions/tool_user_input.rb +41 -41
  54. data/lib/rubocop/sketchup/cop/suggestions/toolbar_timer.rb +65 -65
  55. data/lib/rubocop/sketchup/cop.rb +110 -110
  56. data/lib/rubocop/sketchup/dc_globals.rb +24 -24
  57. data/lib/rubocop/sketchup/dc_methods.rb +130 -130
  58. data/lib/rubocop/sketchup/extension_project.rb +65 -65
  59. data/lib/rubocop/sketchup/features.rb +1514 -1477
  60. data/lib/rubocop/sketchup/formatter/extension_review.rb +269 -269
  61. data/lib/rubocop/sketchup/generator.rb +21 -0
  62. data/lib/rubocop/sketchup/inject.rb +19 -19
  63. data/lib/rubocop/sketchup/namespace.rb +49 -49
  64. data/lib/rubocop/sketchup/namespace_checker.rb +103 -103
  65. data/lib/rubocop/sketchup/no_comment_disable.rb +17 -17
  66. data/lib/rubocop/sketchup/range_help.rb +52 -52
  67. data/lib/rubocop/sketchup/sketchup_target_range.rb +75 -75
  68. data/lib/rubocop/sketchup/sketchup_version.rb +131 -129
  69. data/lib/rubocop/sketchup/tool_checker.rb +41 -41
  70. data/lib/rubocop/sketchup/version.rb +7 -7
  71. data/lib/rubocop/sketchup.rb +14 -14
  72. data/lib/rubocop-sketchup.rb +53 -53
  73. data/rubocop-sketchup.gemspec +28 -29
  74. metadata +7 -23
@@ -1,634 +1,634 @@
1
- # frozen_string_literal: true
2
-
3
- module RuboCop
4
- module Cop
5
- module SketchupRequirements
6
- # Extensions in SketchUp all share the same Ruby environment on the user's
7
- # machine. Because of this it's important that each extension isolate
8
- # itself to avoid clashing with other extensions.
9
- #
10
- # Extensions submitted to Extension Warehouse is expected to not modify
11
- # Ruby StdLib functionality.
12
- class RubyStdLibNamespace < SketchUp::Cop
13
-
14
- include SketchUp::NoCommentDisable
15
- include SketchUp::NamespaceChecker
16
-
17
- MSG = 'Do not modify Ruby stdlib functionality.'
18
-
19
- # We check only against the top level namespaces. The stdlib define more
20
- # objects, but they are under one of the top level namespaces listed.
21
-
22
- NAMESPACES_RUBY_1_8_6_STDLIB = [
23
- 'class Benchmark',
24
- 'class BigDecimal',
25
- 'class CGI',
26
- 'class CSV',
27
- 'class Curses',
28
- 'class Date',
29
- 'class DateTime',
30
- 'class DBM',
31
- 'class DBMError',
32
- 'class Delegater',
33
- 'class Delegator',
34
- 'class SimpleDelegater',
35
- 'class SimpleDelegator',
36
- 'class Digest',
37
- 'class MD5',
38
- 'class SHA1',
39
- 'class DL',
40
- 'class Win32API',
41
- 'class ACL',
42
- 'class DRb',
43
- 'class Foo',
44
- 'class ERB',
45
- 'class GDBM',
46
- 'class GDBMError',
47
- 'class GDBMFatalError',
48
- 'class Generator',
49
- 'class SyncEnumerator',
50
- 'class GetoptLong',
51
- 'class GServer',
52
- 'class Iconv',
53
- 'class IPAddr',
54
- 'class Socket',
55
- 'class IRB',
56
- 'class RubyLex',
57
- 'class RubyToken',
58
- 'class XMP',
59
- 'class Logger',
60
- 'class Mail',
61
- 'class Prime',
62
- 'class Matrix',
63
- 'class Vector',
64
- 'class Monitor',
65
- 'class MonitorMixin',
66
- 'class Net',
67
- 'class OpenURI',
68
- 'class URI',
69
- 'class OpenSSL',
70
- 'class OptionParser',
71
- 'class OpenStruct',
72
- 'class Pathname',
73
- 'class PP',
74
- 'class PrettyPrint',
75
- 'class PStore',
76
- 'class PTY',
77
- 'class Racc',
78
- 'class DOT',
79
- 'class DefaultDisplay',
80
- 'class Generators',
81
- 'class NameDescriptor',
82
- 'class Options',
83
- 'class RDoc',
84
- 'class RI',
85
- 'class RiDriver',
86
- 'class RiError',
87
- 'class SM',
88
- 'class TemplatePage',
89
- 'class TruncatedDataError',
90
- 'class Resolv',
91
- 'class SOCKSSocket',
92
- 'class TCPSocket',
93
- 'class UDPSocket',
94
- 'class REXML',
95
- 'class Rinda',
96
- 'class RSS',
97
- 'class XML',
98
- 'class XMLEncoding_ja',
99
- 'class RUNIT',
100
- 'class Scanf',
101
- 'class SDBM',
102
- 'class SDBMError',
103
- 'class Set',
104
- 'class SortedSet',
105
- 'class Shell',
106
- 'class SOAP',
107
- 'class WEBrick',
108
- 'class BasicSocket',
109
- 'class IPSocket',
110
- 'class SocketError',
111
- 'class TCPServer',
112
- 'class UNIXServer',
113
- 'class UNIXSocket',
114
- 'class StringIO',
115
- 'class StringScanner',
116
- 'class Sync_m',
117
- 'class Synchronizer',
118
- 'class TestSyslog',
119
- 'class Tempfile',
120
- 'class Test',
121
- 'class ThWait',
122
- 'class Timeout',
123
- 'class Tracer',
124
- 'class TSort',
125
- 'class WeakRef',
126
- 'class Win32',
127
- 'class OLEProperty',
128
- 'class WIN32OLE',
129
- 'class WIN32OLERuntimeError',
130
- 'class WIN32OLE_EVENT',
131
- 'class WIN32OLE_METHOD',
132
- 'class WIN32OLE_PARAM',
133
- 'class WIN32OLE_TYPE',
134
- 'class WIN32OLE_VARIABLE',
135
- 'class WSDL',
136
- 'class HttpServer',
137
- 'class NQXML',
138
- 'class XMLRPC',
139
- 'class XSD',
140
- 'class YAML',
141
- 'class Zlib',
142
- 'module Abbrev',
143
- 'module Base64',
144
- 'module Benchmark',
145
- 'module BigMath',
146
- 'module Jacobian',
147
- 'module LUSolve',
148
- 'module Newton',
149
- 'module CGI',
150
- 'module Curses',
151
- 'module Digest',
152
- 'module DL',
153
- 'module DRb',
154
- 'module ERB',
155
- 'module Etc',
156
- 'module Fcntl',
157
- 'module FileUtils',
158
- 'module Finalizer',
159
- 'module Find',
160
- 'module Forwardable',
161
- 'module SingleForwardable',
162
- 'module Iconv',
163
- 'module IPSocket',
164
- 'module IRB',
165
- 'module RubyToken',
166
- 'module Logger',
167
- 'module Config',
168
- 'module Logging',
169
- 'module MonitorMixin',
170
- 'module Mutex_m',
171
- 'module Net',
172
- 'module Kconv',
173
- 'module NKF',
174
- 'module Observable',
175
- 'module OpenURI',
176
- 'module URI',
177
- 'module Open3',
178
- 'module Buffering',
179
- 'module OpenSSL',
180
- 'module OptionParser',
181
- 'module ParseDate',
182
- 'module Pathname',
183
- 'module Ping',
184
- 'module PP',
185
- 'module Profiler__',
186
- 'module PStore',
187
- 'module PTY',
188
- 'module Racc',
189
- 'module DOT',
190
- 'module Generators',
191
- 'module Options',
192
- 'module RDoc',
193
- 'module RI',
194
- 'module RiDisplay',
195
- 'module SM',
196
- 'module TokenStream',
197
- 'module Readline',
198
- 'module Resolv',
199
- 'module REXML',
200
- 'module Rinda',
201
- 'module RSS',
202
- 'module XML',
203
- 'module XMLEncoding_ja',
204
- 'module RUNIT',
205
- 'module Scanf',
206
- 'module Shell',
207
- 'module Singleton',
208
- 'module SOAP',
209
- 'module WEBrick',
210
- 'module Socket',
211
- 'module Synchronizer_m',
212
- 'module Syslog',
213
- 'module Test',
214
- 'module Timeout',
215
- 'module TSort',
216
- 'module Win32',
217
- 'module WIN32OLE',
218
- 'module WSDL',
219
- 'module NQXML',
220
- 'module XMLRPC',
221
- 'module XSD',
222
- 'module YAML',
223
- 'module Zlib',
224
- ].freeze
225
-
226
- NAMESPACES_RUBY_2_0_0_STDLIB = [
227
- 'class Benchmark',
228
- 'class BigDecimal',
229
- 'class CGI',
230
- 'class CSV',
231
- 'class Curses',
232
- 'class FileViewer',
233
- 'class Date',
234
- 'class DateTime',
235
- 'class DBM',
236
- 'class DBMError',
237
- 'class DEBUGGER__',
238
- 'class Delegator',
239
- 'class SimpleDelegator',
240
- 'class Digest',
241
- 'class DL',
242
- 'class Win32',
243
- 'class Win32API',
244
- 'class ACL',
245
- 'class DRb',
246
- 'class Foo',
247
- 'class ERB',
248
- 'class Fiddle',
249
- 'class FileUtils',
250
- 'class GDBM',
251
- 'class GDBMError',
252
- 'class GDBMFatalError',
253
- 'class GetoptLong',
254
- 'class GServer',
255
- 'class IPAddr',
256
- 'class Socket',
257
- 'class IRB',
258
- 'class RubyLex',
259
- 'class RubyToken',
260
- 'class XMP',
261
- 'class JSON',
262
- 'class OpenStruct',
263
- 'class Logger',
264
- 'class Matrix',
265
- 'class Vector',
266
- 'class MiniTest',
267
- 'class ParallelEach',
268
- 'class PrideIO',
269
- 'class PrideLOL',
270
- 'class Monitor',
271
- 'class MonitorMixin',
272
- 'class Net',
273
- 'class EXCEPTION_TYPE',
274
- 'class HTTPMovedTemporarily',
275
- 'class HTTPMultipleChoice',
276
- 'class HTTPRequestURITooLarge',
277
- 'class OpenURI',
278
- 'class URI',
279
- 'class OpenSSL',
280
- 'class OptionParser',
281
- 'class Pathname',
282
- 'class PP',
283
- 'class PrettyPrint',
284
- 'class Prime',
285
- 'class PStore',
286
- 'class Psych',
287
- 'class PTY',
288
- 'class Racc',
289
- 'class CompositePublisher',
290
- 'class Rake',
291
- 'class SshDirPublisher',
292
- 'class SshFilePublisher',
293
- 'class SshFreshDirPublisher',
294
- 'class RDoc',
295
- 'class RDocTask',
296
- 'class Resolv',
297
- 'class IPSocket',
298
- 'class SOCKSSocket',
299
- 'class TCPSocket',
300
- 'class UDPSocket',
301
- 'class REXML',
302
- 'class Rinda',
303
- 'class Ripper',
304
- 'class RSS',
305
- 'class XML',
306
- 'class XMLEncoding_ja',
307
- 'class Gem',
308
- 'class Requirement',
309
- 'class TempIO',
310
- 'class YAML',
311
- 'class Scanf',
312
- 'class SDBM',
313
- 'class SDBMError',
314
- 'class Set',
315
- 'class SortedSet',
316
- 'class Shell',
317
- 'class Addrinfo',
318
- 'class BasicSocket',
319
- 'class SocketError',
320
- 'class TCPServer',
321
- 'class UNIXServer',
322
- 'class UNIXSocket',
323
- 'class StringIO',
324
- 'class StringScanner',
325
- 'class Sync_m',
326
- 'class Synchronizer',
327
- 'class Syslog',
328
- 'class Tempfile',
329
- 'class Test',
330
- 'class ThWait',
331
- 'class Timeout',
332
- 'class Tracer',
333
- 'class TSort',
334
- 'class WeakRef',
335
- 'class WEBrick',
336
- 'class OLEProperty',
337
- 'class WIN32OLE',
338
- 'class WIN32OLERuntimeError',
339
- 'class WIN32OLE_EVENT',
340
- 'class WIN32OLE_METHOD',
341
- 'class WIN32OLE_PARAM',
342
- 'class WIN32OLE_TYPE',
343
- 'class WIN32OLE_TYPELIB',
344
- 'class WIN32OLE_VARIABLE',
345
- 'class WIN32OLE_VARIANT',
346
- 'class HttpServer',
347
- 'class NQXML',
348
- 'class XMLRPC',
349
- 'class Zlib',
350
- 'module Abbrev',
351
- 'module Base64',
352
- 'module Benchmark',
353
- 'module BigMath',
354
- 'module Jacobian',
355
- 'module LUSolve',
356
- 'module Newton',
357
- 'module CGI',
358
- 'module CMath',
359
- 'module Coverage',
360
- 'module Curses',
361
- 'module DEBUGGER__',
362
- 'module Digest',
363
- 'module DL',
364
- 'module Win32',
365
- 'module DRb',
366
- 'module E2MM',
367
- 'module English',
368
- 'module ERB',
369
- 'module Etc',
370
- 'module FileUtils',
371
- 'module RbConfig',
372
- 'module Fcntl',
373
- 'module Fiddle',
374
- 'module Find',
375
- 'module Forwardable',
376
- 'module SingleForwardable',
377
- 'module IPSocket',
378
- 'module IRB',
379
- 'module RubyToken',
380
- 'module JSON',
381
- 'module Logger',
382
- 'module MiniTest',
383
- 'module Minitest',
384
- 'module MakeMakefile',
385
- 'module MonitorMixin',
386
- 'module Mutex_m',
387
- 'module Net',
388
- 'module Kconv',
389
- 'module NKF',
390
- 'module Observable',
391
- 'module OpenURI',
392
- 'module URI',
393
- 'module Open3',
394
- 'module OpenSSL',
395
- 'module OptionParser',
396
- 'module Pathname',
397
- 'module PP',
398
- 'module Prime',
399
- 'module Profiler__',
400
- 'module Psych',
401
- 'module PTY',
402
- 'module Racc',
403
- 'module RDoc',
404
- 'module Rake',
405
- 'module Sys',
406
- 'module Readline',
407
- 'module Resolv',
408
- 'module REXML',
409
- 'module Rinda',
410
- 'module RSS',
411
- 'module XML',
412
- 'module XMLEncoding_ja',
413
- 'module Gem',
414
- 'module YAML',
415
- 'module Scanf',
416
- 'module SecureRandom',
417
- 'module Shell',
418
- 'module Shellwords',
419
- 'module Singleton',
420
- 'module Synchronizer_m',
421
- 'module Syslog',
422
- 'module Test',
423
- 'module Timeout',
424
- 'module TSort',
425
- 'module WeakRef',
426
- 'module WEBrick',
427
- 'module WIN32OLE',
428
- 'module NQXML',
429
- 'module XMLRPC',
430
- 'module Zlib',
431
- ].freeze
432
-
433
- NAMESPACES_RUBY_2_2_6_STDLIB = [
434
- 'class Benchmark',
435
- 'class BigDecimal',
436
- 'class CGI',
437
- 'class CSV',
438
- 'class Date',
439
- 'class DateTime',
440
- 'class DBM',
441
- 'class DBMError',
442
- 'class DEBUGGER__',
443
- 'class Delegator',
444
- 'class SimpleDelegator',
445
- 'class Digest',
446
- 'class ACL',
447
- 'class DRb',
448
- 'class ERB',
449
- 'class Fiddle',
450
- 'class FileUtils',
451
- 'class GDBM',
452
- 'class GDBMError',
453
- 'class GDBMFatalError',
454
- 'class GetoptLong',
455
- 'class IPAddr',
456
- 'class Socket',
457
- 'class IRB',
458
- 'class RubyLex',
459
- 'class RubyToken',
460
- 'class XMP',
461
- 'class JSON',
462
- 'class OpenStruct',
463
- 'class Logger',
464
- 'class Matrix',
465
- 'class Vector',
466
- 'class Monitor',
467
- 'class MonitorMixin',
468
- 'class Net',
469
- 'class EXCEPTION_TYPE',
470
- 'class HTTPMovedTemporarily',
471
- 'class HTTPMultipleChoice',
472
- 'class HTTPRequestURITooLarge',
473
- 'class OpenURI',
474
- 'class URI',
475
- 'class OpenSSL',
476
- 'class OptParse',
477
- 'class OptionParser',
478
- 'class Pathname',
479
- 'class PP',
480
- 'class PrettyPrint',
481
- 'class Prime',
482
- 'class PStore',
483
- 'class Psych',
484
- 'class PTY',
485
- 'class Racc',
486
- 'class Rake',
487
- 'class RDoc',
488
- 'class RDocTask',
489
- 'class Resolv',
490
- 'class IPSocket',
491
- 'class SOCKSSocket',
492
- 'class TCPSocket',
493
- 'class UDPSocket',
494
- 'class REXML',
495
- 'class Rinda',
496
- 'class Ripper',
497
- 'class RSS',
498
- 'class XML',
499
- 'class XMLEncoding_ja',
500
- 'class Gem',
501
- 'class TempIO',
502
- 'class Scanf',
503
- 'class SDBM',
504
- 'class SDBMError',
505
- 'class Set',
506
- 'class SortedSet',
507
- 'class Shell',
508
- 'class Addrinfo',
509
- 'class BasicSocket',
510
- 'class SocketError',
511
- 'class TCPServer',
512
- 'class UNIXServer',
513
- 'class UNIXSocket',
514
- 'class StringIO',
515
- 'class StringScanner',
516
- 'class Sync_m',
517
- 'class Synchronizer',
518
- 'class Syslog',
519
- 'class Tempfile',
520
- 'class ThWait',
521
- 'class Timeout',
522
- 'class Tracer',
523
- 'class TSort',
524
- 'class WeakRef',
525
- 'class WEBrick',
526
- 'class OLEProperty',
527
- 'class WIN32OLE',
528
- 'class WIN32OLERuntimeError',
529
- 'class WIN32OLE_EVENT',
530
- 'class WIN32OLE_METHOD',
531
- 'class WIN32OLE_PARAM',
532
- 'class WIN32OLE_RECORD',
533
- 'class WIN32OLE_TYPE',
534
- 'class WIN32OLE_TYPELIB',
535
- 'class WIN32OLE_VARIABLE',
536
- 'class WIN32OLE_VARIANT',
537
- 'class NQXML',
538
- 'class XMLRPC',
539
- 'class YAML',
540
- 'class Zlib',
541
- 'module Abbrev',
542
- 'module Base64',
543
- 'module Benchmark',
544
- 'module BigMath',
545
- 'module Jacobian',
546
- 'module LUSolve',
547
- 'module Newton',
548
- 'module CGI',
549
- 'module CMath',
550
- 'module Coverage',
551
- 'module DEBUGGER__',
552
- 'module Digest',
553
- 'module DRb',
554
- 'module Exception2MessageMapper',
555
- 'module English',
556
- 'module ERB',
557
- 'module Etc',
558
- 'module FileUtils',
559
- 'module RbConfig',
560
- 'module Fcntl',
561
- 'module Fiddle',
562
- 'module Find',
563
- 'module Forwardable',
564
- 'module SingleForwardable',
565
- 'module IPSocket',
566
- 'module IRB',
567
- 'module RubyToken',
568
- 'module JSON',
569
- 'module Logger',
570
- 'module MakeMakefile',
571
- 'module MonitorMixin',
572
- 'module Mutex_m',
573
- 'module Net',
574
- 'module Kconv',
575
- 'module NKF',
576
- 'module Observable',
577
- 'module OpenURI',
578
- 'module URI',
579
- 'module Open3',
580
- 'module OpenSSL',
581
- 'module OptionParser',
582
- 'module Pathname',
583
- 'module PP',
584
- 'module Prime',
585
- 'module Profiler__',
586
- 'module Psych',
587
- 'module PTY',
588
- 'module Racc',
589
- 'module Rake',
590
- 'module RDoc',
591
- 'module Test',
592
- 'module Readline',
593
- 'module Resolv',
594
- 'module REXML',
595
- 'module Rinda',
596
- 'module RSS',
597
- 'module XML',
598
- 'module XMLEncoding_ja',
599
- 'module Gem',
600
- 'module YAML',
601
- 'module Scanf',
602
- 'module SecureRandom',
603
- 'module Shell',
604
- 'module Shellwords',
605
- 'module Singleton',
606
- 'module Synchronizer_m',
607
- 'module Syslog',
608
- 'module Timeout',
609
- 'module TSort',
610
- 'module UnicodeNormalize',
611
- 'module WeakRef',
612
- 'module WEBrick',
613
- 'module WIN32OLE',
614
- 'module NQXML',
615
- 'module XMLRPC',
616
- 'module Zlib',
617
- ].freeze
618
-
619
- NAMESPACES_RUBY_STDLIB = (
620
- NAMESPACES_RUBY_1_8_6_STDLIB |
621
- NAMESPACES_RUBY_2_0_0_STDLIB |
622
- NAMESPACES_RUBY_2_2_6_STDLIB
623
- ).freeze
624
-
625
- NAMESPACES = NAMESPACES_RUBY_STDLIB.map { |item| item.split(' ').last }
626
-
627
- def namespaces
628
- NAMESPACES
629
- end
630
-
631
- end
632
- end
633
- end
634
- end
1
+ # frozen_string_literal: true
2
+
3
+ module RuboCop
4
+ module Cop
5
+ module SketchupRequirements
6
+ # Extensions in SketchUp all share the same Ruby environment on the user's
7
+ # machine. Because of this it's important that each extension isolate
8
+ # itself to avoid clashing with other extensions.
9
+ #
10
+ # Extensions submitted to Extension Warehouse is expected to not modify
11
+ # Ruby StdLib functionality.
12
+ class RubyStdLibNamespace < SketchUp::Cop
13
+
14
+ include SketchUp::NoCommentDisable
15
+ include SketchUp::NamespaceChecker
16
+
17
+ MSG = 'Do not modify Ruby stdlib functionality.'
18
+
19
+ # We check only against the top level namespaces. The stdlib define more
20
+ # objects, but they are under one of the top level namespaces listed.
21
+
22
+ NAMESPACES_RUBY_1_8_6_STDLIB = [
23
+ 'class Benchmark',
24
+ 'class BigDecimal',
25
+ 'class CGI',
26
+ 'class CSV',
27
+ 'class Curses',
28
+ 'class Date',
29
+ 'class DateTime',
30
+ 'class DBM',
31
+ 'class DBMError',
32
+ 'class Delegater',
33
+ 'class Delegator',
34
+ 'class SimpleDelegater',
35
+ 'class SimpleDelegator',
36
+ 'class Digest',
37
+ 'class MD5',
38
+ 'class SHA1',
39
+ 'class DL',
40
+ 'class Win32API',
41
+ 'class ACL',
42
+ 'class DRb',
43
+ 'class Foo',
44
+ 'class ERB',
45
+ 'class GDBM',
46
+ 'class GDBMError',
47
+ 'class GDBMFatalError',
48
+ 'class Generator',
49
+ 'class SyncEnumerator',
50
+ 'class GetoptLong',
51
+ 'class GServer',
52
+ 'class Iconv',
53
+ 'class IPAddr',
54
+ 'class Socket',
55
+ 'class IRB',
56
+ 'class RubyLex',
57
+ 'class RubyToken',
58
+ 'class XMP',
59
+ 'class Logger',
60
+ 'class Mail',
61
+ 'class Prime',
62
+ 'class Matrix',
63
+ 'class Vector',
64
+ 'class Monitor',
65
+ 'class MonitorMixin',
66
+ 'class Net',
67
+ 'class OpenURI',
68
+ 'class URI',
69
+ 'class OpenSSL',
70
+ 'class OptionParser',
71
+ 'class OpenStruct',
72
+ 'class Pathname',
73
+ 'class PP',
74
+ 'class PrettyPrint',
75
+ 'class PStore',
76
+ 'class PTY',
77
+ 'class Racc',
78
+ 'class DOT',
79
+ 'class DefaultDisplay',
80
+ 'class Generators',
81
+ 'class NameDescriptor',
82
+ 'class Options',
83
+ 'class RDoc',
84
+ 'class RI',
85
+ 'class RiDriver',
86
+ 'class RiError',
87
+ 'class SM',
88
+ 'class TemplatePage',
89
+ 'class TruncatedDataError',
90
+ 'class Resolv',
91
+ 'class SOCKSSocket',
92
+ 'class TCPSocket',
93
+ 'class UDPSocket',
94
+ 'class REXML',
95
+ 'class Rinda',
96
+ 'class RSS',
97
+ 'class XML',
98
+ 'class XMLEncoding_ja',
99
+ 'class RUNIT',
100
+ 'class Scanf',
101
+ 'class SDBM',
102
+ 'class SDBMError',
103
+ 'class Set',
104
+ 'class SortedSet',
105
+ 'class Shell',
106
+ 'class SOAP',
107
+ 'class WEBrick',
108
+ 'class BasicSocket',
109
+ 'class IPSocket',
110
+ 'class SocketError',
111
+ 'class TCPServer',
112
+ 'class UNIXServer',
113
+ 'class UNIXSocket',
114
+ 'class StringIO',
115
+ 'class StringScanner',
116
+ 'class Sync_m',
117
+ 'class Synchronizer',
118
+ 'class TestSyslog',
119
+ 'class Tempfile',
120
+ 'class Test',
121
+ 'class ThWait',
122
+ 'class Timeout',
123
+ 'class Tracer',
124
+ 'class TSort',
125
+ 'class WeakRef',
126
+ 'class Win32',
127
+ 'class OLEProperty',
128
+ 'class WIN32OLE',
129
+ 'class WIN32OLERuntimeError',
130
+ 'class WIN32OLE_EVENT',
131
+ 'class WIN32OLE_METHOD',
132
+ 'class WIN32OLE_PARAM',
133
+ 'class WIN32OLE_TYPE',
134
+ 'class WIN32OLE_VARIABLE',
135
+ 'class WSDL',
136
+ 'class HttpServer',
137
+ 'class NQXML',
138
+ 'class XMLRPC',
139
+ 'class XSD',
140
+ 'class YAML',
141
+ 'class Zlib',
142
+ 'module Abbrev',
143
+ 'module Base64',
144
+ 'module Benchmark',
145
+ 'module BigMath',
146
+ 'module Jacobian',
147
+ 'module LUSolve',
148
+ 'module Newton',
149
+ 'module CGI',
150
+ 'module Curses',
151
+ 'module Digest',
152
+ 'module DL',
153
+ 'module DRb',
154
+ 'module ERB',
155
+ 'module Etc',
156
+ 'module Fcntl',
157
+ 'module FileUtils',
158
+ 'module Finalizer',
159
+ 'module Find',
160
+ 'module Forwardable',
161
+ 'module SingleForwardable',
162
+ 'module Iconv',
163
+ 'module IPSocket',
164
+ 'module IRB',
165
+ 'module RubyToken',
166
+ 'module Logger',
167
+ 'module Config',
168
+ 'module Logging',
169
+ 'module MonitorMixin',
170
+ 'module Mutex_m',
171
+ 'module Net',
172
+ 'module Kconv',
173
+ 'module NKF',
174
+ 'module Observable',
175
+ 'module OpenURI',
176
+ 'module URI',
177
+ 'module Open3',
178
+ 'module Buffering',
179
+ 'module OpenSSL',
180
+ 'module OptionParser',
181
+ 'module ParseDate',
182
+ 'module Pathname',
183
+ 'module Ping',
184
+ 'module PP',
185
+ 'module Profiler__',
186
+ 'module PStore',
187
+ 'module PTY',
188
+ 'module Racc',
189
+ 'module DOT',
190
+ 'module Generators',
191
+ 'module Options',
192
+ 'module RDoc',
193
+ 'module RI',
194
+ 'module RiDisplay',
195
+ 'module SM',
196
+ 'module TokenStream',
197
+ 'module Readline',
198
+ 'module Resolv',
199
+ 'module REXML',
200
+ 'module Rinda',
201
+ 'module RSS',
202
+ 'module XML',
203
+ 'module XMLEncoding_ja',
204
+ 'module RUNIT',
205
+ 'module Scanf',
206
+ 'module Shell',
207
+ 'module Singleton',
208
+ 'module SOAP',
209
+ 'module WEBrick',
210
+ 'module Socket',
211
+ 'module Synchronizer_m',
212
+ 'module Syslog',
213
+ 'module Test',
214
+ 'module Timeout',
215
+ 'module TSort',
216
+ 'module Win32',
217
+ 'module WIN32OLE',
218
+ 'module WSDL',
219
+ 'module NQXML',
220
+ 'module XMLRPC',
221
+ 'module XSD',
222
+ 'module YAML',
223
+ 'module Zlib',
224
+ ].freeze
225
+
226
+ NAMESPACES_RUBY_2_0_0_STDLIB = [
227
+ 'class Benchmark',
228
+ 'class BigDecimal',
229
+ 'class CGI',
230
+ 'class CSV',
231
+ 'class Curses',
232
+ 'class FileViewer',
233
+ 'class Date',
234
+ 'class DateTime',
235
+ 'class DBM',
236
+ 'class DBMError',
237
+ 'class DEBUGGER__',
238
+ 'class Delegator',
239
+ 'class SimpleDelegator',
240
+ 'class Digest',
241
+ 'class DL',
242
+ 'class Win32',
243
+ 'class Win32API',
244
+ 'class ACL',
245
+ 'class DRb',
246
+ 'class Foo',
247
+ 'class ERB',
248
+ 'class Fiddle',
249
+ 'class FileUtils',
250
+ 'class GDBM',
251
+ 'class GDBMError',
252
+ 'class GDBMFatalError',
253
+ 'class GetoptLong',
254
+ 'class GServer',
255
+ 'class IPAddr',
256
+ 'class Socket',
257
+ 'class IRB',
258
+ 'class RubyLex',
259
+ 'class RubyToken',
260
+ 'class XMP',
261
+ 'class JSON',
262
+ 'class OpenStruct',
263
+ 'class Logger',
264
+ 'class Matrix',
265
+ 'class Vector',
266
+ 'class MiniTest',
267
+ 'class ParallelEach',
268
+ 'class PrideIO',
269
+ 'class PrideLOL',
270
+ 'class Monitor',
271
+ 'class MonitorMixin',
272
+ 'class Net',
273
+ 'class EXCEPTION_TYPE',
274
+ 'class HTTPMovedTemporarily',
275
+ 'class HTTPMultipleChoice',
276
+ 'class HTTPRequestURITooLarge',
277
+ 'class OpenURI',
278
+ 'class URI',
279
+ 'class OpenSSL',
280
+ 'class OptionParser',
281
+ 'class Pathname',
282
+ 'class PP',
283
+ 'class PrettyPrint',
284
+ 'class Prime',
285
+ 'class PStore',
286
+ 'class Psych',
287
+ 'class PTY',
288
+ 'class Racc',
289
+ 'class CompositePublisher',
290
+ 'class Rake',
291
+ 'class SshDirPublisher',
292
+ 'class SshFilePublisher',
293
+ 'class SshFreshDirPublisher',
294
+ 'class RDoc',
295
+ 'class RDocTask',
296
+ 'class Resolv',
297
+ 'class IPSocket',
298
+ 'class SOCKSSocket',
299
+ 'class TCPSocket',
300
+ 'class UDPSocket',
301
+ 'class REXML',
302
+ 'class Rinda',
303
+ 'class Ripper',
304
+ 'class RSS',
305
+ 'class XML',
306
+ 'class XMLEncoding_ja',
307
+ 'class Gem',
308
+ 'class Requirement',
309
+ 'class TempIO',
310
+ 'class YAML',
311
+ 'class Scanf',
312
+ 'class SDBM',
313
+ 'class SDBMError',
314
+ 'class Set',
315
+ 'class SortedSet',
316
+ 'class Shell',
317
+ 'class Addrinfo',
318
+ 'class BasicSocket',
319
+ 'class SocketError',
320
+ 'class TCPServer',
321
+ 'class UNIXServer',
322
+ 'class UNIXSocket',
323
+ 'class StringIO',
324
+ 'class StringScanner',
325
+ 'class Sync_m',
326
+ 'class Synchronizer',
327
+ 'class Syslog',
328
+ 'class Tempfile',
329
+ 'class Test',
330
+ 'class ThWait',
331
+ 'class Timeout',
332
+ 'class Tracer',
333
+ 'class TSort',
334
+ 'class WeakRef',
335
+ 'class WEBrick',
336
+ 'class OLEProperty',
337
+ 'class WIN32OLE',
338
+ 'class WIN32OLERuntimeError',
339
+ 'class WIN32OLE_EVENT',
340
+ 'class WIN32OLE_METHOD',
341
+ 'class WIN32OLE_PARAM',
342
+ 'class WIN32OLE_TYPE',
343
+ 'class WIN32OLE_TYPELIB',
344
+ 'class WIN32OLE_VARIABLE',
345
+ 'class WIN32OLE_VARIANT',
346
+ 'class HttpServer',
347
+ 'class NQXML',
348
+ 'class XMLRPC',
349
+ 'class Zlib',
350
+ 'module Abbrev',
351
+ 'module Base64',
352
+ 'module Benchmark',
353
+ 'module BigMath',
354
+ 'module Jacobian',
355
+ 'module LUSolve',
356
+ 'module Newton',
357
+ 'module CGI',
358
+ 'module CMath',
359
+ 'module Coverage',
360
+ 'module Curses',
361
+ 'module DEBUGGER__',
362
+ 'module Digest',
363
+ 'module DL',
364
+ 'module Win32',
365
+ 'module DRb',
366
+ 'module E2MM',
367
+ 'module English',
368
+ 'module ERB',
369
+ 'module Etc',
370
+ 'module FileUtils',
371
+ 'module RbConfig',
372
+ 'module Fcntl',
373
+ 'module Fiddle',
374
+ 'module Find',
375
+ 'module Forwardable',
376
+ 'module SingleForwardable',
377
+ 'module IPSocket',
378
+ 'module IRB',
379
+ 'module RubyToken',
380
+ 'module JSON',
381
+ 'module Logger',
382
+ 'module MiniTest',
383
+ 'module Minitest',
384
+ 'module MakeMakefile',
385
+ 'module MonitorMixin',
386
+ 'module Mutex_m',
387
+ 'module Net',
388
+ 'module Kconv',
389
+ 'module NKF',
390
+ 'module Observable',
391
+ 'module OpenURI',
392
+ 'module URI',
393
+ 'module Open3',
394
+ 'module OpenSSL',
395
+ 'module OptionParser',
396
+ 'module Pathname',
397
+ 'module PP',
398
+ 'module Prime',
399
+ 'module Profiler__',
400
+ 'module Psych',
401
+ 'module PTY',
402
+ 'module Racc',
403
+ 'module RDoc',
404
+ 'module Rake',
405
+ 'module Sys',
406
+ 'module Readline',
407
+ 'module Resolv',
408
+ 'module REXML',
409
+ 'module Rinda',
410
+ 'module RSS',
411
+ 'module XML',
412
+ 'module XMLEncoding_ja',
413
+ 'module Gem',
414
+ 'module YAML',
415
+ 'module Scanf',
416
+ 'module SecureRandom',
417
+ 'module Shell',
418
+ 'module Shellwords',
419
+ 'module Singleton',
420
+ 'module Synchronizer_m',
421
+ 'module Syslog',
422
+ 'module Test',
423
+ 'module Timeout',
424
+ 'module TSort',
425
+ 'module WeakRef',
426
+ 'module WEBrick',
427
+ 'module WIN32OLE',
428
+ 'module NQXML',
429
+ 'module XMLRPC',
430
+ 'module Zlib',
431
+ ].freeze
432
+
433
+ NAMESPACES_RUBY_2_2_6_STDLIB = [
434
+ 'class Benchmark',
435
+ 'class BigDecimal',
436
+ 'class CGI',
437
+ 'class CSV',
438
+ 'class Date',
439
+ 'class DateTime',
440
+ 'class DBM',
441
+ 'class DBMError',
442
+ 'class DEBUGGER__',
443
+ 'class Delegator',
444
+ 'class SimpleDelegator',
445
+ 'class Digest',
446
+ 'class ACL',
447
+ 'class DRb',
448
+ 'class ERB',
449
+ 'class Fiddle',
450
+ 'class FileUtils',
451
+ 'class GDBM',
452
+ 'class GDBMError',
453
+ 'class GDBMFatalError',
454
+ 'class GetoptLong',
455
+ 'class IPAddr',
456
+ 'class Socket',
457
+ 'class IRB',
458
+ 'class RubyLex',
459
+ 'class RubyToken',
460
+ 'class XMP',
461
+ 'class JSON',
462
+ 'class OpenStruct',
463
+ 'class Logger',
464
+ 'class Matrix',
465
+ 'class Vector',
466
+ 'class Monitor',
467
+ 'class MonitorMixin',
468
+ 'class Net',
469
+ 'class EXCEPTION_TYPE',
470
+ 'class HTTPMovedTemporarily',
471
+ 'class HTTPMultipleChoice',
472
+ 'class HTTPRequestURITooLarge',
473
+ 'class OpenURI',
474
+ 'class URI',
475
+ 'class OpenSSL',
476
+ 'class OptParse',
477
+ 'class OptionParser',
478
+ 'class Pathname',
479
+ 'class PP',
480
+ 'class PrettyPrint',
481
+ 'class Prime',
482
+ 'class PStore',
483
+ 'class Psych',
484
+ 'class PTY',
485
+ 'class Racc',
486
+ 'class Rake',
487
+ 'class RDoc',
488
+ 'class RDocTask',
489
+ 'class Resolv',
490
+ 'class IPSocket',
491
+ 'class SOCKSSocket',
492
+ 'class TCPSocket',
493
+ 'class UDPSocket',
494
+ 'class REXML',
495
+ 'class Rinda',
496
+ 'class Ripper',
497
+ 'class RSS',
498
+ 'class XML',
499
+ 'class XMLEncoding_ja',
500
+ 'class Gem',
501
+ 'class TempIO',
502
+ 'class Scanf',
503
+ 'class SDBM',
504
+ 'class SDBMError',
505
+ 'class Set',
506
+ 'class SortedSet',
507
+ 'class Shell',
508
+ 'class Addrinfo',
509
+ 'class BasicSocket',
510
+ 'class SocketError',
511
+ 'class TCPServer',
512
+ 'class UNIXServer',
513
+ 'class UNIXSocket',
514
+ 'class StringIO',
515
+ 'class StringScanner',
516
+ 'class Sync_m',
517
+ 'class Synchronizer',
518
+ 'class Syslog',
519
+ 'class Tempfile',
520
+ 'class ThWait',
521
+ 'class Timeout',
522
+ 'class Tracer',
523
+ 'class TSort',
524
+ 'class WeakRef',
525
+ 'class WEBrick',
526
+ 'class OLEProperty',
527
+ 'class WIN32OLE',
528
+ 'class WIN32OLERuntimeError',
529
+ 'class WIN32OLE_EVENT',
530
+ 'class WIN32OLE_METHOD',
531
+ 'class WIN32OLE_PARAM',
532
+ 'class WIN32OLE_RECORD',
533
+ 'class WIN32OLE_TYPE',
534
+ 'class WIN32OLE_TYPELIB',
535
+ 'class WIN32OLE_VARIABLE',
536
+ 'class WIN32OLE_VARIANT',
537
+ 'class NQXML',
538
+ 'class XMLRPC',
539
+ 'class YAML',
540
+ 'class Zlib',
541
+ 'module Abbrev',
542
+ 'module Base64',
543
+ 'module Benchmark',
544
+ 'module BigMath',
545
+ 'module Jacobian',
546
+ 'module LUSolve',
547
+ 'module Newton',
548
+ 'module CGI',
549
+ 'module CMath',
550
+ 'module Coverage',
551
+ 'module DEBUGGER__',
552
+ 'module Digest',
553
+ 'module DRb',
554
+ 'module Exception2MessageMapper',
555
+ 'module English',
556
+ 'module ERB',
557
+ 'module Etc',
558
+ 'module FileUtils',
559
+ 'module RbConfig',
560
+ 'module Fcntl',
561
+ 'module Fiddle',
562
+ 'module Find',
563
+ 'module Forwardable',
564
+ 'module SingleForwardable',
565
+ 'module IPSocket',
566
+ 'module IRB',
567
+ 'module RubyToken',
568
+ 'module JSON',
569
+ 'module Logger',
570
+ 'module MakeMakefile',
571
+ 'module MonitorMixin',
572
+ 'module Mutex_m',
573
+ 'module Net',
574
+ 'module Kconv',
575
+ 'module NKF',
576
+ 'module Observable',
577
+ 'module OpenURI',
578
+ 'module URI',
579
+ 'module Open3',
580
+ 'module OpenSSL',
581
+ 'module OptionParser',
582
+ 'module Pathname',
583
+ 'module PP',
584
+ 'module Prime',
585
+ 'module Profiler__',
586
+ 'module Psych',
587
+ 'module PTY',
588
+ 'module Racc',
589
+ 'module Rake',
590
+ 'module RDoc',
591
+ 'module Test',
592
+ 'module Readline',
593
+ 'module Resolv',
594
+ 'module REXML',
595
+ 'module Rinda',
596
+ 'module RSS',
597
+ 'module XML',
598
+ 'module XMLEncoding_ja',
599
+ 'module Gem',
600
+ 'module YAML',
601
+ 'module Scanf',
602
+ 'module SecureRandom',
603
+ 'module Shell',
604
+ 'module Shellwords',
605
+ 'module Singleton',
606
+ 'module Synchronizer_m',
607
+ 'module Syslog',
608
+ 'module Timeout',
609
+ 'module TSort',
610
+ 'module UnicodeNormalize',
611
+ 'module WeakRef',
612
+ 'module WEBrick',
613
+ 'module WIN32OLE',
614
+ 'module NQXML',
615
+ 'module XMLRPC',
616
+ 'module Zlib',
617
+ ].freeze
618
+
619
+ NAMESPACES_RUBY_STDLIB = (
620
+ NAMESPACES_RUBY_1_8_6_STDLIB |
621
+ NAMESPACES_RUBY_2_0_0_STDLIB |
622
+ NAMESPACES_RUBY_2_2_6_STDLIB
623
+ ).freeze
624
+
625
+ NAMESPACES = NAMESPACES_RUBY_STDLIB.map { |item| item.split(' ').last }
626
+
627
+ def namespaces
628
+ NAMESPACES
629
+ end
630
+
631
+ end
632
+ end
633
+ end
634
+ end