Class: PagerTree::Integrations::FormatConverters::YamlJsonConverter

Inherits:
Object
  • Object
show all
Defined in:
lib/pager_tree/integrations/format_converters/yaml_json_converter.rb

Defined Under Namespace

Classes: InvalidFormatError

Class Method Summary collapse

Class Method Details

.convert_to_json(str, pretty: true) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/pager_tree/integrations/format_converters/yaml_json_converter.rb', line 12

def convert_to_json(str, pretty: true)
  format = detect_format(str)

  case format
  when :json
    data = JSON.parse(str)
    pretty ? JSON.pretty_generate(data) : data.to_json
  when :yaml
    data = YAML.safe_load(str)
    pretty ? JSON.pretty_generate(data) : data.to_json
  else
    raise InvalidFormatError, "Input is neither valid JSON nor YAML"
  end
end

.convert_to_yaml(str) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/pager_tree/integrations/format_converters/yaml_json_converter.rb', line 27

def convert_to_yaml(str)
  format = detect_format(str)

  case format
  when :json
    data = JSON.parse(str)
    data.to_yaml
  when :yaml
    data = YAML.safe_load(str)
    data.to_yaml
  else
    raise InvalidFormatError, "Input is neither valid JSON nor YAML"
  end
end

.detect_format(str) ⇒ Object



42
43
44
45
46
# File 'lib/pager_tree/integrations/format_converters/yaml_json_converter.rb', line 42

def detect_format(str)
  return :json if json?(str)
  return :yaml if yaml?(str)
  :unknown
end