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 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.10"
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-21}
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
@@ -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
@@ -15,7 +15,7 @@ require 'time'
15
15
  module Eeml
16
16
 
17
17
  # library version number
18
- VERSION = '0.0.10'
18
+ VERSION = '0.0.11'
19
19
 
20
20
  # TODO: put in some configuration file, not here
21
21
  LOCAL_EEML_SCHEMA_LOCATION = 'schemas/eeml/005.xsd'
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.10
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-21 00:00:00 +00:00
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