eeml 0.0.10 → 0.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/eeml.gemspec +2 -2
- data/lib/eeml/environment_builder.rb +3 -4
- data/lib/eeml/libxml_eeml_output_v005.rb +4 -5
- data/lib/eeml/libxml_eeml_parser_v005.rb +18 -19
- data/lib/eeml/output_registry.rb +2 -2
- data/lib/eeml.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +2 -2
- metadata.gz.sig +0 -0
data/eeml.gemspec
CHANGED
@@ -2,12 +2,12 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{eeml}
|
5
|
-
s.version = "0.0.
|
5
|
+
s.version = "0.0.11"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Neill Bogie, Sam Mulube"]
|
9
9
|
s.cert_chain = ["/home/sam/.gem/gem-public_cert.pem"]
|
10
|
-
s.date = %q{2009-11-
|
10
|
+
s.date = %q{2009-11-29}
|
11
11
|
s.description = %q{Simple little library for programmatically manipulating EEML documents, in particular this library is designed to work with the Pachube web service.}
|
12
12
|
s.email = %q{sam.mulube@gmail.com}
|
13
13
|
s.extra_rdoc_files = ["CHANGELOG", "LICENSE", "README", "lib/blank.rb", "lib/eeml.rb", "lib/eeml/constants.rb", "lib/eeml/csv_parser.rb", "lib/eeml/environment.rb", "lib/eeml/environment_builder.rb", "lib/eeml/exceptions.rb", "lib/eeml/json_environment_parser_v005.rb", "lib/eeml/json_environment_parser_v006.rb", "lib/eeml/json_output.rb", "lib/eeml/libxml_eeml_output_v005.rb", "lib/eeml/libxml_eeml_parser_v005.rb", "lib/eeml/output_registry.rb"]
|
@@ -4,7 +4,6 @@ require 'eeml/json_environment_parser_v006'
|
|
4
4
|
|
5
5
|
module Eeml
|
6
6
|
class EnvironmentBuilder # :nodoc:
|
7
|
-
include Constants
|
8
7
|
|
9
8
|
def self.build_from_xml(xml_str)
|
10
9
|
parser = LibXMLEemlParserV005.new
|
@@ -18,12 +17,12 @@ module Eeml
|
|
18
17
|
|
19
18
|
def self.build_from_json(json_str)
|
20
19
|
json = JSON.parse(json_str)
|
21
|
-
if json["version"] == EEML5_VERSION
|
20
|
+
if json["version"] == Constants::EEML5_VERSION
|
22
21
|
parser = JsonEnvironmentParserV005.new
|
23
|
-
elsif json["version"] == EEML6_VERSION
|
22
|
+
elsif json["version"] == Constants::EEML6_VERSION
|
24
23
|
parser = JsonEnvironmentParserV006.new
|
25
24
|
else
|
26
|
-
raise "Invalid version specification. Permitted versions are #{EEML5_VERSION} and #{EEML6_VERSION}"
|
25
|
+
raise "Invalid version specification. Permitted versions are #{Constants::EEML5_VERSION} and #{Constants::EEML6_VERSION}"
|
27
26
|
end
|
28
27
|
return parser.make_environment_from_hash(json)
|
29
28
|
end
|
@@ -1,16 +1,15 @@
|
|
1
1
|
module Eeml
|
2
2
|
class LibXMLEemlOutputV005 # :nodoc:
|
3
3
|
include LibXML
|
4
|
-
include Constants
|
5
4
|
|
6
5
|
# main method. creates an EEML 5 document for the given environment.
|
7
6
|
def to_eeml(environment)
|
8
7
|
doc = XML::Document.new
|
9
8
|
eeml = doc.root = XML::Node.new('eeml')
|
10
|
-
XML::Namespace.new(eeml, nil, EEML5_HREF)
|
11
|
-
XML::Namespace.new(eeml, 'xsi', XSI_NAMESPACE)
|
12
|
-
eeml['version'] = EEML5_VERSION
|
13
|
-
eeml['xsi:schemaLocation'] = EEML5_SCHEMA_LOCATION
|
9
|
+
XML::Namespace.new(eeml, nil, Constants::EEML5_HREF)
|
10
|
+
XML::Namespace.new(eeml, 'xsi', Constants::XSI_NAMESPACE)
|
11
|
+
eeml['version'] = Constants::EEML5_VERSION
|
12
|
+
eeml['xsi:schemaLocation'] = Constants::EEML5_SCHEMA_LOCATION
|
14
13
|
eeml << xml_node_for_environment(environment)
|
15
14
|
|
16
15
|
return doc.to_s(:encoding => XML::Encoding::UTF_8)
|
@@ -4,7 +4,6 @@ module Eeml
|
|
4
4
|
class LibXMLEemlParserV005 # :nodoc:
|
5
5
|
include LibXML
|
6
6
|
include Exceptions
|
7
|
-
include Constants
|
8
7
|
|
9
8
|
#main method
|
10
9
|
|
@@ -54,13 +53,13 @@ module Eeml
|
|
54
53
|
|
55
54
|
#multiple (zero or more)
|
56
55
|
def extract_environments_from_doc(doc)
|
57
|
-
env_nodes = doc.find('x:environment', "x:#{EEML5_HREF}")
|
56
|
+
env_nodes = doc.find('x:environment', "x:#{Constants::EEML5_HREF}")
|
58
57
|
return env_nodes.map{|env_node| new_env = Environment.new; extract_environment_from_node(env_node, new_env)}
|
59
58
|
end
|
60
59
|
|
61
60
|
#single, mandatory
|
62
61
|
def extract_environment_from_doc(doc, env_to_populate)
|
63
|
-
env_node = find_first_node_or_fail(doc, 'x:environment', 'environment', "x:#{EEML5_HREF}")
|
62
|
+
env_node = find_first_node_or_fail(doc, 'x:environment', 'environment', "x:#{Constants::EEML5_HREF}")
|
64
63
|
return extract_environment_from_node(env_node, env_to_populate)
|
65
64
|
end
|
66
65
|
|
@@ -72,19 +71,19 @@ module Eeml
|
|
72
71
|
|
73
72
|
env.creator = env_node['creator']
|
74
73
|
|
75
|
-
env.title = optional_content(env_node, 'x:title', 'title', "x:#{EEML5_HREF}")
|
76
|
-
env.feed_url = optional_content(env_node, 'x:feed', 'feed', "x:#{EEML5_HREF}")
|
77
|
-
env.description = optional_content(env_node, 'x:description', 'description', "x:#{EEML5_HREF}")
|
78
|
-
env.website = optional_content(env_node, 'x:website', 'website', "x:#{EEML5_HREF}")
|
79
|
-
env.status = optional_content(env_node, 'x:status', 'status', "x:#{EEML5_HREF}")
|
80
|
-
env.email = optional_content(env_node, 'x:email', 'email', "x:#{EEML5_HREF}")
|
81
|
-
env.icon = optional_content(env_node, 'x:icon', 'icon', "x:#{EEML5_HREF}")
|
74
|
+
env.title = optional_content(env_node, 'x:title', 'title', "x:#{Constants::EEML5_HREF}")
|
75
|
+
env.feed_url = optional_content(env_node, 'x:feed', 'feed', "x:#{Constants::EEML5_HREF}")
|
76
|
+
env.description = optional_content(env_node, 'x:description', 'description', "x:#{Constants::EEML5_HREF}")
|
77
|
+
env.website = optional_content(env_node, 'x:website', 'website', "x:#{Constants::EEML5_HREF}")
|
78
|
+
env.status = optional_content(env_node, 'x:status', 'status', "x:#{Constants::EEML5_HREF}")
|
79
|
+
env.email = optional_content(env_node, 'x:email', 'email', "x:#{Constants::EEML5_HREF}")
|
80
|
+
env.icon = optional_content(env_node, 'x:icon', 'icon', "x:#{Constants::EEML5_HREF}")
|
82
81
|
|
83
82
|
#find_first_node_or_fail(env_node, 'x:location', 'location')
|
84
|
-
loc_node = env_node.find_first('x:location', "x:#{EEML5_HREF}")
|
83
|
+
loc_node = env_node.find_first('x:location', "x:#{Constants::EEML5_HREF}")
|
85
84
|
env.location = extractLocation(loc_node) if loc_node
|
86
85
|
|
87
|
-
datastream_nodes = env_node.find('x:data', "x:#{EEML5_HREF}")
|
86
|
+
datastream_nodes = env_node.find('x:data', "x:#{Constants::EEML5_HREF}")
|
88
87
|
# raise NoDataStreams.new, "no datastreams found" if datastream_nodes.empty?
|
89
88
|
env.datastreams = extractDataStreams(datastream_nodes) unless datastream_nodes.empty?
|
90
89
|
|
@@ -102,10 +101,10 @@ module Eeml
|
|
102
101
|
loc.domain = node['domain']
|
103
102
|
loc.disposition = node['disposition']
|
104
103
|
loc.exposure = node['exposure']
|
105
|
-
loc.name = optional_content(node, 'x:name', 'name', "x:#{EEML5_HREF}")
|
106
|
-
loc.latitude = optional_content(node, 'x:lat', 'lat', "x:#{EEML5_HREF}")
|
107
|
-
loc.longitude = optional_content(node, 'x:lon', 'lon', "x:#{EEML5_HREF}")
|
108
|
-
loc.elevation = optional_content(node, 'x:ele', 'ele', "x:#{EEML5_HREF}")
|
104
|
+
loc.name = optional_content(node, 'x:name', 'name', "x:#{Constants::EEML5_HREF}")
|
105
|
+
loc.latitude = optional_content(node, 'x:lat', 'lat', "x:#{Constants::EEML5_HREF}")
|
106
|
+
loc.longitude = optional_content(node, 'x:lon', 'lon', "x:#{Constants::EEML5_HREF}")
|
107
|
+
loc.elevation = optional_content(node, 'x:ele', 'ele', "x:#{Constants::EEML5_HREF}")
|
109
108
|
return loc
|
110
109
|
end
|
111
110
|
|
@@ -139,11 +138,11 @@ module Eeml
|
|
139
138
|
data = DataStream.new
|
140
139
|
raise MissingAttribute.new(node.name, 'id') if node['id'].nil?
|
141
140
|
data.identifier = node['id']
|
142
|
-
node.find('x:tag', "x:#{EEML5_HREF}").each do |tag_node|
|
141
|
+
node.find('x:tag', "x:#{Constants::EEML5_HREF}").each do |tag_node|
|
143
142
|
data.tags << tag_node.content.strip
|
144
143
|
end
|
145
144
|
|
146
|
-
value_nodes = node.find('x:value', "x:#{EEML5_HREF}")
|
145
|
+
value_nodes = node.find('x:value', "x:#{Constants::EEML5_HREF}")
|
147
146
|
raise exception_for_node(node, DataMissingValue, "Data node is missing value node.") if value_nodes.empty?
|
148
147
|
raise exception_for_node(node, DataHasMultipleValues, "Data node has multiple 'value' nodes.") if value_nodes.size > 1
|
149
148
|
|
@@ -156,7 +155,7 @@ module Eeml
|
|
156
155
|
|
157
156
|
data.add_value(value)
|
158
157
|
|
159
|
-
unit_nodes = node.find('x:unit', "x:#{EEML5_HREF}")
|
158
|
+
unit_nodes = node.find('x:unit', "x:#{Constants::EEML5_HREF}")
|
160
159
|
raise exception_for_node(node, DataHasMultipleUnits, "Data node has multiple 'unit' nodes.") if unit_nodes.size > 1
|
161
160
|
|
162
161
|
unit_node = unit_nodes.first
|
data/lib/eeml/output_registry.rb
CHANGED
@@ -4,11 +4,11 @@ require 'eeml/json_output'
|
|
4
4
|
module Eeml
|
5
5
|
class OutputRegistry # :nodoc:
|
6
6
|
#look at the given xml, build and return a new v005 or 006 parser, accordingly
|
7
|
-
def self.get_xml_output_for(version = EEML5_VERSION)
|
7
|
+
def self.get_xml_output_for(version = Constants::EEML5_VERSION)
|
8
8
|
LibXMLEemlOutputV005.new
|
9
9
|
end
|
10
10
|
|
11
|
-
def self.get_json_output_for(version = EEML5_VERSION)
|
11
|
+
def self.get_json_output_for(version = Constants::EEML5_VERSION)
|
12
12
|
JsonOutput.new
|
13
13
|
end
|
14
14
|
|
data/lib/eeml.rb
CHANGED
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eeml
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Neill Bogie, Sam Mulube
|
@@ -30,7 +30,7 @@ cert_chain:
|
|
30
30
|
yyRwZdVyDdsafg==
|
31
31
|
-----END CERTIFICATE-----
|
32
32
|
|
33
|
-
date: 2009-11-
|
33
|
+
date: 2009-11-29 00:00:00 +00:00
|
34
34
|
default_executable:
|
35
35
|
dependencies:
|
36
36
|
- !ruby/object:Gem::Dependency
|
metadata.gz.sig
CHANGED
Binary file
|