ruby-lint 0.0.4 → 0.0.5

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 (317) hide show
  1. checksums.yaml +7 -0
  2. checksums.yaml.gz.asc +17 -0
  3. data.tar.gz.asc +14 -14
  4. data/.ruby-version +1 -0
  5. data/.travis.yml +0 -1
  6. data/.yardopts +1 -0
  7. data/CONTRIBUTING.md +41 -0
  8. data/MANIFEST +99 -66
  9. data/README.md +36 -10
  10. data/Rakefile +6 -0
  11. data/checksum/ruby-lint-0.0.4.gem.sha512 +1 -0
  12. data/doc/changelog.md +94 -0
  13. data/lib/ruby-lint.rb +18 -1
  14. data/lib/ruby-lint/analysis/argument_amount.rb +43 -10
  15. data/lib/ruby-lint/analysis/base.rb +23 -17
  16. data/lib/ruby-lint/analysis/pedantics.rb +3 -1
  17. data/lib/ruby-lint/analysis/undefined_methods.rb +48 -10
  18. data/lib/ruby-lint/analysis/unused_variables.rb +27 -5
  19. data/lib/ruby-lint/ast/node.rb +10 -0
  20. data/lib/ruby-lint/cli/analyze.rb +22 -4
  21. data/lib/ruby-lint/cli/base.rb +8 -2
  22. data/lib/ruby-lint/configuration.rb +43 -4
  23. data/lib/ruby-lint/definition/constant_proxy.rb +10 -1
  24. data/lib/ruby-lint/definition/ruby_method.rb +45 -31
  25. data/lib/ruby-lint/definition/ruby_object.rb +56 -15
  26. data/lib/ruby-lint/definition_builder/base.rb +4 -0
  27. data/lib/ruby-lint/definition_builder/primitive.rb +1 -1
  28. data/lib/ruby-lint/definition_builder/ruby_array.rb +1 -1
  29. data/lib/ruby-lint/definition_builder/ruby_block.rb +1 -0
  30. data/lib/ruby-lint/definition_builder/ruby_class.rb +1 -1
  31. data/lib/ruby-lint/definition_builder/ruby_hash.rb +1 -1
  32. data/lib/ruby-lint/definition_builder/ruby_module.rb +3 -1
  33. data/lib/ruby-lint/definition_generator.rb +15 -7
  34. data/lib/ruby-lint/definitions/core/arg0.rb +1 -1
  35. data/lib/ruby-lint/definitions/core/argf.rb +1 -1
  36. data/lib/ruby-lint/definitions/core/argument_error.rb +2 -2
  37. data/lib/ruby-lint/definitions/core/argv.rb +1 -1
  38. data/lib/ruby-lint/definitions/core/array.rb +6 -6
  39. data/lib/ruby-lint/definitions/core/autoload.rb +2 -2
  40. data/lib/ruby-lint/definitions/core/basic_object.rb +8 -12
  41. data/lib/ruby-lint/definitions/core/bignum.rb +2 -2
  42. data/lib/ruby-lint/definitions/core/binding.rb +2 -2
  43. data/lib/ruby-lint/definitions/core/class.rb +2 -2
  44. data/lib/ruby-lint/definitions/core/comparable.rb +1 -1
  45. data/lib/ruby-lint/definitions/core/complex.rb +4 -4
  46. data/lib/ruby-lint/definitions/core/condition_variable.rb +2 -2
  47. data/lib/ruby-lint/definitions/core/continuation.rb +2 -2
  48. data/lib/ruby-lint/definitions/core/data.rb +2 -2
  49. data/lib/ruby-lint/definitions/core/date.rb +34 -34
  50. data/lib/ruby-lint/definitions/core/date_time.rb +26 -26
  51. data/lib/ruby-lint/definitions/core/default_record_separator.rb +1 -1
  52. data/lib/ruby-lint/definitions/core/digest.rb +14 -14
  53. data/lib/ruby-lint/definitions/core/dir.rb +34 -34
  54. data/lib/ruby-lint/definitions/core/encoding.rb +237 -237
  55. data/lib/ruby-lint/definitions/core/encoding_error.rb +2 -2
  56. data/lib/ruby-lint/definitions/core/enumerable.rb +15 -15
  57. data/lib/ruby-lint/definitions/core/enumerator.rb +2 -2
  58. data/lib/ruby-lint/definitions/core/env.rb +1 -1
  59. data/lib/ruby-lint/definitions/core/eoferror.rb +2 -2
  60. data/lib/ruby-lint/definitions/core/erb.rb +30 -23
  61. data/lib/ruby-lint/definitions/core/errno.rb +525 -525
  62. data/lib/ruby-lint/definitions/core/etc.rb +6 -6
  63. data/lib/ruby-lint/definitions/core/exception.rb +2 -2
  64. data/lib/ruby-lint/definitions/core/false.rb +1 -1
  65. data/lib/ruby-lint/definitions/core/false_class.rb +2 -2
  66. data/lib/ruby-lint/definitions/core/fatal_error.rb +2 -2
  67. data/lib/ruby-lint/definitions/core/fiber.rb +2 -2
  68. data/lib/ruby-lint/definitions/core/fiber_error.rb +2 -2
  69. data/lib/ruby-lint/definitions/core/file.rb +68 -68
  70. data/lib/ruby-lint/definitions/core/file_list.rb +2 -2
  71. data/lib/ruby-lint/definitions/core/file_test.rb +1 -1
  72. data/lib/ruby-lint/definitions/core/file_utils.rb +16 -16
  73. data/lib/ruby-lint/definitions/core/fixnum.rb +4 -4
  74. data/lib/ruby-lint/definitions/core/float.rb +16 -16
  75. data/lib/ruby-lint/definitions/core/float_domain_error.rb +2 -2
  76. data/lib/ruby-lint/definitions/core/gc.rb +2 -2
  77. data/lib/ruby-lint/definitions/core/gem.rb +119 -119
  78. data/lib/ruby-lint/definitions/core/hash.rb +14 -14
  79. data/lib/ruby-lint/definitions/core/immediate_value.rb +1 -1
  80. data/lib/ruby-lint/definitions/core/index_error.rb +2 -2
  81. data/lib/ruby-lint/definitions/core/integer.rb +2 -2
  82. data/lib/ruby-lint/definitions/core/interrupt.rb +2 -2
  83. data/lib/ruby-lint/definitions/core/io.rb +38 -38
  84. data/lib/ruby-lint/definitions/core/ioerror.rb +2 -2
  85. data/lib/ruby-lint/definitions/core/kernel.rb +113 -60
  86. data/lib/ruby-lint/definitions/core/key_error.rb +2 -2
  87. data/lib/ruby-lint/definitions/core/load_error.rb +6 -6
  88. data/lib/ruby-lint/definitions/core/local_jump_error.rb +2 -2
  89. data/lib/ruby-lint/definitions/core/marshal.rb +35 -35
  90. data/lib/ruby-lint/definitions/core/match_data.rb +2 -2
  91. data/lib/ruby-lint/definitions/core/math.rb +7 -7
  92. data/lib/ruby-lint/definitions/core/memory_segmention_error.rb +2 -2
  93. data/lib/ruby-lint/definitions/core/method.rb +2 -2
  94. data/lib/ruby-lint/definitions/core/module.rb +39 -3
  95. data/lib/ruby-lint/definitions/core/monitor.rb +4 -4
  96. data/lib/ruby-lint/definitions/core/monitor_mixin.rb +5 -5
  97. data/lib/ruby-lint/definitions/core/mutex.rb +2 -2
  98. data/lib/ruby-lint/definitions/core/name_error.rb +2 -2
  99. data/lib/ruby-lint/definitions/core/nil.rb +1 -1
  100. data/lib/ruby-lint/definitions/core/nil_class.rb +2 -2
  101. data/lib/ruby-lint/definitions/core/no_memory_error.rb +2 -2
  102. data/lib/ruby-lint/definitions/core/no_method_error.rb +2 -2
  103. data/lib/ruby-lint/definitions/core/not_implemented_error.rb +2 -2
  104. data/lib/ruby-lint/definitions/core/numeric.rb +2 -2
  105. data/lib/ruby-lint/definitions/core/object.rb +2 -2
  106. data/lib/ruby-lint/definitions/core/object_space.rb +1 -1
  107. data/lib/ruby-lint/definitions/core/open_struct.rb +3 -3
  108. data/lib/ruby-lint/definitions/core/option_parser.rb +83 -83
  109. data/lib/ruby-lint/definitions/core/precision.rb +1 -1
  110. data/lib/ruby-lint/definitions/core/primitive_failure.rb +2 -2
  111. data/lib/ruby-lint/definitions/core/proc.rb +2 -2
  112. data/lib/ruby-lint/definitions/core/process.rb +29 -29
  113. data/lib/ruby-lint/definitions/core/queue.rb +2 -2
  114. data/lib/ruby-lint/definitions/core/rake.rb +117 -117
  115. data/lib/ruby-lint/definitions/core/rake_file_utils.rb +1 -1
  116. data/lib/ruby-lint/definitions/core/rakeversion.rb +1 -1
  117. data/lib/ruby-lint/definitions/core/random.rb +2 -2
  118. data/lib/ruby-lint/definitions/core/range.rb +4 -4
  119. data/lib/ruby-lint/definitions/core/range_error.rb +2 -2
  120. data/lib/ruby-lint/definitions/core/rational.rb +2 -2
  121. data/lib/ruby-lint/definitions/core/rb_config.rb +3 -3
  122. data/lib/ruby-lint/definitions/core/regexp.rb +28 -28
  123. data/lib/ruby-lint/definitions/core/regexp_error.rb +2 -2
  124. data/lib/ruby-lint/definitions/core/ruby_copyright.rb +1 -1
  125. data/lib/ruby-lint/definitions/core/ruby_description.rb +1 -1
  126. data/lib/ruby-lint/definitions/core/ruby_engine.rb +1 -1
  127. data/lib/ruby-lint/definitions/core/ruby_patchlevel.rb +1 -1
  128. data/lib/ruby-lint/definitions/core/ruby_platform.rb +1 -1
  129. data/lib/ruby-lint/definitions/core/ruby_release_date.rb +1 -1
  130. data/lib/ruby-lint/definitions/core/ruby_version.rb +1 -1
  131. data/lib/ruby-lint/definitions/core/runtime_error.rb +2 -2
  132. data/lib/ruby-lint/definitions/core/scan_error.rb +2 -2
  133. data/lib/ruby-lint/definitions/core/script_error.rb +2 -2
  134. data/lib/ruby-lint/definitions/core/security_error.rb +2 -2
  135. data/lib/ruby-lint/definitions/core/shellwords.rb +1 -1
  136. data/lib/ruby-lint/definitions/core/signal.rb +3 -3
  137. data/lib/ruby-lint/definitions/core/signal_exception.rb +2 -2
  138. data/lib/ruby-lint/definitions/core/singleton.rb +2 -2
  139. data/lib/ruby-lint/definitions/core/sized_queue.rb +2 -2
  140. data/lib/ruby-lint/definitions/core/standard_error.rb +2 -2
  141. data/lib/ruby-lint/definitions/core/stderr.rb +3 -2
  142. data/lib/ruby-lint/definitions/core/stdin.rb +3 -2
  143. data/lib/ruby-lint/definitions/core/stdout.rb +3 -2
  144. data/lib/ruby-lint/definitions/core/stop_iteration.rb +2 -2
  145. data/lib/ruby-lint/definitions/core/string.rb +21 -21
  146. data/lib/ruby-lint/definitions/core/string_io.rb +7 -7
  147. data/lib/ruby-lint/definitions/core/string_scanner.rb +4 -4
  148. data/lib/ruby-lint/definitions/core/struct.rb +20 -20
  149. data/lib/ruby-lint/definitions/core/syck.rb +4 -4
  150. data/lib/ruby-lint/definitions/core/symbol.rb +2 -2
  151. data/lib/ruby-lint/definitions/core/syntax_error.rb +2 -2
  152. data/lib/ruby-lint/definitions/core/system_call_error.rb +2 -2
  153. data/lib/ruby-lint/definitions/core/system_exit.rb +2 -2
  154. data/lib/ruby-lint/definitions/core/system_stack_error.rb +2 -2
  155. data/lib/ruby-lint/definitions/core/thread.rb +6 -6
  156. data/lib/ruby-lint/definitions/core/thread_error.rb +2 -2
  157. data/lib/ruby-lint/definitions/core/thread_group.rb +2 -2
  158. data/lib/ruby-lint/definitions/core/time.rb +3 -3
  159. data/lib/ruby-lint/definitions/core/toplevel_binding.rb +1 -1
  160. data/lib/ruby-lint/definitions/core/true.rb +1 -1
  161. data/lib/ruby-lint/definitions/core/true_class.rb +2 -2
  162. data/lib/ruby-lint/definitions/core/type_error.rb +2 -2
  163. data/lib/ruby-lint/definitions/core/unbound_method.rb +2 -2
  164. data/lib/ruby-lint/definitions/core/unmarshalable.rb +1 -1
  165. data/lib/ruby-lint/definitions/core/unsupported_library_error.rb +2 -2
  166. data/lib/ruby-lint/definitions/core/weak_ref.rb +4 -4
  167. data/lib/ruby-lint/definitions/core/yaml.rb +2361 -0
  168. data/lib/ruby-lint/definitions/core/zero_division_error.rb +2 -2
  169. data/lib/ruby-lint/definitions/global_variables.rb +9 -0
  170. data/lib/ruby-lint/definitions/rails/abstract_controller.rb +174 -28
  171. data/lib/ruby-lint/definitions/rails/action_controller.rb +4959 -550
  172. data/lib/ruby-lint/definitions/rails/action_dispatch.rb +2489 -292
  173. data/lib/ruby-lint/definitions/rails/action_mailer.rb +1285 -42
  174. data/lib/ruby-lint/definitions/rails/action_pack.rb +14 -6
  175. data/lib/ruby-lint/definitions/rails/action_view.rb +6941 -445
  176. data/lib/ruby-lint/definitions/rails/active_model.rb +1212 -69
  177. data/lib/ruby-lint/definitions/rails/active_record.rb +10344 -1450
  178. data/lib/ruby-lint/definitions/rails/active_support.rb +4631 -573
  179. data/lib/ruby-lint/definitions/rails/arel.rb +3211 -319
  180. data/lib/ruby-lint/definitions/rails/rails.rb +2922 -84
  181. data/lib/ruby-lint/definitions/rails/sprockets.rb +3048 -277
  182. data/lib/ruby-lint/docstring/mapping.rb +55 -0
  183. data/lib/ruby-lint/docstring/param_tag.rb +29 -0
  184. data/lib/ruby-lint/docstring/parser.rb +133 -0
  185. data/lib/ruby-lint/docstring/return_tag.rb +24 -0
  186. data/lib/ruby-lint/file_loader.rb +96 -0
  187. data/lib/ruby-lint/file_scanner.rb +91 -0
  188. data/lib/ruby-lint/global_scope.rb +56 -0
  189. data/lib/ruby-lint/helper/constant_paths.rb +1 -1
  190. data/lib/ruby-lint/inspector.rb +11 -33
  191. data/lib/ruby-lint/iterator.rb +31 -4
  192. data/lib/ruby-lint/method_call/alias.rb +46 -0
  193. data/lib/ruby-lint/method_call/assign_member.rb +55 -0
  194. data/lib/ruby-lint/method_call/attribute.rb +102 -0
  195. data/lib/ruby-lint/method_call/base.rb +37 -0
  196. data/lib/ruby-lint/method_call/define_method.rb +17 -0
  197. data/lib/ruby-lint/method_call/include.rb +39 -0
  198. data/lib/ruby-lint/parser.rb +9 -4
  199. data/lib/ruby-lint/presenter/text.rb +2 -1
  200. data/lib/ruby-lint/report.rb +19 -42
  201. data/lib/ruby-lint/report/entry.rb +20 -17
  202. data/lib/ruby-lint/runner.rb +92 -11
  203. data/lib/ruby-lint/template/definition.erb +2 -2
  204. data/lib/ruby-lint/variable_predicates.rb +7 -10
  205. data/lib/ruby-lint/version.rb +1 -1
  206. data/lib/ruby-lint/virtual_machine.rb +265 -188
  207. data/ruby-lint.gemspec +4 -4
  208. data/ruby-lint.yml +7 -0
  209. data/spec/fixtures/associating.rb +7 -0
  210. data/spec/fixtures/file_scanner/lib/example/recursive/source.rb +6 -0
  211. data/spec/fixtures/file_scanner/lib/example/recursive/target.rb +8 -0
  212. data/spec/fixtures/file_scanner/lib/example/user.rb +6 -0
  213. data/spec/fixtures/file_scanner/lib/test-dashes/foo.rb +4 -0
  214. data/spec/fixtures/file_scanner/rails/app/models/example/user.rb +6 -0
  215. data/spec/fixtures/file_scanner/rails/app/models/user.rb +4 -0
  216. data/spec/fixtures/uses_external.rb +1 -0
  217. data/spec/fixtures/uses_external_invalid.rb +3 -0
  218. data/spec/fixtures/uses_external_namespace.rb +1 -0
  219. data/spec/ruby-lint/analysis/{argument_amount.rb → argument_amount_spec.rb} +33 -7
  220. data/spec/ruby-lint/analysis/base_spec.rb +12 -0
  221. data/spec/ruby-lint/analysis/{pedantics.rb → pedantics_spec.rb} +24 -4
  222. data/spec/ruby-lint/analysis/{shadowing_variables.rb → shadowing_variables_spec.rb} +6 -6
  223. data/spec/ruby-lint/analysis/undefined_methods_spec.rb +320 -0
  224. data/spec/ruby-lint/analysis/{undefined_variables.rb → undefined_variables_spec.rb} +33 -10
  225. data/spec/ruby-lint/analysis/{unused_variables.rb → unused_variables_spec.rb} +36 -9
  226. data/spec/ruby-lint/ast/{node.rb → node_spec.rb} +12 -6
  227. data/spec/ruby-lint/cli/{analyze.rb → analyze_spec.rb} +16 -5
  228. data/spec/ruby-lint/cli/{ast.rb → ast_spec.rb} +3 -3
  229. data/spec/ruby-lint/configuration_spec.rb +106 -0
  230. data/spec/ruby-lint/definition/constant_proxy_spec.rb +54 -0
  231. data/spec/ruby-lint/definition/{dsl.rb → dsl_spec.rb} +15 -15
  232. data/spec/ruby-lint/definition/{ruby_method.rb → ruby_method_spec.rb} +31 -17
  233. data/spec/ruby-lint/definition/{ruby_object.rb → ruby_object_spec.rb} +28 -23
  234. data/spec/ruby-lint/definition_builder/{primitive.rb → primitive_spec.rb} +9 -9
  235. data/spec/ruby-lint/definition_builder/{ruby_class.rb → ruby_class_spec.rb} +13 -13
  236. data/spec/ruby-lint/definition_builder/{ruby_method.rb → ruby_method_spec.rb} +9 -9
  237. data/spec/ruby-lint/definition_builder/{ruby_module.rb → ruby_module_spec.rb} +12 -10
  238. data/spec/ruby-lint/docstring/mapping.rb +27 -0
  239. data/spec/ruby-lint/docstring/parser_spec.rb +88 -0
  240. data/spec/ruby-lint/extensions/{string.rb → string_spec.rb} +3 -3
  241. data/spec/ruby-lint/file_loader_spec.rb +69 -0
  242. data/spec/ruby-lint/file_scanner_spec.rb +51 -0
  243. data/spec/ruby-lint/inspector_spec.rb +44 -0
  244. data/spec/ruby-lint/{iterator.rb → iterator_spec.rb} +39 -4
  245. data/spec/ruby-lint/{nested_stack.rb → nested_stack_spec.rb} +4 -4
  246. data/spec/ruby-lint/parser_spec.rb +31 -0
  247. data/spec/ruby-lint/presenter/json_spec.rb +58 -0
  248. data/spec/ruby-lint/presenter/text_spec.rb +49 -0
  249. data/spec/ruby-lint/report/entry_spec.rb +58 -0
  250. data/spec/ruby-lint/report_spec.rb +39 -0
  251. data/spec/ruby-lint/runner_spec.rb +52 -0
  252. data/spec/ruby-lint/virtual_machine/alias_spec.rb +55 -0
  253. data/spec/ruby-lint/virtual_machine/assignments/{arrays.rb → arrays_spec.rb} +7 -7
  254. data/spec/ruby-lint/virtual_machine/assignments/{hashes.rb → hashes_spec.rb} +6 -6
  255. data/spec/ruby-lint/virtual_machine/assignments/{optional.rb → optional_spec.rb} +6 -6
  256. data/spec/ruby-lint/virtual_machine/assignments/{return_values.rb → return_values_spec.rb} +11 -11
  257. data/spec/ruby-lint/virtual_machine/assignments/{variables.rb → variables_spec.rb} +38 -7
  258. data/spec/ruby-lint/virtual_machine/associate_nodes_spec.rb +59 -0
  259. data/spec/ruby-lint/virtual_machine/{autoloading.rb → autoloading_spec.rb} +6 -6
  260. data/spec/ruby-lint/virtual_machine/{blocks.rb → blocks_spec.rb} +30 -4
  261. data/spec/ruby-lint/virtual_machine/classes/{class_methods.rb → class_methods_spec.rb} +3 -3
  262. data/spec/ruby-lint/virtual_machine/classes/{extending.rb → extending_spec.rb} +20 -15
  263. data/spec/ruby-lint/virtual_machine/classes/{redefining.rb → redefining_spec.rb} +3 -3
  264. data/spec/ruby-lint/virtual_machine/classes/{sclass.rb → sclass_spec.rb} +7 -7
  265. data/spec/ruby-lint/virtual_machine/classes/{scoping.rb → scoping_spec.rb} +5 -5
  266. data/spec/ruby-lint/virtual_machine/complex/{rails.rb → rails_spec.rb} +3 -3
  267. data/spec/ruby-lint/virtual_machine/complex/{rcap.rb → rcap_spec.rb} +3 -3
  268. data/spec/ruby-lint/virtual_machine/complex/{slop.rb → slop_spec.rb} +3 -3
  269. data/spec/ruby-lint/virtual_machine/constants_spec.rb +31 -0
  270. data/spec/ruby-lint/virtual_machine/{for.rb → for_spec.rb} +3 -3
  271. data/spec/ruby-lint/virtual_machine/{freeze.rb → freeze_spec.rb} +3 -3
  272. data/spec/ruby-lint/virtual_machine/global_variables_spec.rb +12 -0
  273. data/spec/ruby-lint/virtual_machine/inherit_kernel_spec.rb +15 -0
  274. data/spec/ruby-lint/virtual_machine/{interpolation.rb → interpolation_spec.rb} +3 -3
  275. data/spec/ruby-lint/virtual_machine/methods/attr_spec.rb +116 -0
  276. data/spec/ruby-lint/virtual_machine/methods/define_method_spec.rb +41 -0
  277. data/spec/ruby-lint/virtual_machine/methods/{defining.rb → defining_spec.rb} +4 -4
  278. data/spec/ruby-lint/virtual_machine/methods/docstrings_spec.rb +69 -0
  279. data/spec/ruby-lint/virtual_machine/methods/{exporting.rb → exporting_spec.rb} +3 -3
  280. data/spec/ruby-lint/virtual_machine/methods/{parameters.rb → parameters_spec.rb} +17 -5
  281. data/spec/ruby-lint/virtual_machine/methods/{patching.rb → patching_spec.rb} +4 -4
  282. data/spec/ruby-lint/virtual_machine/methods/{scoping.rb → scoping_spec.rb} +5 -5
  283. data/spec/ruby-lint/virtual_machine/methods/{visibility.rb → visibility_spec.rb} +6 -6
  284. data/spec/ruby-lint/virtual_machine/{modules.rb → modules_spec.rb} +39 -9
  285. data/spec/ruby-lint/virtual_machine/reference_amount_spec.rb +61 -0
  286. data/spec/ruby-lint/virtual_machine/{unused.rb → unused_spec.rb} +4 -4
  287. data/spec/{helper.rb → spec_helper.rb} +6 -4
  288. data/spec/support/building.rb +10 -6
  289. data/spec/support/coveralls.rb +1 -1
  290. data/spec/support/parsing.rb +10 -1
  291. data/spec/support/simplecov.rb +1 -1
  292. data/spec/support/versions.rb +9 -0
  293. data/task/test.rake +2 -4
  294. data/task/travis.rake +1 -0
  295. metadata +144 -143
  296. metadata.gz.asc +14 -14
  297. data/.rubocop.yml +0 -59
  298. data/doc/contributing.md +0 -16
  299. data/lib/ruby-lint/analysis/confusing_variables.rb +0 -26
  300. data/lib/ruby-lint/definitions/core/main.rb +0 -25
  301. data/lib/ruby-lint/definitions/core/psych.rb +0 -2231
  302. data/lib/ruby-lint/definitions/core/rubinius.rb +0 -16637
  303. data/lib/ruby-lint/definitions/core/ruby_lint.rb +0 -93
  304. data/spec/ruby-lint/analysis/confusing_variables.rb +0 -46
  305. data/spec/ruby-lint/analysis/undefined_methods.rb +0 -174
  306. data/spec/ruby-lint/configuration.rb +0 -54
  307. data/spec/ruby-lint/definition/constant_proxy.rb +0 -31
  308. data/spec/ruby-lint/parser.rb +0 -14
  309. data/spec/ruby-lint/presenter/json.rb +0 -31
  310. data/spec/ruby-lint/presenter/text.rb +0 -22
  311. data/spec/ruby-lint/report.rb +0 -50
  312. data/spec/ruby-lint/report/entry.rb +0 -28
  313. data/spec/ruby-lint/runner.rb +0 -32
  314. data/spec/ruby-lint/virtual_machine/associate_nodes.rb +0 -17
  315. data/spec/ruby-lint/virtual_machine/reference_amount.rb +0 -33
  316. data/spec/support/bacon.rb +0 -33
  317. data/task/cop.rake +0 -11
@@ -1,4 +1,4 @@
1
- require File.expand_path('../../../helper', __FILE__)
1
+ require 'spec_helper'
2
2
 
3
3
  describe RubyLint::Definition::RubyObject do
4
4
  before do
@@ -6,13 +6,13 @@ describe RubyLint::Definition::RubyObject do
6
6
  end
7
7
 
8
8
  describe 'definining constants using a DSL' do
9
- should 'define a constant' do
9
+ example 'define a constant' do
10
10
  @first.define_constant('B')
11
11
 
12
12
  @first.lookup(:const, 'B').is_a?(ruby_object).should == true
13
13
  end
14
14
 
15
- should 'define a constant using a block' do
15
+ example 'define a constant using a block' do
16
16
  @first.define_constant('B') do |b|
17
17
  b.define_constant('C')
18
18
  end
@@ -23,7 +23,7 @@ describe RubyLint::Definition::RubyObject do
23
23
  .should == true
24
24
  end
25
25
 
26
- should 'inherit from another object' do
26
+ example 'inherit from another object' do
27
27
  @first.define_constant('B') do |b|
28
28
  b.define_constant('C')
29
29
  end
@@ -38,7 +38,7 @@ describe RubyLint::Definition::RubyObject do
38
38
  .should == true
39
39
  end
40
40
 
41
- should 'define a constant using a constant path' do
41
+ example 'define a constant using a constant path' do
42
42
  @first.define_constant('A')
43
43
  @first.define_constant('A::B')
44
44
 
@@ -50,13 +50,13 @@ describe RubyLint::Definition::RubyObject do
50
50
  end
51
51
 
52
52
  describe 'defining methods using a DSL' do
53
- should 'define a method' do
53
+ example 'define a method' do
54
54
  @first.define_method('example')
55
55
 
56
56
  @first.lookup(:method, 'example').is_a?(ruby_method).should == true
57
57
  end
58
58
 
59
- should 'define an instance method' do
59
+ example 'define an instance method' do
60
60
  @first.define_instance_method('example')
61
61
 
62
62
  @first.lookup(:instance_method, 'example') \
@@ -64,7 +64,7 @@ describe RubyLint::Definition::RubyObject do
64
64
  .should == true
65
65
  end
66
66
 
67
- should 'define a method\'s return value' do
67
+ example 'define a method\'s return value' do
68
68
  string = ruby_object.new(:type => :str, :value => 'hello')
69
69
 
70
70
  @first.define_method('example') do |example|
@@ -77,14 +77,14 @@ describe RubyLint::Definition::RubyObject do
77
77
  .should == true
78
78
  end
79
79
 
80
- should 'add a required argument' do
80
+ example 'add a required argument' do
81
81
  arg = method_with_argument(@first, :argument).arguments.first
82
82
 
83
83
  arg.is_a?(ruby_object).should == true
84
84
  arg.name.should == 'number'
85
85
  end
86
86
 
87
- should 'add a optional argument' do
87
+ example 'add a optional argument' do
88
88
  arg = method_with_argument(@first, :optional_argument) \
89
89
  .optional_arguments \
90
90
  .first
@@ -93,21 +93,21 @@ describe RubyLint::Definition::RubyObject do
93
93
  arg.name.should == 'number'
94
94
  end
95
95
 
96
- should 'add a rest argument' do
96
+ example 'add a rest argument' do
97
97
  arg = method_with_argument(@first, :rest_argument).rest_argument
98
98
 
99
99
  arg.is_a?(ruby_object).should == true
100
100
  arg.name.should == 'number'
101
101
  end
102
102
 
103
- should 'add a block argument' do
103
+ example 'add a block argument' do
104
104
  arg = method_with_argument(@first, :block_argument).block_argument
105
105
 
106
106
  arg.is_a?(ruby_object).should == true
107
107
  arg.name.should == 'number'
108
108
  end
109
109
 
110
- should 'easily define constructor methods' do
110
+ example 'easily define constructor methods' do
111
111
  @first.define_constructors do |method|
112
112
  method.define_argument('name')
113
113
  end
@@ -122,7 +122,7 @@ describe RubyLint::Definition::RubyObject do
122
122
  end
123
123
 
124
124
  describe 'defining global variables using a DSL' do
125
- should 'define a global variable' do
125
+ example 'define a global variable' do
126
126
  @first.define_global_variable('$number', '10')
127
127
 
128
128
  found = @first.lookup(:gvar, '$number')
@@ -132,4 +132,4 @@ describe RubyLint::Definition::RubyObject do
132
132
  found.name.should == '$number'
133
133
  end
134
134
  end
135
- end
135
+ end
@@ -1,4 +1,4 @@
1
- require File.expand_path('../../../helper', __FILE__)
1
+ require 'spec_helper'
2
2
 
3
3
  describe RubyLint::Definition::RubyObject do
4
4
  describe 'method definition DSL' do
@@ -7,13 +7,13 @@ describe RubyLint::Definition::RubyObject do
7
7
  end
8
8
 
9
9
  describe 'return values' do
10
- should 'return a static value' do
10
+ example 'return a static value' do
11
11
  @method.returns(10)
12
12
 
13
13
  @method.return_value.should == 10
14
14
  end
15
15
 
16
- should 'return a value using a block' do
16
+ example 'return a value using a block' do
17
17
  @method.returns do
18
18
  20
19
19
  end
@@ -28,11 +28,11 @@ describe RubyLint::Definition::RubyObject do
28
28
  @method.returns(10)
29
29
  end
30
30
 
31
- should 'call the method directly' do
31
+ example 'call the method directly' do
32
32
  @method.call.should == 10
33
33
  end
34
34
 
35
- should 'call the method by name' do
35
+ example 'call the method by name' do
36
36
  container = ruby_object.new(
37
37
  :name => 'String',
38
38
  :type => :const,
@@ -44,48 +44,62 @@ describe RubyLint::Definition::RubyObject do
44
44
  container.call_method('example').should == 10
45
45
  end
46
46
 
47
- should 'raise for calling an undefined method' do
47
+ example 'raise for calling an undefined method' do
48
48
  container = ruby_object.new(
49
49
  :name => 'String',
50
50
  :type => :const,
51
51
  :instance_type => :instance
52
52
  )
53
53
 
54
- error = should.raise?(NoMethodError) do
55
- container.call_method('derp')
56
- end
57
-
58
- error.message.should =~ /undefined method derp for/i
54
+ lambda { container.call_method('derp') }
55
+ .should raise_error(NoMethodError, /undefined method derp for/i)
59
56
  end
60
57
  end
61
58
 
62
59
  describe 'defining arguments' do
63
- should 'define an argument' do
60
+ example 'define an argument' do
64
61
  @method.define_argument('number')
65
62
 
66
63
  @method.lookup(:arg, 'number').is_a?(ruby_object).should == true
67
64
  @method.lookup(:lvar, 'number').is_a?(ruby_object).should == true
65
+
66
+ @method.arguments[0].is_a?(ruby_object).should == true
68
67
  end
69
68
 
70
- should 'define an optional argument' do
69
+ example 'define an optional argument' do
71
70
  @method.define_optional_argument('number')
72
71
 
73
72
  @method.lookup(:optarg, 'number').is_a?(ruby_object).should == true
74
73
  @method.lookup(:lvar, 'number').is_a?(ruby_object).should == true
74
+
75
+ @method.optional_arguments[0].is_a?(ruby_object).should == true
75
76
  end
76
77
 
77
- should 'define a rest argument' do
78
+ example 'define a rest argument' do
78
79
  @method.define_rest_argument('number')
79
80
 
80
81
  @method.lookup(:restarg, 'number').is_a?(ruby_object).should == true
81
- @method.lookup(:lvar, 'number').is_a?(ruby_object).should == true
82
+ @method.lookup(:lvar, 'number').is_a?(ruby_object).should == true
83
+
84
+ @method.rest_argument.is_a?(ruby_object).should == true
82
85
  end
83
86
 
84
- should 'define a block argument' do
87
+ example 'define a block argument' do
85
88
  @method.define_block_argument('number')
86
89
 
87
90
  @method.lookup(:blockarg, 'number').is_a?(ruby_object).should == true
88
- @method.lookup(:lvar, 'number').is_a?(ruby_object).should == true
91
+ @method.lookup(:lvar, 'number').is_a?(ruby_object).should == true
92
+
93
+ @method.block_argument.is_a?(ruby_object).should == true
94
+ end
95
+
96
+ example 'define a keyword argument' do
97
+ @method.define_keyword_argument('number')
98
+
99
+ @method.lookup(:kwoptarg, 'number').is_a?(ruby_object).should == true
100
+ @method.lookup(:lvar, 'number').is_a?(ruby_object).should == true
101
+
102
+ @method.keyword_arguments[0].is_a?(ruby_object).should == true
89
103
  end
90
104
  end
91
105
  end
@@ -1,4 +1,4 @@
1
- require File.expand_path('../../../helper', __FILE__)
1
+ require 'spec_helper'
2
2
 
3
3
  describe ruby_object do
4
4
  before do
@@ -14,42 +14,35 @@ describe ruby_object do
14
14
  )
15
15
  end
16
16
 
17
- should 'return the name of the object' do
17
+ example 'return the name of the object' do
18
18
  @object.name.should == 'hello'
19
19
  end
20
20
 
21
- should 'return the object type' do
21
+ example 'return the object type' do
22
22
  @object.type.should == :lvar
23
23
  end
24
24
 
25
- should 'return the value of the node' do
25
+ example 'return the value of the node' do
26
26
  @object.value.value.should == '10'
27
27
  end
28
28
 
29
- should 'only store RubyObject objects' do
29
+ example 'only store RubyObject objects' do
30
30
  obj = ruby_object.new(
31
31
  :type => :lvar,
32
32
  :name => 'foo'
33
33
  )
34
34
 
35
- should.raise?(TypeError) do
36
- @object.add(:lvar, 'foo', 10)
37
- end
38
-
39
- should.not.raise?(TypeError) do
40
- @object.add(:lvar, 'foo', obj)
41
- end
35
+ lambda { @object.add(:lvar, 'foo', 10) }.should raise_error(TypeError)
36
+ lambda { @object.add(:lvar, 'foo', obj) }.should_not raise_error
42
37
  end
43
38
 
44
- should 'only add valid collection types' do
39
+ example 'only add valid collection types' do
45
40
  obj = ruby_object.new(:name => 'Foo', :type => :test)
46
41
 
47
- should.raise?(ArgumentError) do
48
- @object.add_definition(obj)
49
- end
42
+ lambda { @object.add_definition(obj) }.should raise_error(ArgumentError)
50
43
  end
51
44
 
52
- should 'look up a constant path' do
45
+ example 'look up a constant path' do
53
46
  first = ruby_object.new(:name => 'A', :type => :const)
54
47
  second = ruby_object.new(:name => 'B', :type => :const)
55
48
  third = ruby_object.new(:name => 'C', :type => :const)
@@ -60,7 +53,7 @@ describe ruby_object do
60
53
  first.lookup_constant_path('B::C').should == third
61
54
  end
62
55
 
63
- should 'store a variable' do
56
+ example 'store a variable' do
64
57
  var = ruby_object.new(
65
58
  :type => :lvar,
66
59
  :name => 'number'
@@ -76,7 +69,7 @@ describe ruby_object do
76
69
  found.type.should == :lvar
77
70
  end
78
71
 
79
- should 'set the parent definitions' do
72
+ example 'set the parent definitions' do
80
73
  var1 = ruby_object.new(
81
74
  :type => :lvar,
82
75
  :name => 'numberx',
@@ -93,7 +86,7 @@ describe ruby_object do
93
86
  var2.parents.length.should == 1
94
87
  end
95
88
 
96
- should 'retrieve parent definitions' do
89
+ example 'retrieve parent definitions' do
97
90
  method = ruby_object.new(
98
91
  :type => :lvar,
99
92
  :name => 'example'
@@ -114,7 +107,7 @@ describe ruby_object do
114
107
  found.name.should == 'example'
115
108
  end
116
109
 
117
- should 'create a RubyObject that represents an instance' do
110
+ example 'create a RubyObject that represents an instance' do
118
111
  object = ruby_object.new(:type => :const, :name => 'String')
119
112
 
120
113
  object.instance_type.should == :class
@@ -126,7 +119,7 @@ describe ruby_object do
126
119
  instance.instance_type.should == :instance
127
120
  end
128
121
 
129
- should 'add data to a parent definition' do
122
+ example 'add data to a parent definition' do
130
123
  initial = ruby_object.new(
131
124
  :type => :lvar,
132
125
  :name => 'test',
@@ -164,7 +157,7 @@ describe ruby_object do
164
157
  parent.lookup(child_only.type, child_only.name).nil?.should == true
165
158
  end
166
159
 
167
- should 'return the members as the definition value' do
160
+ example 'return the members as the definition value' do
168
161
  array = ruby_object.new(:type => :array, :members_as_value => true)
169
162
  values = [10, 20]
170
163
 
@@ -189,4 +182,16 @@ describe ruby_object do
189
182
  array.value[index].value.value.should == value
190
183
  end
191
184
  end
185
+
186
+ example 'merging two definitions' do
187
+ source = ruby_object.new(:type => :const, :name => 'Source')
188
+ target = ruby_object.new(:type => :const, :name => 'Target')
189
+ const = ruby_object.new(:type => :const, :name => 'Foo')
190
+
191
+ source.add_definition(const)
192
+
193
+ target.merge(source)
194
+
195
+ target.lookup(:const, 'Foo').should == const
196
+ end
192
197
  end
@@ -1,11 +1,11 @@
1
- require File.expand_path('../../../helper', __FILE__)
1
+ require 'spec_helper'
2
2
 
3
3
  describe RubyLint::DefinitionBuilder::Primitive do
4
4
  before do
5
5
  @root = ruby_object.new(:name => 'root')
6
6
  end
7
7
 
8
- should 'build an integer definition' do
8
+ example 'build an integer definition' do
9
9
  builder = RubyLint::DefinitionBuilder::Primitive.new(s(:int, 10), @root)
10
10
  built = builder.build
11
11
 
@@ -13,7 +13,7 @@ describe RubyLint::DefinitionBuilder::Primitive do
13
13
  built.value.should == 10
14
14
  end
15
15
 
16
- should 'build a float definition' do
16
+ example 'build a float definition' do
17
17
  builder = RubyLint::DefinitionBuilder::Primitive.new(s(:float, 10.0), @root)
18
18
  built = builder.build
19
19
 
@@ -21,7 +21,7 @@ describe RubyLint::DefinitionBuilder::Primitive do
21
21
  built.value.should == 10.0
22
22
  end
23
23
 
24
- should 'build a string definition' do
24
+ example 'build a string definition' do
25
25
  builder = RubyLint::DefinitionBuilder::Primitive.new(s(:str, 'a'), @root)
26
26
  built = builder.build
27
27
 
@@ -29,7 +29,7 @@ describe RubyLint::DefinitionBuilder::Primitive do
29
29
  built.value.should == 'a'
30
30
  end
31
31
 
32
- should 'build a symbol definition' do
32
+ example 'build a symbol definition' do
33
33
  builder = RubyLint::DefinitionBuilder::Primitive.new(s(:sym, :a), @root)
34
34
  built = builder.build
35
35
 
@@ -37,13 +37,13 @@ describe RubyLint::DefinitionBuilder::Primitive do
37
37
  built.value.should == :a
38
38
  end
39
39
 
40
- should 'build primitives as instances by default' do
40
+ example 'build primitives as instances by default' do
41
41
  builder = RubyLint::DefinitionBuilder::Primitive.new(s(:int, 10), @root)
42
42
 
43
43
  builder.build.instance?.should == true
44
44
  end
45
45
 
46
- should 'allow custom options to be defined' do
46
+ example 'allow custom options to be defined' do
47
47
  builder = RubyLint::DefinitionBuilder::Primitive.new(
48
48
  s(:int, 10),
49
49
  @root,
@@ -53,10 +53,10 @@ describe RubyLint::DefinitionBuilder::Primitive do
53
53
  builder.build.class?.should == true
54
54
  end
55
55
 
56
- should 'include the definitions of the corresponding Ruby class' do
56
+ example 'include the definitions of the corresponding Ruby class' do
57
57
  builder = RubyLint::DefinitionBuilder::Primitive.new(s(:int, 10), @root)
58
58
  built = builder.build
59
59
 
60
60
  built.lookup(:instance_method, 'to_s').is_a?(ruby_object).should == true
61
61
  end
62
- end
62
+ end
@@ -1,4 +1,4 @@
1
- require File.expand_path('../../../helper', __FILE__)
1
+ require 'spec_helper'
2
2
 
3
3
  describe RubyLint::DefinitionBuilder::RubyClass do
4
4
  describe 'using an implicit parent class' do
@@ -8,15 +8,15 @@ describe RubyLint::DefinitionBuilder::RubyClass do
8
8
  @builder = RubyLint::DefinitionBuilder::RubyClass.new(node, @root)
9
9
  end
10
10
 
11
- should 'return the name of the class' do
11
+ example 'return the name of the class' do
12
12
  @builder.build.name.should == 'A'
13
13
  end
14
14
 
15
- should 'return the type of the class' do
15
+ example 'return the type of the class' do
16
16
  @builder.build.type.should == :const
17
17
  end
18
18
 
19
- should 'return the parent definitions' do
19
+ example 'return the parent definitions' do
20
20
  built = @builder.build
21
21
 
22
22
  built.parents.length.should == 2
@@ -25,11 +25,11 @@ describe RubyLint::DefinitionBuilder::RubyClass do
25
25
  built.parents[1].name.should == 'root'
26
26
  end
27
27
 
28
- should 'return the reference amount' do
28
+ example 'return the reference amount' do
29
29
  @builder.build.reference_amount.should == 1
30
30
  end
31
31
 
32
- should 'return the scope to define the class in' do
32
+ example 'return the scope to define the class in' do
33
33
  @builder.scope.should == @root
34
34
  end
35
35
  end
@@ -48,11 +48,11 @@ describe RubyLint::DefinitionBuilder::RubyClass do
48
48
  )
49
49
  end
50
50
 
51
- should 'return the name of the class' do
51
+ example 'return the name of the class' do
52
52
  @builder.build.name.should == 'A'
53
53
  end
54
54
 
55
- should 'return the parent definitions' do
55
+ example 'return the parent definitions' do
56
56
  built = @builder.build
57
57
 
58
58
  built.parents.length.should == 2
@@ -61,7 +61,7 @@ describe RubyLint::DefinitionBuilder::RubyClass do
61
61
  built.parents[1].name.should == 'root'
62
62
  end
63
63
 
64
- should 'return the scope to define the class in' do
64
+ example 'return the scope to define the class in' do
65
65
  @builder.scope.should == @root
66
66
  end
67
67
  end
@@ -88,11 +88,11 @@ describe RubyLint::DefinitionBuilder::RubyClass do
88
88
  )
89
89
  end
90
90
 
91
- should 'return the name of the class' do
91
+ example 'return the name of the class' do
92
92
  @builder.build.name.should == 'B'
93
93
  end
94
94
 
95
- should 'return the parent definitions' do
95
+ example 'return the parent definitions' do
96
96
  built = @builder.build
97
97
 
98
98
  built.parents.length.should == 2
@@ -101,8 +101,8 @@ describe RubyLint::DefinitionBuilder::RubyClass do
101
101
  built.parents[1].name.should == 'root'
102
102
  end
103
103
 
104
- should 'return the scope to define the class in' do
104
+ example 'return the scope to define the class in' do
105
105
  @builder.scope.should == @root.lookup(:const, 'A')
106
106
  end
107
107
  end
108
- end
108
+ end