Module: Byebug::ParseFunctions
- Included in:
- Command
- Defined in:
- lib/byebug/helper.rb
Overview
Utilities to assist command parsing
Instance Method Summary collapse
-
#get_int(str, cmd, min = nil, max = nil) ⇒ Object
Parse ‘str’ of command ‘cmd’ as an integer between min and max.
-
#parse_steps(str, cmd) ⇒ Object
Returns the number of steps specified in <str> as an integer or 1 if <str> is empty.
-
#syntax_valid?(code) ⇒ Boolean
Returns true if code is syntactically correct for Ruby.
Instance Method Details
#get_int(str, cmd, min = nil, max = nil) ⇒ Object
Parse ‘str’ of command ‘cmd’ as an integer between min and max. If either min or max is nil, that value has no bound.
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/byebug/helper.rb', line 74 def get_int(str, cmd, min = nil, max = nil) if str !~ /\A[0-9]+\z/ return nil, pr('parse.errors.int.not_number', cmd: cmd, str: str) end int = str.to_i if min && int < min return min, pr('parse.errors.int.too_low', cmd: cmd, str: str, min: min) elsif max && int > max return max, pr('parse.errors.int.too_high', cmd: cmd, str: str, max: max) end int end |
#parse_steps(str, cmd) ⇒ Object
Returns the number of steps specified in <str> as an integer or 1 if <str> is empty.
103 104 105 106 107 108 109 110 |
# File 'lib/byebug/helper.rb', line 103 def parse_steps(str, cmd) return 1 unless str steps, err = get_int(str, cmd, 1) return nil, err unless steps steps end |
#syntax_valid?(code) ⇒ Boolean
Returns true if code is syntactically correct for Ruby.
93 94 95 96 97 |
# File 'lib/byebug/helper.rb', line 93 def syntax_valid?(code) eval("BEGIN {return true}\n#{code}", nil, '', 0) rescue SyntaxError false end |