ruby-lint 1.1.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (205) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +43 -29
  3. data/LICENSE +1 -1
  4. data/README.md +0 -1
  5. data/bin/ruby-lint +91 -3
  6. data/checksum/ruby-lint-1.1.0.gem.sha512 +1 -0
  7. data/doc/changelog.md +30 -0
  8. data/doc/code_analysis.md +13 -0
  9. data/doc/configuration.md +5 -24
  10. data/lib/ruby-lint.rb +7 -10
  11. data/lib/ruby-lint/analysis/argument_amount.rb +2 -0
  12. data/lib/ruby-lint/analysis/base.rb +12 -0
  13. data/lib/ruby-lint/analysis/pedantics.rb +2 -0
  14. data/lib/ruby-lint/analysis/shadowing_variables.rb +2 -0
  15. data/lib/ruby-lint/analysis/undefined_methods.rb +5 -2
  16. data/lib/ruby-lint/analysis/undefined_variables.rb +2 -0
  17. data/lib/ruby-lint/analysis/unused_variables.rb +2 -0
  18. data/lib/ruby-lint/analysis/useless_equality_checks.rb +2 -0
  19. data/lib/ruby-lint/ast/node.rb +0 -15
  20. data/lib/ruby-lint/command.rb +100 -0
  21. data/lib/ruby-lint/configuration.rb +35 -66
  22. data/lib/ruby-lint/constant_path.rb +7 -2
  23. data/lib/ruby-lint/definition/ruby_object.rb +20 -6
  24. data/lib/ruby-lint/definitions/core/argf.rb +3 -3
  25. data/lib/ruby-lint/definitions/gems/minitest.rb +792 -0
  26. data/lib/ruby-lint/file_list.rb +1 -1
  27. data/lib/ruby-lint/file_loader.rb +2 -20
  28. data/lib/ruby-lint/file_scanner.rb +11 -2
  29. data/lib/ruby-lint/method_evaluation.rb +21 -0
  30. data/lib/ruby-lint/presenter/base.rb +18 -0
  31. data/lib/ruby-lint/presenter/json.rb +3 -1
  32. data/lib/ruby-lint/presenter/syntastic.rb +3 -1
  33. data/lib/ruby-lint/presenter/text.rb +3 -1
  34. data/lib/ruby-lint/runner.rb +6 -63
  35. data/lib/ruby-lint/variable_predicates.rb +3 -3
  36. data/lib/ruby-lint/version.rb +1 -1
  37. data/lib/ruby-lint/virtual_machine.rb +4 -1
  38. data/ruby-lint.gemspec +13 -4
  39. metadata +12 -187
  40. data/.editorconfig +0 -15
  41. data/.gitignore +0 -6
  42. data/.ruby-version +0 -1
  43. data/.travis.yml +0 -19
  44. data/Gemfile +0 -15
  45. data/MANIFEST +0 -469
  46. data/Rakefile +0 -25
  47. data/benchmark/bootup.rb +0 -13
  48. data/benchmark/virtual_machine.rb +0 -17
  49. data/checksum/.gitkeep +0 -0
  50. data/doc/.gitkeep +0 -0
  51. data/doc/css/.gitkeep +0 -0
  52. data/doc/images/.gitkeep +0 -0
  53. data/gen/rails/constants.txt +0 -12
  54. data/gen/rails/requires.rb +0 -2
  55. data/gen/stdlib/constants.rb +0 -30
  56. data/gen/stdlib/constants.txt +0 -214
  57. data/gen/stdlib/requires.rb +0 -64
  58. data/lib/ruby-lint/benchmark/average.rb +0 -115
  59. data/lib/ruby-lint/cache.rb +0 -121
  60. data/lib/ruby-lint/cache_entry.rb +0 -44
  61. data/lib/ruby-lint/cli.rb +0 -4
  62. data/lib/ruby-lint/cli/analyze.rb +0 -209
  63. data/lib/ruby-lint/cli/base.rb +0 -103
  64. data/lib/ruby-lint/cli/cache.rb +0 -60
  65. data/lib/ruby-lint/default_names.rb +0 -19
  66. data/lib/ruby-lint/definitions/gems/.gitkeep +0 -0
  67. data/lib/ruby-lint/node_hash.rb +0 -105
  68. data/misc/stdlib.rb +0 -66
  69. data/profiling/virtual_machine.rb +0 -20
  70. data/ruby-lint.yml +0 -7
  71. data/spec/fixtures/associating.rb +0 -7
  72. data/spec/fixtures/complex/rails/basic_controller.rb +0 -9
  73. data/spec/fixtures/complex/rcap.rb +0 -67
  74. data/spec/fixtures/complex/slop.rb +0 -701
  75. data/spec/fixtures/config.yml +0 -8
  76. data/spec/fixtures/deeply/nested/file.rb +0 -1
  77. data/spec/fixtures/file_scanner/lib/example/recursive/source.rb +0 -6
  78. data/spec/fixtures/file_scanner/lib/example/recursive/target.rb +0 -8
  79. data/spec/fixtures/file_scanner/lib/example/user.rb +0 -6
  80. data/spec/fixtures/file_scanner/lib/ruby-lint/definition/constant_proxy.rb +0 -6
  81. data/spec/fixtures/file_scanner/lib/ruby-lint/global_scope.rb +0 -6
  82. data/spec/fixtures/file_scanner/lib/test-dashes/foo.rb +0 -4
  83. data/spec/fixtures/file_scanner/rails/app/models/example/user.rb +0 -6
  84. data/spec/fixtures/file_scanner/rails/app/models/user.rb +0 -4
  85. data/spec/fixtures/invalid.rb +0 -3
  86. data/spec/fixtures/invalid_2.rb +0 -3
  87. data/spec/fixtures/syntax_error.rb +0 -1
  88. data/spec/fixtures/uses_external.rb +0 -1
  89. data/spec/fixtures/uses_external_invalid.rb +0 -3
  90. data/spec/fixtures/uses_external_namespace.rb +0 -1
  91. data/spec/fixtures/valid.rb +0 -3
  92. data/spec/ruby-lint/analysis/argument_amount_spec.rb +0 -131
  93. data/spec/ruby-lint/analysis/base_spec.rb +0 -24
  94. data/spec/ruby-lint/analysis/pedantics_spec.rb +0 -63
  95. data/spec/ruby-lint/analysis/shadowing_variables_spec.rb +0 -85
  96. data/spec/ruby-lint/analysis/undefined_methods_spec.rb +0 -337
  97. data/spec/ruby-lint/analysis/undefined_variables_spec.rb +0 -138
  98. data/spec/ruby-lint/analysis/unused_variables_spec.rb +0 -270
  99. data/spec/ruby-lint/analysis/useless_equality_checks_spec.rb +0 -107
  100. data/spec/ruby-lint/ast/node_spec.rb +0 -39
  101. data/spec/ruby-lint/cache_entry_spec.rb +0 -25
  102. data/spec/ruby-lint/cache_spec.rb +0 -53
  103. data/spec/ruby-lint/cli/analyze_spec.rb +0 -52
  104. data/spec/ruby-lint/configuration_spec.rb +0 -126
  105. data/spec/ruby-lint/constant_loader_spec.rb +0 -79
  106. data/spec/ruby-lint/constant_path.rb +0 -63
  107. data/spec/ruby-lint/definition/constant_proxy_spec.rb +0 -85
  108. data/spec/ruby-lint/definition/dsl_spec.rb +0 -135
  109. data/spec/ruby-lint/definition/registry_spec.rb +0 -106
  110. data/spec/ruby-lint/definition/ruby_method_spec.rb +0 -106
  111. data/spec/ruby-lint/definition/ruby_object_spec.rb +0 -264
  112. data/spec/ruby-lint/definition_builder/primitive_spec.rb +0 -62
  113. data/spec/ruby-lint/definition_builder/ruby_class_spec.rb +0 -107
  114. data/spec/ruby-lint/definition_builder/ruby_method_spec.rb +0 -53
  115. data/spec/ruby-lint/definition_builder/ruby_module_spec.rb +0 -52
  116. data/spec/ruby-lint/definitions/argv_spec.rb +0 -18
  117. data/spec/ruby-lint/definitions/env_spec.rb +0 -13
  118. data/spec/ruby-lint/definitions/file_spec.rb +0 -17
  119. data/spec/ruby-lint/definitions/fixnum_spec.rb +0 -18
  120. data/spec/ruby-lint/definitions/io_spec.rb +0 -15
  121. data/spec/ruby-lint/definitions/kernel_spec.rb +0 -18
  122. data/spec/ruby-lint/definitions/range_spec.rb +0 -21
  123. data/spec/ruby-lint/definitions/string_spec.rb +0 -20
  124. data/spec/ruby-lint/docstring/mapping.rb +0 -27
  125. data/spec/ruby-lint/docstring/parser_spec.rb +0 -88
  126. data/spec/ruby-lint/extensions/string_spec.rb +0 -7
  127. data/spec/ruby-lint/file_list_spec.rb +0 -25
  128. data/spec/ruby-lint/file_loader_spec.rb +0 -69
  129. data/spec/ruby-lint/file_scanner_spec.rb +0 -84
  130. data/spec/ruby-lint/inspector_spec.rb +0 -224
  131. data/spec/ruby-lint/iterator_spec.rb +0 -151
  132. data/spec/ruby-lint/method_call/.gitkeep +0 -0
  133. data/spec/ruby-lint/nested_stack_spec.rb +0 -23
  134. data/spec/ruby-lint/node_hash_spec.rb +0 -56
  135. data/spec/ruby-lint/parser_spec.rb +0 -38
  136. data/spec/ruby-lint/presenter/json_spec.rb +0 -58
  137. data/spec/ruby-lint/presenter/syntastic_spec.rb +0 -49
  138. data/spec/ruby-lint/presenter/text_spec.rb +0 -49
  139. data/spec/ruby-lint/report/entry_spec.rb +0 -58
  140. data/spec/ruby-lint/report_spec.rb +0 -39
  141. data/spec/ruby-lint/runner_spec.rb +0 -74
  142. data/spec/ruby-lint/variable_predicates_spec.rb +0 -30
  143. data/spec/ruby-lint/virtual_machine/alias_spec.rb +0 -55
  144. data/spec/ruby-lint/virtual_machine/assignments/arrays_spec.rb +0 -87
  145. data/spec/ruby-lint/virtual_machine/assignments/assignment_arguments_spec.rb +0 -14
  146. data/spec/ruby-lint/virtual_machine/assignments/constants_spec.rb +0 -23
  147. data/spec/ruby-lint/virtual_machine/assignments/hashes_spec.rb +0 -52
  148. data/spec/ruby-lint/virtual_machine/assignments/optional_spec.rb +0 -41
  149. data/spec/ruby-lint/virtual_machine/assignments/range_spec.rb +0 -28
  150. data/spec/ruby-lint/virtual_machine/assignments/return_values_spec.rb +0 -78
  151. data/spec/ruby-lint/virtual_machine/assignments/variables_spec.rb +0 -130
  152. data/spec/ruby-lint/virtual_machine/associate_nodes_spec.rb +0 -61
  153. data/spec/ruby-lint/virtual_machine/autoloading_spec.rb +0 -18
  154. data/spec/ruby-lint/virtual_machine/blocks_spec.rb +0 -90
  155. data/spec/ruby-lint/virtual_machine/classes/class_methods_spec.rb +0 -21
  156. data/spec/ruby-lint/virtual_machine/classes/extending_spec.rb +0 -109
  157. data/spec/ruby-lint/virtual_machine/classes/redefining_spec.rb +0 -51
  158. data/spec/ruby-lint/virtual_machine/classes/sclass_spec.rb +0 -96
  159. data/spec/ruby-lint/virtual_machine/classes/scoping_spec.rb +0 -60
  160. data/spec/ruby-lint/virtual_machine/complex/rails_spec.rb +0 -21
  161. data/spec/ruby-lint/virtual_machine/complex/rcap_spec.rb +0 -15
  162. data/spec/ruby-lint/virtual_machine/complex/slop_spec.rb +0 -16
  163. data/spec/ruby-lint/virtual_machine/constants_spec.rb +0 -31
  164. data/spec/ruby-lint/virtual_machine/for_spec.rb +0 -16
  165. data/spec/ruby-lint/virtual_machine/freeze_spec.rb +0 -13
  166. data/spec/ruby-lint/virtual_machine/global_variables_spec.rb +0 -15
  167. data/spec/ruby-lint/virtual_machine/inherit_kernel_spec.rb +0 -15
  168. data/spec/ruby-lint/virtual_machine/interpolation_spec.rb +0 -12
  169. data/spec/ruby-lint/virtual_machine/location_spec.rb +0 -64
  170. data/spec/ruby-lint/virtual_machine/method_call_tracking_spec.rb +0 -57
  171. data/spec/ruby-lint/virtual_machine/methods/attr_spec.rb +0 -182
  172. data/spec/ruby-lint/virtual_machine/methods/calls_spec.rb +0 -25
  173. data/spec/ruby-lint/virtual_machine/methods/define_method_spec.rb +0 -41
  174. data/spec/ruby-lint/virtual_machine/methods/defining_spec.rb +0 -40
  175. data/spec/ruby-lint/virtual_machine/methods/docstrings_spec.rb +0 -80
  176. data/spec/ruby-lint/virtual_machine/methods/exporting_spec.rb +0 -19
  177. data/spec/ruby-lint/virtual_machine/methods/kernel_spec.rb +0 -25
  178. data/spec/ruby-lint/virtual_machine/methods/parameters_spec.rb +0 -89
  179. data/spec/ruby-lint/virtual_machine/methods/patching_spec.rb +0 -20
  180. data/spec/ruby-lint/virtual_machine/methods/scoping_spec.rb +0 -63
  181. data/spec/ruby-lint/virtual_machine/methods/square_bracket_spec.rb +0 -32
  182. data/spec/ruby-lint/virtual_machine/methods/visibility_spec.rb +0 -64
  183. data/spec/ruby-lint/virtual_machine/modules_spec.rb +0 -205
  184. data/spec/ruby-lint/virtual_machine/reference_amount_spec.rb +0 -81
  185. data/spec/ruby-lint/virtual_machine/self_spec.rb +0 -37
  186. data/spec/ruby-lint/virtual_machine/unused_spec.rb +0 -17
  187. data/spec/spec_helper.rb +0 -28
  188. data/spec/support/building.rb +0 -50
  189. data/spec/support/coveralls.rb +0 -5
  190. data/spec/support/definitions.rb +0 -39
  191. data/spec/support/fixtures.rb +0 -20
  192. data/spec/support/parsing.rb +0 -30
  193. data/spec/support/simplecov.rb +0 -18
  194. data/spec/support/versions.rb +0 -9
  195. data/task/build.rake +0 -4
  196. data/task/checksum.rake +0 -13
  197. data/task/coverage.rake +0 -6
  198. data/task/doc.rake +0 -16
  199. data/task/generate.rake +0 -77
  200. data/task/graphviz.rake +0 -12
  201. data/task/manifest.rake +0 -8
  202. data/task/tag.rake +0 -6
  203. data/task/test.rake +0 -4
  204. data/task/todo.rake +0 -6
  205. data/task/travis.rake +0 -8
@@ -1,37 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe RubyLint::VirtualMachine do
4
- describe 'self in instances/classes' do
5
- before :all do
6
- code = <<-CODE
7
- class Example
8
- def self.class_method
9
- @class_self = self
10
- end
11
-
12
- def instance_method
13
- @instance_self = self
14
- end
15
- end
16
- CODE
17
-
18
- definitions = build_definitions(code)
19
- @constant = definitions.lookup(:const, 'Example')
20
- end
21
-
22
- example 'set the right instance type' do
23
- @constant.lookup(:ivar, '@class_self').value.instance?.should == false
24
- @constant.lookup(:ivar, '@instance_self').value.instance?.should == true
25
- end
26
-
27
- example 'self should be defined as a class method' do
28
- @constant.lookup(:method, 'self').is_a?(ruby_method).should == true
29
- end
30
-
31
- example 'self should be defined as an instance method' do
32
- @constant.lookup(:instance_method, 'self')
33
- .is_a?(ruby_method)
34
- .should == true
35
- end
36
- end
37
- end
@@ -1,17 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe RubyLint::VirtualMachine do
4
- describe 'marking variables as used/unused' do
5
- example 'mark variables as unused by default' do
6
- defs = build_definitions('number = 10')
7
-
8
- defs.lookup(:lvar, 'number').used?.should == false
9
- end
10
-
11
- example 'mark variables as used' do
12
- defs = build_definitions('number = 10; number')
13
-
14
- defs.lookup(:lvar, 'number').used?.should == true
15
- end
16
- end
17
- end
@@ -1,28 +0,0 @@
1
- require 'rspec'
2
- require 'stringio'
3
- require 'redcard'
4
- require 'tmpdir'
5
- require 'fileutils'
6
- require 'tempfile'
7
-
8
- if ENV['COVERAGE']
9
- require_relative 'support/simplecov'
10
- end
11
-
12
- if ENV['COVERALLS']
13
- require_relative 'support/coveralls'
14
- end
15
-
16
- # Disable caching of RubyLint::Runner for all tests.
17
- ENV['RUBY_LINT_DISABLE_CACHE'] = '1'
18
-
19
- require_relative '../lib/ruby-lint'
20
- require_relative 'support/building'
21
- require_relative 'support/parsing'
22
- require_relative 'support/definitions'
23
- require_relative 'support/fixtures'
24
- require_relative 'support/versions'
25
-
26
- RSpec.configure do |config|
27
- config.color = true
28
- end
@@ -1,50 +0,0 @@
1
- ##
2
- # Builds a list of definitions for the specified block of Ruby code.
3
- #
4
- # @param [String] code The code to analyze.
5
- # @return [RubyLint::Definition::RubyObject]
6
- #
7
- def build_definitions(code)
8
- ast, comments = parse_with_comments(code)
9
- vm = RubyLint::VirtualMachine.new(:comments => comments)
10
-
11
- vm.run(ast)
12
-
13
- return vm.definitions
14
- end
15
-
16
- ##
17
- # Builds a report for the given code and iterator class.
18
- #
19
- # @param [String] code
20
- # @param [Class] iterator
21
- # @return [RubyLint::Report]
22
- #
23
- def build_report(code, iterator)
24
- ast, comments = parse_with_comments(code)
25
- vm = RubyLint::VirtualMachine.new(:comments => comments)
26
-
27
- vm.run(ast)
28
-
29
- report = RubyLint::Report.new
30
- iterator = iterator.new(:report => report, :vm => vm)
31
-
32
- iterator.iterate(ast)
33
-
34
- return report
35
- end
36
-
37
- ##
38
- # Processes the given AST and returns the node associations.
39
- #
40
- # @see build_definitions
41
- # @return [Hash]
42
- #
43
- def build_associations(code)
44
- ast, comments = parse_with_comments(code)
45
- vm = RubyLint::VirtualMachine.new(:comments => comments)
46
-
47
- vm.run(ast)
48
-
49
- return vm.associations
50
- end
@@ -1,5 +0,0 @@
1
- require 'coveralls'
2
-
3
- SimpleCov.formatter = Coveralls::SimpleCov::Formatter
4
-
5
- Coveralls.wear_merged!
@@ -1,39 +0,0 @@
1
- ##
2
- # @return [Class]
3
- #
4
- def ruby_object
5
- return RubyLint::Definition::RubyObject
6
- end
7
-
8
- ##
9
- # @return [Class]
10
- #
11
- def ruby_method
12
- return RubyLint::Definition::RubyMethod
13
- end
14
-
15
- ##
16
- # @param [#to_s] type
17
- # @return [RubyLint::Definition::RubyMethod]
18
- #
19
- def method_with_argument(object, type)
20
- return object.define_method('example') do |example|
21
- example.send("define_#{type}", 'number')
22
- end
23
- end
24
-
25
- ##
26
- # Loads a list of built-in definitions.
27
- #
28
- # @param [String] names
29
- #
30
- def load_definitions(*names)
31
- root = ruby_object.new
32
- loader = RubyLint::ConstantLoader.new(:definitions => root)
33
-
34
- names.each do |name|
35
- loader.load_constant(name)
36
- end
37
-
38
- return root
39
- end
@@ -1,20 +0,0 @@
1
- ##
2
- # Returns the source code of a fixture file.
3
- #
4
- # @param [String] path The path to the fixture file, relative to the fixture
5
- # directory
6
- # @return [String]
7
- #
8
- def fixture(path)
9
- return File.read(fixture_path(path))
10
- end
11
-
12
- ##
13
- # Returns the path to the given fixture file.
14
- #
15
- # @param [String] path The path relative to the fixtures directory.
16
- # @return [String]
17
- #
18
- def fixture_path(path)
19
- return File.join(File.expand_path('../../fixtures', __FILE__), path)
20
- end
@@ -1,30 +0,0 @@
1
- ##
2
- # Parses the specified Ruby code and returns the first instance of
3
- # {RubyLint::Node} (excluding the root node).
4
- #
5
- # @param [String] code The code to parse.
6
- # @param [TrueClass|FalseClass] first When set to `true` only the first node
7
- # is returned.
8
- # @return [RubyLint::Node]
9
- #
10
- def parse(code, first = true)
11
- ast, _ = RubyLint::Parser.new.parse(code)
12
-
13
- return first ? ast.children[0] : ast
14
- end
15
-
16
- ##
17
- # Parses the block of code and returns both the AST and comments.
18
- #
19
- # @see #parse
20
- #
21
- def parse_with_comments(code)
22
- return RubyLint::Parser.new.parse(code)
23
- end
24
-
25
- ##
26
- # Shorthand for creating instances of a AST node.
27
- #
28
- def s(type, *children)
29
- return RubyLint::AST::Node.new(type, children)
30
- end
@@ -1,18 +0,0 @@
1
- require 'simplecov'
2
-
3
- SimpleCov.configure do
4
- root File.expand_path('../../../', __FILE__)
5
- command_name 'rspec'
6
- project_name 'ruby-lint'
7
-
8
- add_group 'Analysis', 'ruby-lint/analysis'
9
- add_group 'Definition Containers', 'ruby-lint/definition'
10
- add_group 'Definition Builders', 'ruby-lint/definition_builder'
11
- add_group 'Presenters', 'ruby-lint/presenter'
12
-
13
- add_filter 'spec'
14
- add_filter 'lib/ruby-lint/version'
15
- add_filter 'lib/ruby-lint/definitions'
16
- end
17
-
18
- SimpleCov.start
@@ -1,9 +0,0 @@
1
- ##
2
- # Yields the supplied block if the current Ruby version matches the specified
3
- # one.
4
- #
5
- # @param [String] version
6
- #
7
- def specific_ruby_version(version)
8
- yield if RedCard.check(version)
9
- end
@@ -1,4 +0,0 @@
1
- desc 'Builds a new Gem and its checksum'
2
- task :signed_build => [:build] do
3
- Rake::Task['checksum'].invoke
4
- end
@@ -1,13 +0,0 @@
1
- desc 'Creates a SHA512 checksum of the current version'
2
- task :checksum do
3
- checksums = File.expand_path('../../checksum', __FILE__)
4
- name = "#{GEMSPEC.name}-#{GEMSPEC.version}.gem"
5
- path = File.join(File.expand_path('../../pkg', __FILE__), name)
6
-
7
- checksum_name = File.basename(path) + '.sha512'
8
- checksum = Digest::SHA512.new.hexdigest(File.read(path))
9
-
10
- File.open(File.join(checksums, checksum_name), 'w') do |handle|
11
- handle.write(checksum)
12
- end
13
- end
@@ -1,6 +0,0 @@
1
- desc 'Generates code coverage'
2
- task :coverage do
3
- ENV['COVERAGE'] = '1'
4
-
5
- Rake::Task['test'].invoke
6
- end
@@ -1,16 +0,0 @@
1
- desc 'Builds the documentation'
2
- task :doc do
3
- sh('rake graphviz')
4
- sh('yard doc')
5
- end
6
-
7
- desc 'Generates and uploads the documentation'
8
- task :upload_doc => :doc do
9
- root_dir = "/srv/http/code.yorickpeterse.com/public/ruby-lint"
10
- version_dir = File.join(root_dir, RubyLint::VERSION)
11
-
12
- sh "scp -r yardoc europa:#{version_dir}"
13
-
14
- sh "ssh europa 'rm -f #{root_dir}/latest " \
15
- "&& ln -s #{version_dir} #{root_dir}/latest'"
16
- end
@@ -1,77 +0,0 @@
1
- namespace :generate do
2
- desc 'Generates a set of definitions for a constant'
3
- task :definitions, :constant, :directory, :overwrite do |task, args|
4
- abort 'You have to specify a constant' unless args[:constant]
5
- abort 'You have to specify a directory' unless args[:directory]
6
-
7
- generator = RubyLint::DefinitionGenerator.new(
8
- args[:constant],
9
- args[:directory],
10
- :overwrite => !!args[:overwrite]
11
- )
12
-
13
- generator.generate
14
- end
15
-
16
- desc 'Generates definitions for all available constants'
17
- task :everything, :overwrite do |task, args|
18
- args.with_defaults(:overwrite => false)
19
-
20
- require_relative '../gen/stdlib/requires'
21
-
22
- directory = File.expand_path(
23
- '../../lib/ruby-lint/definitions/core/',
24
- __FILE__
25
- )
26
-
27
- constants_file = File.expand_path(
28
- '../../gen/stdlib/constants.txt',
29
- __FILE__
30
- )
31
-
32
- allowed = File.read(constants_file).split("\n")
33
- ignore = Object.constants.map(&:to_s) - allowed
34
- generator = RubyLint::DefinitionGenerator.new(
35
- Object,
36
- directory,
37
- :overwrite => !!args[:overwrite],
38
- :ignore => ignore
39
- )
40
-
41
- generator.generate
42
- end
43
-
44
- desc 'Generates definitions for Rails'
45
- task :rails do
46
- require_relative '../gen/rails/requires'
47
-
48
- directory = File.expand_path(
49
- '../../lib/ruby-lint/definitions/rails',
50
- __FILE__
51
- )
52
-
53
- constants_file = File.expand_path(
54
- '../../gen/rails/constants.txt',
55
- __FILE__
56
- )
57
-
58
- constants = File.read(constants_file).split("\n")
59
-
60
- # Deal with Rails' autoloading nonsense.
61
- constants.each do |name|
62
- constant = Object.const_get(name)
63
-
64
- constant.eager_load! if constant.respond_to?(:eager_load!)
65
- end
66
-
67
- ignore = Object.constants.map(&:to_s) - constants
68
- generator = RubyLint::DefinitionGenerator.new(
69
- Object,
70
- directory,
71
- :overwrite => true,
72
- :ignore => ignore
73
- )
74
-
75
- generator.generate
76
- end
77
- end
@@ -1,12 +0,0 @@
1
- desc 'Generates all the Graphviz graphs'
2
- task :graphviz do
3
- pattern = File.expand_path('../../doc/graphviz/*.dot', __FILE__)
4
- output = File.expand_path('../../doc/images/', __FILE__)
5
-
6
- Dir.glob(pattern) do |file|
7
- name = File.basename(file, '.dot') + '.png'
8
- destination = File.join(output, name)
9
-
10
- sh("dot -T png -o #{destination} #{file}")
11
- end
12
- end
@@ -1,8 +0,0 @@
1
- desc 'Generates the MANIFEST file'
2
- task :manifest do
3
- files = `git ls-files`.split("\n").sort
4
- handle = File.open(File.expand_path('../../MANIFEST', __FILE__), 'w')
5
-
6
- handle.write(files.join("\n"))
7
- handle.close
8
- end
@@ -1,6 +0,0 @@
1
- desc 'Creates a Git tag for the current version'
2
- task :tag do
3
- version = RubyLint::VERSION
4
-
5
- sh %Q{git tag -a -m "Version #{version}" #{version}}
6
- end
@@ -1,4 +0,0 @@
1
- desc 'Runs the tests'
2
- task :test do
3
- sh 'rspec spec'
4
- end
@@ -1,6 +0,0 @@
1
- desc 'Extracts TODO tags and the likes'
2
- task :todo do
3
- regex = %w{NOTE: FIXME: TODO: THINK: @todo}.join('|')
4
-
5
- sh "grep --color -R -P '#{regex}' lib"
6
- end
@@ -1,8 +0,0 @@
1
- desc 'Runs tests on Travis CI'
2
- task :travis do
3
- ENV['COVERALLS'] = '1'
4
- ENV['COVERAGE'] = '1'
5
-
6
- Rake::Task['test'].invoke
7
- Rake::Task['coveralls:push'].invoke
8
- end