Class: Eeml::EnvironmentBuilder

Inherits:
Object
  • Object
show all
Includes:
LibXML
Defined in:
lib/eeml/environment_builder.rb

Overview

:nodoc:

Class Method Summary collapse

Class Method Details

.build_from_csv(csv_str, version = :v1) ⇒ Object



51
52
53
54
55
56
57
58
# File 'lib/eeml/environment_builder.rb', line 51

def self.build_from_csv(csv_str, version = :v1)
  if version == :v2
    parser = CsvParserV2
  else
    parser = CsvParserV1
  end
  parser.make_environment_from_csv(csv_str)
end

.build_from_json(json_str) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/eeml/environment_builder.rb', line 33

def self.build_from_json(json_str)
  json = JSON.parse(json_str)
  if Constants::EEML['0.5.0'][:versions].include? json["version"].to_s
    parser = JsonEnvironmentParserV005.new
  elsif Constants::EEML['0.5.1'][:versions].include? json["version"].to_s
    parser = JsonEnvironmentParserV005.new
  elsif Constants::JSON_API['1.0.0'][:versions].include? json["version"].to_s
    parser = JsonEnvironmentParserV100.new
  elsif Constants::JSON_API['0.6-alpha'][:versions].include? json["version"].to_s
    parser = JsonEnvironmentParserV006.new
  else
    raise Eeml::Exceptions::BadVersion# raise something so we jump to the rescue block below
  end
  return parser.make_environment_from_hash(json)
rescue Eeml::Exceptions::BadVersion, TypeError
  raise JSON::ParserError, "Invalid version specification. Permitted versions are #{Constants::EEML['0.5.0'][:versions].first}, #{Constants::JSON_API["0.6-alpha"][:versions].first} and #{Constants::JSON_API["1.0.0"][:versions].first}"
end

.build_from_xml(xml_str) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/eeml/environment_builder.rb', line 14

def self.build_from_xml(xml_str)
  begin
    xml = XML::Parser.string(xml_str).parse
    if xml.root.namespaces.default.to_s == Constants::EEML['0.5.1'][:href]
      parser = LibXMLEemlParserV051.new 
    else
      parser = LibXMLEemlParserV005.new
    end
  rescue => e
    parser = LibXMLEemlParserV005.new
  end
  return parser.make_environment_from_xml(xml_str)
end

.build_list_from_xml(xml_str) ⇒ Object



28
29
30
31
# File 'lib/eeml/environment_builder.rb', line 28

def self.build_list_from_xml(xml_str)
  parser = LibXMLEemlParserV005.new
  return parser.make_environments_from_xml(xml_str)
end