Module: PuppetX::Augeas::Util::Parser
- Defined in:
- lib/puppet_x/augeas/util/parser.rb
Overview
Container for helpers to parse user provided data contained in manifests.
Constant Summary collapse
- TOKEN_ARRAY_CLOSE =
%r{\s*\]\s*}
- TOKEN_ARRAY_OPEN =
%r{\s*\[\s*}
- TOKEN_ARRAY_SEPARATOR =
%r{\s*,\s*}
- TOKEN_CLOSE_CURLY =
%r|}|
- TOKEN_DOUBLE_QUOTE =
%r{"}
- TOKEN_DOUBLE_QUOTE_ESCAPED_CHAR =
%r{\\(["\\abtnvfres0-7xu])}
- TOKEN_DOUBLE_QUOTE_UNESCAPED_CHAR =
%r{[^"\\]}
- TOKEN_HEX_CHAR =
%r{[0-9a-fA-F]{1,2}}
- TOKEN_OCTAL_CHAR =
%r{[0-7]{1,3}}
- TOKEN_OPEN_CURLY =
%r|{|
- TOKEN_SINGLE_QUOTE =
%r{'}
- TOKEN_SINGLE_QUOTE_ESCAPED_CHAR =
%r{\\(['\\])}
- TOKEN_SINGLE_QUOTE_UNESCAPED_CHAR =
%r{[^'\\]}
- TOKEN_SPACE =
%r{\s}
- TOKEN_UNICODE_LONG_HEX_CHAR =
%r{[0-9a-fA-F]{1,6}}
- TOKEN_UNICODE_SHORT_HEX_CHAR =
%r{[0-9a-fA-F]{4}}
Instance Method Summary collapse
-
#parse_to_array(string) ⇒ Array<String>
Parse a string into the (nearly) equivalent Ruby array.
Instance Method Details
#parse_to_array(string) ⇒ Array<String>
Parse a string into the (nearly) equivalent Ruby array. This only handles arrays with string members (double-, or single-quoted), and does not support the full quite of escape sequences that Ruby allows in double-quoted strings.
34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/puppet_x/augeas/util/parser.rb', line 34 def parse_to_array(string) s = StringScanner.new(string) match = array_open(s) raise "Unexpected character in array at: #{s.rest}" if match.nil? array_content = array_values(s) match = array_close(s) raise "Unexpected character in array at: #{s.rest}" if match.nil? || !s.empty? array_content end |