File: debug.rake

package info (click to toggle)
ruby-rubocop-ast 1.24.0-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 1,256 kB
  • sloc: ruby: 15,071; yacc: 90; makefile: 9
file content (50 lines) | stat: -rw-r--r-- 1,371 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# frozen_string_literal: true

desc 'Compile pattern to Ruby code for debugging purposes'
task compile: :generate do
  if (pattern = ARGV[1])
    require_relative '../lib/rubocop/ast'
    puts ::RuboCop::AST::NodePattern.new(pattern).compile_as_lambda
  else
    puts 'Usage:'
    puts "  rake compile '(send nil? :example...)'"
  end
  exit(0)
end

desc 'Parse pattern to AST for debugging purposes'
task parse: :generate do
  if (pattern = ARGV[1])
    require_relative '../lib/rubocop/ast'
    puts ::RuboCop::AST::NodePattern::Parser.new.parse(pattern)
  else
    puts 'Usage:'
    puts "  rake parse '(send nil? :example...)'"
  end
  exit(0)
end

desc 'Tokens of pattern for debugging purposes'
task tokenize: :generate do
  if (pattern = ARGV[1])
    require_relative '../lib/rubocop/ast'
    puts ::RuboCop::AST::NodePattern::Parser::WithMeta.new.tokenize(pattern).last
  else
    puts 'Usage:'
    puts "  rake parse '(send nil? :example...)'"
  end
  exit(0)
end

desc 'Test pattern against ruby code'
task test_pattern: :generate do
  if (pattern = ARGV[1]) && (ruby = ARGV[2])
    require_relative '../lib/rubocop/ast'
    colorizer = ::RuboCop::AST::NodePattern::Compiler::Debug::Colorizer.new(pattern)
    puts colorizer.test(ruby).colorize
  else
    puts 'Usage:'
    puts "  rake test-pattern '(send nil? :example...)' 'example(42)'"
  end
  exit(0)
end