Class: Rubycli::Arguments::ValueConverter
- Inherits:
-
Object
- Object
- Rubycli::Arguments::ValueConverter
- Defined in:
- lib/rubycli/arguments/value_converter.rb
Overview
Converts raw CLI tokens into Ruby primitives when safe to do so.
Constant Summary collapse
- LITERAL_PARSE_FAILURE =
Object.new
Instance Method Summary collapse
Instance Method Details
#convert(value) ⇒ Object
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 |
# File 'lib/rubycli/arguments/value_converter.rb', line 11 def convert(value) return value if Rubycli.eval_mode? || Rubycli.json_mode? return value unless value.is_a?(String) trimmed = value.strip return value if trimmed.empty? if symbol_literal?(trimmed) symbol_value = trimmed.delete_prefix(':') return symbol_value.to_sym unless symbol_value.empty? end if literal_like?(trimmed) literal = try_literal_parse(value) return literal unless literal.equal?(LITERAL_PARSE_FAILURE) end return nil if null_literal?(trimmed) lower = trimmed.downcase return true if lower == 'true' return false if lower == 'false' return value.to_i if integer_string?(trimmed) return value.to_f if float_string?(trimmed) value end |