eeml 0.0.41 → 0.0.42

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.
@@ -16,6 +16,6 @@ require 'time'
16
16
  module Eeml
17
17
 
18
18
  # library version number
19
- VERSION = '0.0.41'
19
+ VERSION = '0.0.42'
20
20
 
21
21
  end #module
@@ -6,7 +6,7 @@ module Eeml
6
6
  def self.make_environment_from_csv(csv_content)
7
7
  csv = LightCsv.parse(strip_content(csv_content))
8
8
  environment = Environment.new(:csv_version => 'v2')
9
-
9
+ environment.private = nil
10
10
  csv = strip_content(csv)
11
11
 
12
12
  datastreams = csv.collect do |datastream|
@@ -105,7 +105,7 @@ module Eeml
105
105
  attr_accessor :csv_version
106
106
  attr_accessor :datastreams
107
107
  attr_accessor :tags, :has_tag_element
108
- attr_writer :private
108
+ attr_accessor :private
109
109
 
110
110
  # Create a new Environment object by passing parameters in a hash (just
111
111
  # like creating an ActiveRecord object)
@@ -186,14 +186,6 @@ module Eeml
186
186
  end
187
187
  end
188
188
 
189
- def private
190
- if @private
191
- return true
192
- else
193
- return false
194
- end
195
- end
196
-
197
189
  private
198
190
 
199
191
  def self.detect_csv_version(version, csv)
@@ -12,7 +12,7 @@ module Eeml
12
12
  :icon => env_hash["icon"],
13
13
  :status => env_hash["status"],
14
14
  :identifier => env_hash["id"],
15
- :private => env_hash["private"].to_s == "true",
15
+ :private => (env_hash["private"].nil? ? nil : env_hash["private"].to_s == "true"),
16
16
  :publisher => env_hash["publisher"],
17
17
  :creator => env_hash["creator"])
18
18
 
@@ -79,7 +79,8 @@ module Eeml
79
79
  env.status = optional_content(env_node, 'x:status', 'status', "x:#{@@eeml_version[:href]}")
80
80
  env.email = optional_content(env_node, 'x:email', 'email', "x:#{@@eeml_version[:href]}")
81
81
  env.icon = optional_content(env_node, 'x:icon', 'icon', "x:#{@@eeml_version[:href]}")
82
- env.private = (optional_content(env_node, 'x:private', 'private', "x:#{@@eeml_version[:href]}") == "true")
82
+ private_elem = optional_content(env_node, 'x:private', 'private', "x:#{@@eeml_version[:href]}")
83
+ env.private = (private_elem.nil? ? nil : private_elem == "true")
83
84
 
84
85
  #find_first_node_or_fail(env_node, 'x:location', 'location')
85
86
  loc_node = env_node.find_first('x:location', "x:#{@@eeml_version[:href]}")
@@ -0,0 +1,30 @@
1
+ {"datastreams":[
2
+ {"tags":["tagD0"],
3
+ "value":{"current_value":"0","min_value":"-9999.0","max_value":"1022.0"},
4
+ "unit":{"type":"basicSI","label":"Celsius","symbol":"C"},
5
+ "id":"0"},
6
+ {"value":{"current_value":"33","min_value":"0.0","max_value":"1023.0"},
7
+ "id":"1"},
8
+ {"tags":["tagD2a","tagD2b","tagD2c"],
9
+ "value":{"current_value":"42.1","min_value":"23.4","max_value":"1021.0"},
10
+ "id":"2"}
11
+ ],
12
+ "description":"description here",
13
+ "updated":"2009-02-11T10:56:56Z",
14
+ "status":"frozen",
15
+ "website":"http:\/\/example.com\/studio\/",
16
+ "email":"someone@example.com",
17
+ "feed":"http:\/\/example.com\/api\/1247.xml",
18
+ "location":{
19
+ "lat":"50.1",
20
+ "lon":"48.7",
21
+ "ele":"1.34",
22
+ "name":"Up on the roof (somewhere)",
23
+ "domain":"physical",
24
+ "exposure":"outdoor",
25
+ "disposition":"mobile"
26
+ },
27
+ "icon":"http:\/\/example.com\/some\/icon.gif",
28
+ "id":"1247",
29
+ "title":"title here",
30
+ "version":"1.0.0"}
@@ -0,0 +1,32 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <eeml xmlns="http://www.eeml.org/xsd/0.5.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="0.5.1" xsi:schemaLocation="http://www.eeml.org/xsd/0.5.1 http://www.eeml.org/xsd/0.5.1/0.5.1.xsd">
3
+ <environment updated="2009-02-11T10:56:56Z" id="1247" creator="http://example.com/creator/">
4
+ <title>title here</title>
5
+ <feed>http://example.com/api/1247.xml</feed>
6
+ <status>frozen</status>
7
+ <description>description here</description>
8
+ <icon>http://example.com/some/icon.gif</icon>
9
+ <website>http://example.com/studio/</website>
10
+ <email>someone@example.com</email>
11
+ <location domain="physical" exposure="outdoor" disposition="mobile">
12
+ <name>Up on the roof (somewhere)</name>
13
+ <lat>50.1</lat>
14
+ <lon>48.7</lon>
15
+ <ele>1.34</ele>
16
+ </location>
17
+ <data id="0">
18
+ <tag>tagD0</tag>
19
+ <value minValue="-9999.0" maxValue="1022.0">0</value>
20
+ <unit type="basicSI" symbol="C">Celsius</unit>
21
+ </data>
22
+ <data id="1">
23
+ <value minValue="0.0" maxValue="1023.0">33</value>
24
+ </data>
25
+ <data id="2">
26
+ <tag>tagD2a</tag>
27
+ <tag>tagD2b</tag>
28
+ <tag>tagD2c</tag>
29
+ <value minValue="23.4" maxValue="1021.0">42.1</value>
30
+ </data>
31
+ </environment>
32
+ </eeml>
@@ -184,6 +184,21 @@ class TestEnvironment < Test::Unit::TestCase
184
184
  assert_equal false, env.private
185
185
  end
186
186
 
187
+ test "captures the `private` attribute as nil if the element is missing for xml" do
188
+ env = create_env_from_xml_file("doc_1_no_private_element.xml")
189
+ assert_equal nil, env.private
190
+ end
191
+
192
+ test "captures the `private` attribute as nil if the element is missing for json" do
193
+ env = create_env_from_json_file("doc_1_no_private_element.json")
194
+ assert_equal nil, env.private
195
+ end
196
+
197
+ test "captures the `private` attribute as nil if the element is missing for csv" do
198
+ env = Environment.new_from_csv("one,1\r\ntwo,2", :v2)
199
+ assert_equal nil, env.private
200
+ end
201
+
187
202
  test "ok parsing oddly tagged eeml file" do
188
203
  env = create_env_from_xml_file('difficult_tag.xml')
189
204
  assert_equal 2, env.datastreams.size
@@ -487,7 +502,7 @@ class TestEnvironment < Test::Unit::TestCase
487
502
  end
488
503
 
489
504
  test "parses environment level tags from v1.0.0 json" do
490
- env = create_env_from_json_file('test/data/environment_tags.json')
505
+ env = create_env_from_json_file('environment_tags.json')
491
506
  assert_equal 3, env.datastreams.size
492
507
 
493
508
  assert_equal 2, env.tags.size
@@ -527,7 +542,7 @@ class TestEnvironment < Test::Unit::TestCase
527
542
 
528
543
 
529
544
  test "sets has_tag_element to false if there are no tag elements" do
530
- env = create_env_from_json_file('test/data/environment_no_tags.json')
545
+ env = create_env_from_json_file('environment_no_tags.json')
531
546
  assert_equal 3, env.datastreams.size
532
547
 
533
548
  assert_equal false, env.has_tag_element
@@ -537,7 +552,7 @@ class TestEnvironment < Test::Unit::TestCase
537
552
  end
538
553
 
539
554
  test "sets has_tag_element to true if there are empty tag elements" do
540
- env = create_env_from_json_file('test/data/environment_empty_tags.json')
555
+ env = create_env_from_json_file('environment_empty_tags.json')
541
556
  assert_equal 3, env.datastreams.size
542
557
 
543
558
  assert_equal true, env.has_tag_element
@@ -622,30 +637,30 @@ class TestEnvironment < Test::Unit::TestCase
622
637
  end
623
638
 
624
639
  test "captures `private` attribute when parsing old json" do
625
- env = create_env_from_json_file("test/data/doc_1_private.json")
640
+ env = create_env_from_json_file("doc_1_private.json")
626
641
  assert_not_nil env
627
642
  assert_equal true, env.private
628
643
  end
629
644
 
630
645
  test "captures the `private` attribute as false if present and false when parsing old json" do
631
- env = create_env_from_json_file("test/data/doc_1_non_private.json")
646
+ env = create_env_from_json_file("doc_1_non_private.json")
632
647
  assert_equal false, env.private
633
648
  end
634
649
 
635
650
  test "captures `private` attribute when parsing v6 json" do
636
- env = create_env_from_json_file("test/data/doc_1_v6_private.json")
651
+ env = create_env_from_json_file("doc_1_v6_private.json")
637
652
  assert_not_nil env
638
653
  assert_equal true, env.private
639
654
  end
640
655
 
641
656
  test "captures `private` attribute when parsing 1.0.0 json" do
642
- env = create_env_from_json_file("test/data/doc_1_v1-0-0.json")
657
+ env = create_env_from_json_file("doc_1_v1-0-0.json")
643
658
  assert_not_nil env
644
659
  assert_equal false, env.private
645
660
  end
646
661
 
647
662
  test "captures the `private` attribute as false if present and false when parsing v6 json" do
648
- env = create_env_from_json_file("test/data/doc_1_v6_non_private.json")
663
+ env = create_env_from_json_file("doc_1_v6_non_private.json")
649
664
  assert_not_nil env
650
665
  assert_equal false, env.private
651
666
  end
@@ -809,18 +824,19 @@ CSV
809
824
  end
810
825
 
811
826
  def create_env_from_json_file_one
812
- return create_env_from_json_file('test/data/doc_1.json')
827
+ return create_env_from_json_file('doc_1.json')
813
828
  end
814
829
 
815
830
  def create_env_from_json_v6_file_one
816
- return create_env_from_json_file('test/data/doc_1_v6.json')
831
+ return create_env_from_json_file('doc_1_v6.json')
817
832
  end
818
833
 
819
834
  def create_env_from_json_v100_file_one
820
- return create_env_from_json_file('test/data/doc_1_v1-0-0.json')
835
+ return create_env_from_json_file('doc_1_v1-0-0.json')
821
836
  end
822
837
 
823
- def create_env_from_json_file(filename)
838
+ def create_env_from_json_file(test_file)
839
+ filename = 'test/data/' + test_file
824
840
  json = File.read(filename)
825
841
  return Environment.new_from_json(json)
826
842
  end
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eeml
3
3
  version: !ruby/object:Gem::Version
4
- hash: 77
5
4
  prerelease: false
6
5
  segments:
7
6
  - 0
8
7
  - 0
9
- - 41
10
- version: 0.0.41
8
+ - 42
9
+ version: 0.0.42
11
10
  platform: ruby
12
11
  authors:
13
12
  - Neill Bogie
@@ -18,18 +17,16 @@ autorequire:
18
17
  bindir: bin
19
18
  cert_chain: []
20
19
 
21
- date: 2011-05-25 00:00:00 +00:00
20
+ date: 2011-06-01 00:00:00 +00:00
22
21
  default_executable:
23
22
  dependencies:
24
23
  - !ruby/object:Gem::Dependency
25
24
  name: libxml-ruby
26
25
  prerelease: false
27
26
  requirement: &id001 !ruby/object:Gem::Requirement
28
- none: false
29
27
  requirements:
30
28
  - - ">="
31
29
  - !ruby/object:Gem::Version
32
- hash: 21
33
30
  segments:
34
31
  - 1
35
32
  - 1
@@ -41,11 +38,9 @@ dependencies:
41
38
  name: yajl-ruby
42
39
  prerelease: false
43
40
  requirement: &id002 !ruby/object:Gem::Requirement
44
- none: false
45
41
  requirements:
46
42
  - - ">="
47
43
  - !ruby/object:Gem::Version
48
- hash: 61
49
44
  segments:
50
45
  - 0
51
46
  - 8
@@ -57,11 +52,9 @@ dependencies:
57
52
  name: lightcsv
58
53
  prerelease: false
59
54
  requirement: &id003 !ruby/object:Gem::Requirement
60
- none: false
61
55
  requirements:
62
56
  - - ">="
63
57
  - !ruby/object:Gem::Version
64
- hash: 19
65
58
  segments:
66
59
  - 0
67
60
  - 2
@@ -79,7 +72,6 @@ extra_rdoc_files:
79
72
  - LICENSE
80
73
  - README
81
74
  files:
82
- - .gitignore
83
75
  - CHANGELOG
84
76
  - LICENSE
85
77
  - Manifest
@@ -108,6 +100,8 @@ files:
108
100
  - test/data/difficult_tag.xml
109
101
  - test/data/doc_1.json
110
102
  - test/data/doc_1.xml
103
+ - test/data/doc_1_no_private_element.json
104
+ - test/data/doc_1_no_private_element.xml
111
105
  - test/data/doc_1_non_private.json
112
106
  - test/data/doc_1_non_private.xml
113
107
  - test/data/doc_1_private.json
@@ -143,40 +137,36 @@ homepage:
143
137
  licenses: []
144
138
 
145
139
  post_install_message:
146
- rdoc_options:
147
- - --charset=UTF-8
140
+ rdoc_options: []
141
+
148
142
  require_paths:
149
143
  - lib
150
144
  required_ruby_version: !ruby/object:Gem::Requirement
151
- none: false
152
145
  requirements:
153
146
  - - ">="
154
147
  - !ruby/object:Gem::Version
155
- hash: 3
156
148
  segments:
157
149
  - 0
158
150
  version: "0"
159
151
  required_rubygems_version: !ruby/object:Gem::Requirement
160
- none: false
161
152
  requirements:
162
153
  - - ">="
163
154
  - !ruby/object:Gem::Version
164
- hash: 3
165
155
  segments:
166
156
  - 0
167
157
  version: "0"
168
158
  requirements: []
169
159
 
170
160
  rubyforge_project:
171
- rubygems_version: 1.3.7
161
+ rubygems_version: 1.3.6
172
162
  signing_key:
173
163
  specification_version: 3
174
164
  summary: Simple little library for programmatically manipulating EEML documents.
175
165
  test_files:
176
166
  - test/libxml_test_helper.rb
177
- - test/test_libxml_test_helper.rb
178
- - test/test_libxml_eeml_parser_v005.rb
179
- - test/test_csv_parser_v2.rb
180
- - test/test_helper.rb
181
167
  - test/test_csv_parser_v1.rb
168
+ - test/test_csv_parser_v2.rb
182
169
  - test/test_environment.rb
170
+ - test/test_helper.rb
171
+ - test/test_libxml_eeml_parser_v005.rb
172
+ - test/test_libxml_test_helper.rb
data/.gitignore DELETED
@@ -1,9 +0,0 @@
1
- .rvmrc
2
- pkg
3
- coverage/
4
- doc
5
- eeml.gemspec
6
- client_config.yml
7
- coverage/
8
- .*.swp
9
- gem_deps_manual/