rcap 0.4 → 1.0.0.rc.1
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/.gitignore +7 -0
- data/CHANGELOG.rdoc +6 -0
- data/Gemfile +4 -0
- data/README.rdoc +104 -85
- data/Rakefile +35 -0
- data/lib/rcap.rb +21 -14
- data/lib/rcap/alert.rb +26 -325
- data/lib/rcap/cap_1_1/alert.rb +363 -0
- data/lib/rcap/cap_1_1/area.rb +180 -0
- data/lib/rcap/cap_1_1/circle.rb +81 -0
- data/lib/rcap/cap_1_1/event_code.rb +22 -0
- data/lib/rcap/cap_1_1/geocode.rb +22 -0
- data/lib/rcap/cap_1_1/info.rb +470 -0
- data/lib/rcap/cap_1_1/parameter.rb +68 -0
- data/lib/rcap/cap_1_1/point.rb +55 -0
- data/lib/rcap/cap_1_1/polygon.rb +89 -0
- data/lib/rcap/cap_1_1/resource.rb +145 -0
- data/lib/rcap/cap_1_2/alert.rb +363 -0
- data/lib/rcap/cap_1_2/area.rb +180 -0
- data/lib/rcap/cap_1_2/circle.rb +81 -0
- data/lib/rcap/cap_1_2/event_code.rb +22 -0
- data/lib/rcap/cap_1_2/geocode.rb +22 -0
- data/lib/rcap/cap_1_2/info.rb +472 -0
- data/lib/rcap/cap_1_2/parameter.rb +68 -0
- data/lib/rcap/cap_1_2/point.rb +55 -0
- data/lib/rcap/cap_1_2/polygon.rb +90 -0
- data/lib/rcap/cap_1_2/resource.rb +147 -0
- data/lib/rcap/utilities.rb +14 -9
- data/lib/rcap/validations.rb +39 -7
- data/lib/rcap/version.rb +3 -0
- data/rcap.gemspec +30 -0
- data/spec/alert_spec.rb +109 -172
- data/spec/cap_1_1/alert_spec.rb +222 -0
- data/spec/cap_1_1/area_spec.rb +247 -0
- data/spec/cap_1_1/circle_spec.rb +88 -0
- data/spec/{geocode_spec.rb → cap_1_1/geocode_spec.rb} +8 -8
- data/spec/{info_spec.rb → cap_1_1/info_spec.rb} +143 -75
- data/spec/{point_spec.rb → cap_1_1/point_spec.rb} +8 -8
- data/spec/cap_1_1/polygon_spec.rb +97 -0
- data/spec/{resource_spec.rb → cap_1_1/resource_spec.rb} +24 -24
- data/spec/cap_1_2/alert_spec.rb +233 -0
- data/spec/cap_1_2/area_spec.rb +248 -0
- data/spec/cap_1_2/circle_spec.rb +95 -0
- data/spec/cap_1_2/geocode_spec.rb +38 -0
- data/spec/cap_1_2/info_spec.rb +338 -0
- data/spec/cap_1_2/point_spec.rb +46 -0
- data/spec/cap_1_2/polygon_spec.rb +102 -0
- data/spec/cap_1_2/resource_spec.rb +161 -0
- data/spec/spec.opts +2 -0
- data/spec/validations_spec.rb +80 -7
- metadata +122 -37
- data/lib/rcap/area.rb +0 -156
- data/lib/rcap/circle.rb +0 -78
- data/lib/rcap/event_code.rb +0 -20
- data/lib/rcap/geocode.rb +0 -20
- data/lib/rcap/info.rb +0 -437
- data/lib/rcap/parameter.rb +0 -66
- data/lib/rcap/point.rb +0 -53
- data/lib/rcap/polygon.rb +0 -77
- data/lib/rcap/resource.rb +0 -143
- data/spec/area_spec.rb +0 -179
- data/spec/circle_spec.rb +0 -88
- data/spec/polygon_spec.rb +0 -68
data/spec/circle_spec.rb
DELETED
@@ -1,88 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe( RCAP::Circle ) do
|
4
|
-
describe( 'should not be valid if' ) do
|
5
|
-
before( :each ) do
|
6
|
-
@circle = RCAP::Circle.new( :lattitude => 0, :longitude => 0 , :radius => 1 )
|
7
|
-
@circle.should( be_valid )
|
8
|
-
end
|
9
|
-
|
10
|
-
it( 'does not have a lattitude defined' ) do
|
11
|
-
@circle.lattitude = nil
|
12
|
-
@circle.should_not( be_valid )
|
13
|
-
end
|
14
|
-
|
15
|
-
it( 'does not have a longitude defined' ) do
|
16
|
-
@circle.longitude = nil
|
17
|
-
@circle.should_not( be_valid )
|
18
|
-
end
|
19
|
-
|
20
|
-
it( 'does not have a radius defined' ) do
|
21
|
-
@circle.radius = nil
|
22
|
-
@circle.should_not( be_valid )
|
23
|
-
end
|
24
|
-
|
25
|
-
it( 'does not have a numeric radius' ) do
|
26
|
-
@circle.radius = "not a number"
|
27
|
-
@circle.should_not( be_valid )
|
28
|
-
end
|
29
|
-
|
30
|
-
it( 'does not have a positive radius' ) do
|
31
|
-
@circle.radius = -1
|
32
|
-
@circle.should_not( be_valid )
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
context( 'on initialisation' ) do
|
37
|
-
context( 'from XML' ) do
|
38
|
-
before( :each ) do
|
39
|
-
@original_circle = RCAP::Circle.new( :radius => 10.5,
|
40
|
-
:lattitude => 30, :longitude => 60 )
|
41
|
-
@alert = RCAP::Alert.new( :infos => RCAP::Info.new( :areas => RCAP::Area.new( :circles => @original_circle )))
|
42
|
-
@xml_string = @alert.to_xml
|
43
|
-
@xml_document = REXML::Document.new( @xml_string )
|
44
|
-
@info_element = RCAP.xpath_first( @xml_document.root, RCAP::Info::XPATH )
|
45
|
-
@area_element = RCAP.xpath_first( @info_element, RCAP::Area::XPATH )
|
46
|
-
@circle_element = RCAP.xpath_first( @area_element, RCAP::Circle::XPATH )
|
47
|
-
@circle = RCAP::Circle.from_xml_element( @circle_element )
|
48
|
-
end
|
49
|
-
|
50
|
-
it( 'should parse the radius correctly' ) do
|
51
|
-
@circle.radius.should == @original_circle.radius
|
52
|
-
end
|
53
|
-
|
54
|
-
it( 'should parse the lattitude and longitude correctly' ) do
|
55
|
-
@circle.lattitude.should == @original_circle.lattitude
|
56
|
-
@circle.longitude.should == @original_circle.longitude
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
context( 'from a hash' ) do
|
61
|
-
before( :each ) do
|
62
|
-
@original_circle = RCAP::Circle.new( :radius => 10.5, :lattitude => 30, :longitude => 60 )
|
63
|
-
@circle = RCAP::Circle.from_h( @original_circle.to_h )
|
64
|
-
end
|
65
|
-
|
66
|
-
it( 'should set the radius correctly' ) do
|
67
|
-
@circle.radius.should == @original_circle.radius
|
68
|
-
end
|
69
|
-
|
70
|
-
it( 'should parse the lattitude and longitude correctly' ) do
|
71
|
-
@circle.lattitude.should == @original_circle.lattitude
|
72
|
-
@circle.longitude.should == @original_circle.longitude
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
context( 'when exported' ) do
|
78
|
-
before( :each ) do
|
79
|
-
@circle = RCAP::Circle.new( :radius => 10.5, :lattitude => 30, :longitude => 60 )
|
80
|
-
end
|
81
|
-
|
82
|
-
context( 'to hash' ) do
|
83
|
-
it( 'should be correct' ) do
|
84
|
-
@circle.to_h.should == { 'radius' => 10.5, 'lattitude' => 30, 'longitude' => 60 }
|
85
|
-
end
|
86
|
-
end
|
87
|
-
end
|
88
|
-
end
|
data/spec/polygon_spec.rb
DELETED
@@ -1,68 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe( RCAP::Polygon ) do
|
4
|
-
describe( 'is not valid if it' ) do
|
5
|
-
before( :each ) do
|
6
|
-
@polygon = RCAP::Polygon.new
|
7
|
-
3.times do
|
8
|
-
@polygon.points << RCAP::Point.new( :lattitude => 0, :longitude => 0 )
|
9
|
-
end
|
10
|
-
@polygon.should( be_valid )
|
11
|
-
end
|
12
|
-
|
13
|
-
it( 'does not have any points' ) do
|
14
|
-
@polygon.points.clear
|
15
|
-
@polygon.should_not( be_valid )
|
16
|
-
end
|
17
|
-
|
18
|
-
it( 'does not have a valid collection of points' ) do
|
19
|
-
@polygon.points.first.lattitude = nil
|
20
|
-
@polygon.should_not( be_valid )
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
context( 'on initialization' ) do
|
25
|
-
context( 'from XML' ) do
|
26
|
-
before( :each ) do
|
27
|
-
@original_polygon = RCAP::Polygon.new( :points => Array.new(3){|i| RCAP::Point.new( :lattitude => i, :longitude => i )})
|
28
|
-
@alert = RCAP::Alert.new( :infos => RCAP::Info.new( :areas => RCAP::Area.new( :polygons => @original_polygon )))
|
29
|
-
@xml_string = @alert.to_xml
|
30
|
-
@xml_document = REXML::Document.new( @xml_string )
|
31
|
-
@info_element = RCAP.xpath_first( @xml_document.root, RCAP::Info::XPATH )
|
32
|
-
@area_element = RCAP.xpath_first( @info_element, RCAP::Area::XPATH )
|
33
|
-
@polygon_element = RCAP.xpath_first( @area_element, RCAP::Polygon::XPATH )
|
34
|
-
@polygon = RCAP::Polygon.from_xml_element( @polygon_element )
|
35
|
-
end
|
36
|
-
|
37
|
-
it( 'should parse all the points' ) do
|
38
|
-
@polygon.points.zip( @original_polygon.points ).each do |point, original_point|
|
39
|
-
point.lattitude.should == original_point.lattitude
|
40
|
-
point.longitude.should == original_point.longitude
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
context( 'from a hash' ) do
|
46
|
-
before( :each ) do
|
47
|
-
@polygon = RCAP::Polygon.new( :points => Array.new(3){|i| RCAP::Point.new( :lattitude => i, :longitude => i )})
|
48
|
-
end
|
49
|
-
|
50
|
-
it( 'should load all the points' ) do
|
51
|
-
@new_polygon = RCAP::Polygon.from_h( @polygon.to_h )
|
52
|
-
@new_polygon.points.should == @polygon.points
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
context( 'when exported' ) do
|
58
|
-
before( :each ) do
|
59
|
-
@polygon = RCAP::Polygon.new( :points => Array.new(3){|i| RCAP::Point.new( :lattitude => i, :longitude => i )})
|
60
|
-
end
|
61
|
-
|
62
|
-
context( 'to a hash' ) do
|
63
|
-
it( 'should export correctly' ) do
|
64
|
-
@polygon.to_h.should == { RCAP::Polygon::POINTS_KEY => @polygon.points.map{ |point| point.to_h }}
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|