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 |