eeml 0.0.10 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
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