Module: Ace::Support::Config::Atoms::YamlParser
- Defined in:
- lib/ace/support/config/atoms/yaml_parser.rb
Overview
Pure YAML parsing functions
Class Method Summary collapse
-
.dump(data) ⇒ String
Convert Ruby hash to YAML string.
-
.parse(yaml_string) ⇒ Hash
Parse YAML string into Ruby hash.
-
.valid?(yaml_string) ⇒ Boolean
Check if string is valid YAML.
Class Method Details
.dump(data) ⇒ String
Convert Ruby hash to YAML string
31 32 33 34 35 |
# File 'lib/ace/support/config/atoms/yaml_parser.rb', line 31 def dump(data) return "" if data.nil? || data.empty? YAML.dump(data) end |
.parse(yaml_string) ⇒ Hash
Parse YAML string into Ruby hash
18 19 20 21 22 23 24 25 26 |
# File 'lib/ace/support/config/atoms/yaml_parser.rb', line 18 def parse(yaml_string) return {} if yaml_string.nil? || yaml_string.strip.empty? YAML.safe_load(yaml_string, permitted_classes: [Symbol, Date], aliases: true) rescue Psych::SyntaxError => e raise YamlParseError, "Failed to parse YAML: #{e.}" rescue Encoding::CompatibilityError, Encoding::InvalidByteSequenceError => e raise YamlParseError, "Failed to parse YAML (encoding error): #{e.}" end |
.valid?(yaml_string) ⇒ Boolean
Check if string is valid YAML
40 41 42 43 44 45 |
# File 'lib/ace/support/config/atoms/yaml_parser.rb', line 40 def valid?(yaml_string) parse(yaml_string) true rescue YamlParseError false end |