ruby-lint 0.0.2 → 0.0.3

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.
Files changed (321) hide show
  1. data.tar.gz.asc +17 -0
  2. data/.gitignore +1 -0
  3. data/.travis.yml +25 -0
  4. data/.yardopts +4 -0
  5. data/Gemfile +1 -1
  6. data/LICENSE +1 -1
  7. data/MANIFEST +238 -49
  8. data/README.md +84 -131
  9. data/Rakefile +6 -0
  10. data/bin/ruby-lint +2 -2
  11. data/checksum/.gitkeep +0 -0
  12. data/doc/DCO.md +26 -0
  13. data/doc/architecture.md +63 -0
  14. data/doc/code_analysis.md +90 -0
  15. data/doc/configuration.md +86 -0
  16. data/doc/contributing.md +16 -0
  17. data/doc/graphviz/flow.dot +7 -0
  18. data/doc/images/.gitkeep +0 -0
  19. data/doc/images/flow.png +0 -0
  20. data/lib/ruby-lint.rb +35 -35
  21. data/lib/ruby-lint/analyze/argument_amount.rb +73 -0
  22. data/lib/ruby-lint/analyze/shadowing_variables.rb +19 -24
  23. data/lib/ruby-lint/analyze/undefined_methods.rb +68 -0
  24. data/lib/ruby-lint/analyze/undefined_variables.rb +42 -69
  25. data/lib/ruby-lint/analyze/unused_variables.rb +23 -78
  26. data/lib/ruby-lint/base.rb +85 -0
  27. data/lib/ruby-lint/cli.rb +23 -167
  28. data/lib/ruby-lint/cli/analyze.rb +99 -0
  29. data/lib/ruby-lint/cli/ast.rb +35 -0
  30. data/lib/ruby-lint/cli/base.rb +120 -0
  31. data/lib/ruby-lint/configuration.rb +112 -0
  32. data/lib/ruby-lint/constant_loader.rb +92 -0
  33. data/lib/ruby-lint/definition/ruby_method.rb +248 -0
  34. data/lib/ruby-lint/definition/ruby_object.rb +757 -0
  35. data/lib/ruby-lint/definition_generator.rb +155 -0
  36. data/lib/ruby-lint/definitions/core.rb +5 -0
  37. data/lib/ruby-lint/definitions/core/arg0.rb +7 -0
  38. data/lib/ruby-lint/definitions/core/argf.rb +7 -0
  39. data/lib/ruby-lint/definitions/core/argument_error.rb +12 -0
  40. data/lib/ruby-lint/definitions/core/argv.rb +7 -0
  41. data/lib/ruby-lint/definitions/core/array.rb +414 -0
  42. data/lib/ruby-lint/definitions/core/autoload.rb +39 -0
  43. data/lib/ruby-lint/definitions/core/basic_object.rb +46 -0
  44. data/lib/ruby-lint/definitions/core/bignum.rb +128 -0
  45. data/lib/ruby-lint/definitions/core/binding.rb +52 -0
  46. data/lib/ruby-lint/definitions/core/class.rb +23 -0
  47. data/lib/ruby-lint/definitions/core/comparable.rb +38 -0
  48. data/lib/ruby-lint/definitions/core/complex.rb +195 -0
  49. data/lib/ruby-lint/definitions/core/condition_variable.rb +19 -0
  50. data/lib/ruby-lint/definitions/core/continuation.rb +8 -0
  51. data/lib/ruby-lint/definitions/core/data.rb +8 -0
  52. data/lib/ruby-lint/definitions/core/date.rb +706 -0
  53. data/lib/ruby-lint/definitions/core/date_time.rb +381 -0
  54. data/lib/ruby-lint/definitions/core/default_record_separator.rb +7 -0
  55. data/lib/ruby-lint/definitions/core/digest.rb +166 -0
  56. data/lib/ruby-lint/definitions/core/dir.rb +496 -0
  57. data/lib/ruby-lint/definitions/core/encoding.rb +2030 -0
  58. data/lib/ruby-lint/definitions/core/encoding_error.rb +8 -0
  59. data/lib/ruby-lint/definitions/core/enumerable.rb +352 -0
  60. data/lib/ruby-lint/definitions/core/enumerator.rb +37 -0
  61. data/lib/ruby-lint/definitions/core/env.rb +7 -0
  62. data/lib/ruby-lint/definitions/core/eoferror.rb +8 -0
  63. data/lib/ruby-lint/definitions/core/erb.rb +304 -0
  64. data/lib/ruby-lint/definitions/core/errno.rb +3331 -0
  65. data/lib/ruby-lint/definitions/core/etc.rb +138 -0
  66. data/lib/ruby-lint/definitions/core/exception.rb +72 -0
  67. data/lib/ruby-lint/definitions/core/false.rb +7 -0
  68. data/lib/ruby-lint/definitions/core/false_class.rb +30 -0
  69. data/lib/ruby-lint/definitions/core/fatal_error.rb +8 -0
  70. data/lib/ruby-lint/definitions/core/fiber.rb +35 -0
  71. data/lib/ruby-lint/definitions/core/fiber_error.rb +8 -0
  72. data/lib/ruby-lint/definitions/core/file.rb +1277 -0
  73. data/lib/ruby-lint/definitions/core/file_list.rb +727 -0
  74. data/lib/ruby-lint/definitions/core/file_test.rb +106 -0
  75. data/lib/ruby-lint/definitions/core/file_utils.rb +1027 -0
  76. data/lib/ruby-lint/definitions/core/fixnum.rb +156 -0
  77. data/lib/ruby-lint/definitions/core/float.rb +307 -0
  78. data/lib/ruby-lint/definitions/core/float_domain_error.rb +8 -0
  79. data/lib/ruby-lint/definitions/core/gc.rb +57 -0
  80. data/lib/ruby-lint/definitions/core/gem.rb +3161 -0
  81. data/lib/ruby-lint/definitions/core/hash.rb +512 -0
  82. data/lib/ruby-lint/definitions/core/immediate_value.rb +19 -0
  83. data/lib/ruby-lint/definitions/core/index_error.rb +8 -0
  84. data/lib/ruby-lint/definitions/core/integer.rb +100 -0
  85. data/lib/ruby-lint/definitions/core/interrupt.rb +14 -0
  86. data/lib/ruby-lint/definitions/core/io.rb +928 -0
  87. data/lib/ruby-lint/definitions/core/ioerror.rb +8 -0
  88. data/lib/ruby-lint/definitions/core/kernel.rb +504 -0
  89. data/lib/ruby-lint/definitions/core/key_error.rb +8 -0
  90. data/lib/ruby-lint/definitions/core/load_error.rb +28 -0
  91. data/lib/ruby-lint/definitions/core/local_jump_error.rb +8 -0
  92. data/lib/ruby-lint/definitions/core/main.rb +25 -0
  93. data/lib/ruby-lint/definitions/core/marshal.rb +466 -0
  94. data/lib/ruby-lint/definitions/core/match_data.rb +73 -0
  95. data/lib/ruby-lint/definitions/core/math.rb +205 -0
  96. data/lib/ruby-lint/definitions/core/memory_segmention_error.rb +8 -0
  97. data/lib/ruby-lint/definitions/core/method.rb +61 -0
  98. data/lib/ruby-lint/definitions/core/module.rb +262 -0
  99. data/lib/ruby-lint/definitions/core/monitor.rb +39 -0
  100. data/lib/ruby-lint/definitions/core/monitor_mixin.rb +59 -0
  101. data/lib/ruby-lint/definitions/core/mutex.rb +32 -0
  102. data/lib/ruby-lint/definitions/core/name_error.rb +16 -0
  103. data/lib/ruby-lint/definitions/core/nil.rb +7 -0
  104. data/lib/ruby-lint/definitions/core/nil_class.rb +46 -0
  105. data/lib/ruby-lint/definitions/core/no_memory_error.rb +8 -0
  106. data/lib/ruby-lint/definitions/core/no_method_error.rb +18 -0
  107. data/lib/ruby-lint/definitions/core/not_implemented_error.rb +8 -0
  108. data/lib/ruby-lint/definitions/core/numeric.rb +123 -0
  109. data/lib/ruby-lint/definitions/core/object.rb +31 -0
  110. data/lib/ruby-lint/definitions/core/object_space.rb +41 -0
  111. data/lib/ruby-lint/definitions/core/open_struct.rb +49 -0
  112. data/lib/ruby-lint/definitions/core/option_parser.rb +1355 -0
  113. data/lib/ruby-lint/definitions/core/precision.rb +21 -0
  114. data/lib/ruby-lint/definitions/core/primitive_failure.rb +8 -0
  115. data/lib/ruby-lint/definitions/core/proc.rb +109 -0
  116. data/lib/ruby-lint/definitions/core/process.rb +602 -0
  117. data/lib/ruby-lint/definitions/core/psych.rb +2231 -0
  118. data/lib/ruby-lint/definitions/core/queue.rb +44 -0
  119. data/lib/ruby-lint/definitions/core/rake.rb +4784 -0
  120. data/lib/ruby-lint/definitions/core/rake_file_utils.rb +203 -0
  121. data/lib/ruby-lint/definitions/core/rakeversion.rb +7 -0
  122. data/lib/ruby-lint/definitions/core/random.rb +38 -0
  123. data/lib/ruby-lint/definitions/core/range.rb +104 -0
  124. data/lib/ruby-lint/definitions/core/range_error.rb +8 -0
  125. data/lib/ruby-lint/definitions/core/rational.rb +96 -0
  126. data/lib/ruby-lint/definitions/core/rb_config.rb +36 -0
  127. data/lib/ruby-lint/definitions/core/regexp.rb +396 -0
  128. data/lib/ruby-lint/definitions/core/regexp_error.rb +8 -0
  129. data/lib/ruby-lint/definitions/core/rubinius.rb +16637 -0
  130. data/lib/ruby-lint/definitions/core/ruby_copyright.rb +7 -0
  131. data/lib/ruby-lint/definitions/core/ruby_description.rb +7 -0
  132. data/lib/ruby-lint/definitions/core/ruby_engine.rb +7 -0
  133. data/lib/ruby-lint/definitions/core/ruby_lint.rb +93 -0
  134. data/lib/ruby-lint/definitions/core/ruby_patchlevel.rb +7 -0
  135. data/lib/ruby-lint/definitions/core/ruby_platform.rb +7 -0
  136. data/lib/ruby-lint/definitions/core/ruby_release_date.rb +7 -0
  137. data/lib/ruby-lint/definitions/core/ruby_version.rb +7 -0
  138. data/lib/ruby-lint/definitions/core/runtime_error.rb +8 -0
  139. data/lib/ruby-lint/definitions/core/scan_error.rb +8 -0
  140. data/lib/ruby-lint/definitions/core/script_error.rb +8 -0
  141. data/lib/ruby-lint/definitions/core/security_error.rb +8 -0
  142. data/lib/ruby-lint/definitions/core/shellwords.rb +37 -0
  143. data/lib/ruby-lint/definitions/core/signal.rb +37 -0
  144. data/lib/ruby-lint/definitions/core/signal_exception.rb +19 -0
  145. data/lib/ruby-lint/definitions/core/singleton.rb +37 -0
  146. data/lib/ruby-lint/definitions/core/sized_queue.rb +42 -0
  147. data/lib/ruby-lint/definitions/core/standard_error.rb +8 -0
  148. data/lib/ruby-lint/definitions/core/stderr.rb +7 -0
  149. data/lib/ruby-lint/definitions/core/stdin.rb +7 -0
  150. data/lib/ruby-lint/definitions/core/stdout.rb +7 -0
  151. data/lib/ruby-lint/definitions/core/stop_iteration.rb +8 -0
  152. data/lib/ruby-lint/definitions/core/string.rb +713 -0
  153. data/lib/ruby-lint/definitions/core/string_io.rb +287 -0
  154. data/lib/ruby-lint/definitions/core/string_scanner.rb +158 -0
  155. data/lib/ruby-lint/definitions/core/struct.rb +357 -0
  156. data/lib/ruby-lint/definitions/core/syck.rb +30 -0
  157. data/lib/ruby-lint/definitions/core/symbol.rb +90 -0
  158. data/lib/ruby-lint/definitions/core/syntax_error.rb +44 -0
  159. data/lib/ruby-lint/definitions/core/system_call_error.rb +31 -0
  160. data/lib/ruby-lint/definitions/core/system_exit.rb +19 -0
  161. data/lib/ruby-lint/definitions/core/system_stack_error.rb +8 -0
  162. data/lib/ruby-lint/definitions/core/thread.rb +209 -0
  163. data/lib/ruby-lint/definitions/core/thread_error.rb +8 -0
  164. data/lib/ruby-lint/definitions/core/thread_group.rb +22 -0
  165. data/lib/ruby-lint/definitions/core/time.rb +233 -0
  166. data/lib/ruby-lint/definitions/core/toplevel_binding.rb +7 -0
  167. data/lib/ruby-lint/definitions/core/true.rb +7 -0
  168. data/lib/ruby-lint/definitions/core/true_class.rb +30 -0
  169. data/lib/ruby-lint/definitions/core/type_error.rb +8 -0
  170. data/lib/ruby-lint/definitions/core/unbound_method.rb +51 -0
  171. data/lib/ruby-lint/definitions/core/unmarshalable.rb +13 -0
  172. data/lib/ruby-lint/definitions/core/unsupported_library_error.rb +8 -0
  173. data/lib/ruby-lint/definitions/core/weak_ref.rb +42 -0
  174. data/lib/ruby-lint/definitions/core/zero_division_error.rb +8 -0
  175. data/lib/ruby-lint/definitions_builder.rb +692 -0
  176. data/lib/ruby-lint/extensions/string.rb +15 -0
  177. data/lib/ruby-lint/helper/constant_paths.rb +41 -0
  178. data/lib/ruby-lint/helper/conversion.rb +33 -0
  179. data/lib/ruby-lint/helper/current_scope.rb +98 -0
  180. data/lib/ruby-lint/helper/methods.rb +91 -0
  181. data/lib/ruby-lint/inspector.rb +191 -0
  182. data/lib/ruby-lint/iterator.rb +187 -127
  183. data/lib/ruby-lint/node.rb +107 -0
  184. data/lib/ruby-lint/parser.rb +510 -1137
  185. data/lib/ruby-lint/parser_error.rb +15 -27
  186. data/lib/ruby-lint/presenter/json.rb +19 -0
  187. data/lib/ruby-lint/presenter/text.rb +37 -0
  188. data/lib/ruby-lint/report.rb +95 -53
  189. data/lib/ruby-lint/report/entry.rb +71 -0
  190. data/lib/ruby-lint/template/definition.erb +24 -0
  191. data/lib/ruby-lint/template/scope.rb +25 -0
  192. data/lib/ruby-lint/variable_predicates.rb +109 -0
  193. data/lib/ruby-lint/version.rb +1 -1
  194. data/ruby-lint.gemspec +19 -8
  195. data/spec/helper.rb +10 -2
  196. data/spec/ruby-lint/analyze/argument_amount.rb +91 -0
  197. data/spec/ruby-lint/analyze/shadowing_variables.rb +69 -14
  198. data/spec/ruby-lint/analyze/undefined_methods.rb +174 -0
  199. data/spec/ruby-lint/analyze/undefined_variables.rb +70 -179
  200. data/spec/ruby-lint/analyze/unused_variables.rb +63 -183
  201. data/spec/ruby-lint/configuration.rb +15 -0
  202. data/spec/ruby-lint/constant_loader.rb +32 -0
  203. data/spec/ruby-lint/definition/dsl.rb +142 -0
  204. data/spec/ruby-lint/definition/method_calls.rb +26 -0
  205. data/spec/ruby-lint/definition/ruby_method.rb +175 -0
  206. data/spec/ruby-lint/definition/ruby_object.rb +228 -0
  207. data/spec/ruby-lint/definitions_builder/assignments/arrays.rb +71 -0
  208. data/spec/ruby-lint/definitions_builder/assignments/hashes.rb +65 -0
  209. data/spec/ruby-lint/definitions_builder/assignments/objects.rb +23 -0
  210. data/spec/ruby-lint/definitions_builder/assignments/optional.rb +22 -0
  211. data/spec/ruby-lint/definitions_builder/assignments/return_values.rb +78 -0
  212. data/spec/ruby-lint/definitions_builder/assignments/variables.rb +71 -0
  213. data/spec/ruby-lint/definitions_builder/associate_nodes.rb +17 -0
  214. data/spec/ruby-lint/definitions_builder/blocks.rb +40 -0
  215. data/spec/ruby-lint/definitions_builder/classes.rb +230 -0
  216. data/spec/ruby-lint/definitions_builder/for.rb +16 -0
  217. data/spec/ruby-lint/definitions_builder/methods.rb +147 -0
  218. data/spec/ruby-lint/definitions_builder/modules.rb +175 -0
  219. data/spec/ruby-lint/definitions_builder/reference_amount.rb +31 -0
  220. data/spec/ruby-lint/definitions_builder/unused.rb +15 -0
  221. data/spec/ruby-lint/extensions/string.rb +7 -0
  222. data/spec/ruby-lint/iterator.rb +42 -417
  223. data/spec/ruby-lint/node.rb +38 -0
  224. data/spec/ruby-lint/parser/assignments.rb +225 -0
  225. data/spec/ruby-lint/parser/classes.rb +80 -122
  226. data/spec/ruby-lint/parser/errors.rb +7 -14
  227. data/spec/ruby-lint/parser/metadata.rb +17 -0
  228. data/spec/ruby-lint/parser/method_definitions.rb +111 -0
  229. data/spec/ruby-lint/parser/methods.rb +184 -216
  230. data/spec/ruby-lint/parser/modules.rb +54 -33
  231. data/spec/ruby-lint/parser/operators.rb +30 -65
  232. data/spec/ruby-lint/parser/statements/begin.rb +55 -0
  233. data/spec/ruby-lint/parser/statements/case.rb +34 -0
  234. data/spec/ruby-lint/parser/statements/defined.rb +11 -0
  235. data/spec/ruby-lint/parser/statements/for.rb +34 -0
  236. data/spec/ruby-lint/parser/statements/if.rb +46 -0
  237. data/spec/ruby-lint/parser/statements/return.rb +14 -0
  238. data/spec/ruby-lint/parser/statements/super.rb +49 -0
  239. data/spec/ruby-lint/parser/statements/unless.rb +42 -0
  240. data/spec/ruby-lint/parser/statements/until.rb +25 -0
  241. data/spec/ruby-lint/parser/statements/while.rb +25 -0
  242. data/spec/ruby-lint/parser/statements/yield.rb +18 -0
  243. data/spec/ruby-lint/parser/types/arrays.rb +47 -0
  244. data/spec/ruby-lint/parser/types/booleans.rb +11 -0
  245. data/spec/ruby-lint/parser/types/constants.rb +32 -0
  246. data/spec/ruby-lint/parser/types/hashes.rb +55 -0
  247. data/spec/ruby-lint/parser/types/nil.rb +7 -0
  248. data/spec/ruby-lint/parser/types/numbers.rb +11 -0
  249. data/spec/ruby-lint/parser/types/procs.rb +11 -0
  250. data/spec/ruby-lint/parser/types/ranges.rb +11 -0
  251. data/spec/ruby-lint/parser/types/regexp.rb +27 -0
  252. data/spec/ruby-lint/parser/types/strings.rb +44 -0
  253. data/spec/ruby-lint/parser/types/symbols.rb +15 -0
  254. data/spec/ruby-lint/presenter/json.rb +31 -0
  255. data/spec/ruby-lint/presenter/text.rb +22 -0
  256. data/spec/ruby-lint/report.rb +45 -15
  257. data/spec/ruby-lint/report/entry.rb +24 -0
  258. data/spec/support/bacon.rb +33 -0
  259. data/spec/support/building.rb +43 -0
  260. data/spec/support/definitions.rb +23 -0
  261. data/spec/support/parsing.rb +23 -0
  262. data/spec/support/simplecov.rb +16 -0
  263. data/task/build.rake +9 -0
  264. data/task/checksum.rake +13 -0
  265. data/task/coverage.rake +6 -0
  266. data/task/doc.rake +5 -0
  267. data/task/generate.rake +34 -0
  268. data/task/graphviz.rake +12 -0
  269. data/task/stdlib.rake +2 -9
  270. data/task/tag.rake +6 -0
  271. metadata +337 -68
  272. metadata.gz.asc +17 -0
  273. data/.rbenv-version +0 -1
  274. data/lib/ruby-lint/analyze/coding_style.rb +0 -407
  275. data/lib/ruby-lint/analyze/definitions.rb +0 -244
  276. data/lib/ruby-lint/analyze/method_validation.rb +0 -104
  277. data/lib/ruby-lint/callback.rb +0 -67
  278. data/lib/ruby-lint/constant_importer.rb +0 -112
  279. data/lib/ruby-lint/definition.rb +0 -230
  280. data/lib/ruby-lint/formatter/text.rb +0 -54
  281. data/lib/ruby-lint/helper/definition_resolver.rb +0 -143
  282. data/lib/ruby-lint/helper/scoping.rb +0 -138
  283. data/lib/ruby-lint/options.rb +0 -58
  284. data/lib/ruby-lint/token/assignment_token.rb +0 -35
  285. data/lib/ruby-lint/token/begin_rescue_token.rb +0 -57
  286. data/lib/ruby-lint/token/block_token.rb +0 -26
  287. data/lib/ruby-lint/token/case_token.rb +0 -44
  288. data/lib/ruby-lint/token/class_token.rb +0 -24
  289. data/lib/ruby-lint/token/keyword_token.rb +0 -43
  290. data/lib/ruby-lint/token/method_definition_token.rb +0 -64
  291. data/lib/ruby-lint/token/method_token.rb +0 -56
  292. data/lib/ruby-lint/token/parameters_token.rb +0 -99
  293. data/lib/ruby-lint/token/regexp_token.rb +0 -15
  294. data/lib/ruby-lint/token/statement_token.rb +0 -69
  295. data/lib/ruby-lint/token/token.rb +0 -176
  296. data/lib/ruby-lint/token/variable_token.rb +0 -18
  297. data/spec/benchmarks/memory.rb +0 -52
  298. data/spec/benchmarks/parse_parser.rb +0 -16
  299. data/spec/fixtures/stdlib/un.rb +0 -348
  300. data/spec/ruby-lint/analyze/coding_style.rb +0 -224
  301. data/spec/ruby-lint/analyze/complex/un.rb +0 -29
  302. data/spec/ruby-lint/analyze/definitions/classes.rb +0 -114
  303. data/spec/ruby-lint/analyze/definitions/methods.rb +0 -91
  304. data/spec/ruby-lint/analyze/definitions/modules.rb +0 -207
  305. data/spec/ruby-lint/analyze/definitions/variables.rb +0 -103
  306. data/spec/ruby-lint/analyze/method_validation.rb +0 -177
  307. data/spec/ruby-lint/callback.rb +0 -28
  308. data/spec/ruby-lint/constant_importer.rb +0 -27
  309. data/spec/ruby-lint/definition.rb +0 -96
  310. data/spec/ruby-lint/formatter/text.rb +0 -21
  311. data/spec/ruby-lint/parser/arrays.rb +0 -147
  312. data/spec/ruby-lint/parser/expander_assignments.rb +0 -183
  313. data/spec/ruby-lint/parser/hashes.rb +0 -136
  314. data/spec/ruby-lint/parser/keywords.rb +0 -89
  315. data/spec/ruby-lint/parser/objects.rb +0 -39
  316. data/spec/ruby-lint/parser/procs.rb +0 -113
  317. data/spec/ruby-lint/parser/ranges.rb +0 -49
  318. data/spec/ruby-lint/parser/regexp.rb +0 -31
  319. data/spec/ruby-lint/parser/scalars.rb +0 -93
  320. data/spec/ruby-lint/parser/statements.rb +0 -591
  321. data/spec/ruby-lint/parser/variables.rb +0 -230
@@ -1,26 +0,0 @@
1
- module RubyLint
2
- module Token
3
- ##
4
- # Token class used for storing information about blocks/procs.
5
- #
6
- # @since 2012-08-05
7
- #
8
- class BlockToken < Token
9
- ##
10
- # The parameters of the block.
11
- #
12
- # @return [RubyLint::Token::ParametersToken]
13
- #
14
- attr_accessor :parameters
15
-
16
- ##
17
- # @see RubyLint::Token::Token#initialize
18
- #
19
- def initialize(*args)
20
- super
21
-
22
- @parameters = ParametersToken.new unless @parameters
23
- end
24
- end
25
- end # Token
26
- end # RubyLint
@@ -1,44 +0,0 @@
1
- module RubyLint
2
- module Token
3
- ##
4
- # Token class containing details about a case statement.
5
- #
6
- class CaseToken < StatementToken
7
- ##
8
- # Array containing all the `when` statements sorted in the order of their
9
- # appearance.
10
- #
11
- # @return [Array]
12
- #
13
- attr_accessor :when
14
-
15
- ##
16
- # Token containing details about the `else` statement.
17
- #
18
- # @return [RubyLint::Token::StatementToken]
19
- #
20
- attr_accessor :else
21
-
22
- ##
23
- # @see RubyLint::Token#initialize
24
- #
25
- def initialize(*args)
26
- @when = []
27
- @type = :case
28
-
29
- super
30
- end
31
-
32
- ##
33
- # @see RubyLint::Token::Token#child_nodes
34
- #
35
- def child_nodes
36
- nodes = super
37
-
38
- nodes.insert(1, @when)
39
-
40
- return nodes.select { |array| array.length > 0 }
41
- end
42
- end # CaseToken
43
- end # Token
44
- end # RubyLint
@@ -1,24 +0,0 @@
1
- module RubyLint
2
- module Token
3
- ##
4
- # Token class used for storing data about classes.
5
- #
6
- class ClassToken < Token
7
- ##
8
- # The name of the parent class, if specified.
9
- #
10
- # @return [String]
11
- #
12
- attr_accessor :parent
13
-
14
- ##
15
- # @see RubyLint::Token::Token#initialize
16
- #
17
- def initialize(*args)
18
- super
19
-
20
- @parent = ['Object'] if @parent.empty?
21
- end
22
- end # ClassToken
23
- end # Token
24
- end # RubyLint
@@ -1,43 +0,0 @@
1
- module RubyLint
2
- module Token
3
- ##
4
- # {RubyLint::Token::KeywordToken} is a token class similar to
5
- # {RubyLint::Token::MethodToken} but instead of being used for regular
6
- # method calls it's soley used for keywords such as `super` and
7
- # `defined?()`.
8
- #
9
- class KeywordToken < Token
10
- ##
11
- # Array of tokens for the method parameters.
12
- #
13
- # @return [Array]
14
- #
15
- attr_accessor :parameters
16
-
17
- ##
18
- # Token containing details about the block passed to the method.
19
- #
20
- # @return [RubyLint::Token::BlockToken]
21
- #
22
- attr_accessor :block
23
-
24
- ##
25
- # @see RubyLint::Token::Token#initialize
26
- #
27
- def initialize(*args)
28
- @type = :keyword
29
-
30
- super
31
-
32
- @parameters = [] unless @parameters
33
- end
34
-
35
- ##
36
- # @see RubyLint::Token::Token#child_nodes
37
- #
38
- def child_nodes
39
- return super << @parameters << [@block]
40
- end
41
- end # KeywordToken
42
- end # Token
43
- end # RubyLint
@@ -1,64 +0,0 @@
1
- module RubyLint
2
- module Token
3
- ##
4
- # Token class used for storing data about a newly defined method.
5
- #
6
- # @since 2012-08-02
7
- #
8
- class MethodDefinitionToken < Token
9
- ##
10
- # The object the method is defined on, only set when this is explicitly
11
- # stated.
12
- #
13
- # @return [RubyLint::Token::Token]
14
- #
15
- attr_accessor :receiver
16
-
17
- ##
18
- # The operator that was used to separate the receiver and method name.
19
- #
20
- # @return [RubyLint::Token::Token]
21
- #
22
- attr_accessor :operator
23
-
24
- ##
25
- # The parameters of the method.
26
- #
27
- # @return [RubyLint::Token::ParametersToken]
28
- #
29
- attr_accessor :parameters
30
-
31
- ##
32
- # The visibility of the method, set to `:public` by default.
33
- #
34
- # @since 2012-08-07
35
- # @return [Symbol]
36
- #
37
- attr_accessor :visibility
38
-
39
- ##
40
- # @see RubyLint::Token::Token#initialize
41
- #
42
- def initialize(*args)
43
- @parameters = []
44
- @visibility = :public
45
- @type = :method_definition
46
-
47
- super
48
-
49
- # Ensure that the parameters attribute always contains an instance of
50
- # `RubyLint::Token::ParametersToken`.
51
- unless @parameters.class == ParametersToken
52
- @parameters = ParametersToken.new
53
- end
54
- end
55
-
56
- ##
57
- # @see RubyLint::Token::Token#child_nodes
58
- #
59
- def child_nodes
60
- return @parameters.child_nodes + super
61
- end
62
- end # MethodDefinitionToken
63
- end # Token
64
- end # RubyLint
@@ -1,56 +0,0 @@
1
- module RubyLint
2
- module Token
3
- ##
4
- # Token class used for storing methods, their parameters, body, etc.
5
- #
6
- # @since 2012-07-29
7
- #
8
- class MethodToken < Token
9
- ##
10
- # The receiver of the method call, if any.
11
- #
12
- # @return [RubyLint::Token::Token]
13
- #
14
- attr_accessor :receiver
15
-
16
- ##
17
- # Symbol containing the method separator, if any.
18
- #
19
- # @return [Symbol]
20
- #
21
- attr_accessor :operator
22
-
23
- ##
24
- # Array of tokens for the method parameters.
25
- #
26
- # @return [Array]
27
- #
28
- attr_accessor :parameters
29
-
30
- ##
31
- # Token containing details about the block passed to the method.
32
- #
33
- # @return [RubyLint::Token::BlockToken]
34
- #
35
- attr_accessor :block
36
-
37
- ##
38
- # @see RubyLint::Token::Token#initialize
39
- #
40
- def initialize(*args)
41
- @type = :method
42
-
43
- super
44
-
45
- @parameters = [] unless @parameters
46
- end
47
-
48
- ##
49
- # @see RubyLint::Token::Token#child_nodes
50
- #
51
- def child_nodes
52
- return super << @parameters << [@receiver] << [@block]
53
- end
54
- end # MethodToken
55
- end # Token
56
- end # RubyLint
@@ -1,99 +0,0 @@
1
- module RubyLint
2
- module Token
3
- ##
4
- # Token class that contains details about the parameters of a method.
5
- #
6
- # The following attributes are used:
7
- #
8
- # * value: contains the required parameters (aliased as `#required()`)
9
- # * optional: contains all optional parameters
10
- # * rest: contains the rest parameter (if any)
11
- # * more: contains all more parameters (parameters specified after a rest
12
- # parameter).
13
- # * block: contains the block parameter (if any)
14
- #
15
- class ParametersToken < Token
16
- ##
17
- # An array of optional parameters.
18
- #
19
- # @return [Array]
20
- #
21
- attr_accessor :optional
22
-
23
- ##
24
- # The rest parameter (if any).
25
- #
26
- # @return [RubyLint::Token::Token]
27
- #
28
- attr_accessor :rest
29
-
30
- ##
31
- # An array of more parameters.
32
- #
33
- # @return [Array]
34
- #
35
- attr_accessor :more
36
-
37
- ##
38
- # The block parameter (if any).
39
- #
40
- # @return [RubyLint::Token::Token]
41
- #
42
- attr_accessor :block
43
-
44
- ##
45
- # @see RubyLint::Token::Token#initialize
46
- #
47
- def initialize(*args)
48
- @optional = []
49
- @more = []
50
- @value = []
51
-
52
- super
53
- end
54
-
55
- ##
56
- # @see RubyLint::Token::Token#child_nodes
57
- #
58
- def child_nodes
59
- nodes = super
60
-
61
- if @optional
62
- nodes << @optional
63
- end
64
-
65
- if @rest
66
- nodes << [@rest]
67
- end
68
-
69
- if @more
70
- nodes << @more
71
- end
72
-
73
- if @block
74
- nodes << [@block]
75
- end
76
-
77
- return nodes.select { |array| array.length > 0 }
78
- end
79
-
80
- ##
81
- # Executes the provided block for every parameter of the method. The
82
- # order in which parameters are processed is the following:
83
- #
84
- # 1. Required parameters
85
- # 2. Optional parameters
86
- # 3. Rest parameters
87
- # 4. "More" parameters
88
- # 5. Block parameters
89
- #
90
- def each
91
- params = [@value, @optional, @rest, @more, @block].select do |p|
92
- !p.nil?
93
- end
94
-
95
- params.flatten.each { |param| yield param }
96
- end
97
- end # ParametersToken
98
- end # Token
99
- end # RubyLint
@@ -1,15 +0,0 @@
1
- module RubyLint
2
- module Token
3
- ##
4
- # Token class for storing information about regular expressions.
5
- #
6
- class RegexpToken < Token
7
- ##
8
- # Array containing the modes of the regular expression.
9
- #
10
- # @return [Array]
11
- #
12
- attr_accessor :modes
13
- end # RegexpToken
14
- end # Token
15
- end # RubyLint
@@ -1,69 +0,0 @@
1
- module RubyLint
2
- module Token
3
- ##
4
- # Token class for storing information about statements such as `return`
5
- # statements and `elsif` statements.
6
- #
7
- # @since 2012-08-08
8
- #
9
- class StatementToken < Token
10
- ##
11
- # The value of the statement in case of `if` and `elsif` statements.
12
- #
13
- # @return [RubyLint::Token::Token|Array]
14
- #
15
- attr_accessor :statement
16
-
17
- ##
18
- # The content of the `else` statement.
19
- #
20
- # @return [RubyLint::Token::StatementToken]
21
- #
22
- attr_accessor :else
23
-
24
- ##
25
- # Array containing the `elsif` statement in their original order.
26
- #
27
- # @return [Array]
28
- #
29
- attr_accessor :elsif
30
-
31
- ##
32
- # @see RubyLint::Token::Token#initialize
33
- #
34
- def initialize(*args)
35
- @type = :statement
36
- @elsif = []
37
-
38
- super
39
- end
40
-
41
- ##
42
- # @see RubyLint::Token::Token#child_nodes
43
- #
44
- def child_nodes
45
- nodes = []
46
-
47
- if @statement
48
- if @statement.is_a?(Array)
49
- nodes << @statement.flatten
50
- else
51
- nodes << [@statement]
52
- end
53
- end
54
-
55
- nodes += super
56
-
57
- if @elsif
58
- nodes << @elsif
59
- end
60
-
61
- if @else
62
- nodes << [@else]
63
- end
64
-
65
- return nodes.select { |array| array.length > 0 }
66
- end
67
- end # StatementToken
68
- end # Token
69
- end # RubyLint