voruby 1.1.1 → 2.0.0
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/Rakefile.rb +107 -224
- data/lib/misc.rb +1 -0
- data/lib/misc/misc.rb +60 -0
- data/lib/misc/propertyfile.rb +31 -0
- data/lib/symphony.rb +1 -0
- data/lib/symphony/symphony.rb +247 -0
- data/lib/voruby.rb +186 -0
- data/lib/voruby/active_votable/active_votable.rb +468 -347
- data/lib/voruby/adql/1.0/adql.rb +2418 -0
- data/lib/voruby/adql/support.rb +2 -0
- data/lib/voruby/misc.rb +351 -0
- data/lib/voruby/misc/connection_monitor.rb +97 -0
- data/lib/voruby/misc/libxml_ext.rb +121 -0
- data/lib/voruby/misc/rexml_ext.rb +223 -0
- data/lib/voruby/resolver/resolver.rb +12 -0
- data/lib/voruby/resolver/sesame.rb +299 -0
- data/lib/voruby/sky_query/sky_query.rb +192 -0
- data/lib/voruby/stc/1.10/coords.rb +2272 -0
- data/lib/voruby/stc/1.10/region.rb +892 -0
- data/lib/voruby/stc/1.10/stc.rb +3271 -0
- data/lib/voruby/stc/1.30/stc.rb +8666 -0
- data/lib/voruby/stc/support.rb +2 -0
- data/lib/voruby/ucd/ucd.rb +173 -0
- data/lib/voruby/voevent/1.1/voevent.rb +1124 -0
- data/lib/voruby/voevent/support.rb +5 -0
- data/lib/voruby/votable/1.0/votable.rb +1807 -0
- data/lib/voruby/votable/1.1/votable.rb +2100 -0
- data/lib/voruby/votable/votable.rb +305 -0
- data/lib/voruby/wesix/wesix.rb +491 -0
- data/lib/voruby/xlink/1.2/xlink.rb +21 -0
- data/test/voruby/active_votable/complex.vot +60 -0
- data/test/voruby/active_votable/error.vot +6 -0
- data/test/voruby/active_votable/large.vot +130040 -0
- data/test/voruby/active_votable/simple1.vot +38 -0
- data/test/voruby/active_votable/simple2.vot +38 -0
- data/test/voruby/active_votable/test.rb +193 -0
- data/test/voruby/adql/1.0/adql-alias.sql +1 -0
- data/test/voruby/adql/1.0/adql-alias.xml +26 -0
- data/test/voruby/adql/1.0/adql-avg.sql +1 -0
- data/test/voruby/adql/1.0/adql-avg.xml +31 -0
- data/test/voruby/adql/1.0/adql-circle.sql +1 -0
- data/test/voruby/adql/1.0/adql-circle.xml +46 -0
- data/test/voruby/adql/1.0/adql-expr.sql +1 -0
- data/test/voruby/adql/1.0/adql-expr.xml +34 -0
- data/test/voruby/adql/1.0/adql-function.sql +1 -0
- data/test/voruby/adql/1.0/adql-function.xml +41 -0
- data/test/voruby/adql/1.0/adql-group.sql +1 -0
- data/test/voruby/adql/1.0/adql-group.xml +51 -0
- data/test/voruby/adql/1.0/adql-having.sql +1 -0
- data/test/voruby/adql/1.0/adql-having.xml +25 -0
- data/test/voruby/adql/1.0/adql-like.sql +1 -0
- data/test/voruby/adql/1.0/adql-like.xml +17 -0
- data/test/voruby/adql/1.0/adql-order.sql +1 -0
- data/test/voruby/adql/1.0/adql-order.xml +37 -0
- data/test/voruby/adql/1.0/adql-simple.sql +1 -0
- data/test/voruby/adql/1.0/adql-simple.xml +12 -0
- data/test/voruby/adql/1.0/adql-top.sql +1 -0
- data/test/voruby/adql/1.0/adql-top.xml +33 -0
- data/test/voruby/adql/1.0/test.rb +2220 -0
- data/test/voruby/misc/test.rb +32 -0
- data/test/voruby/resolver/sesame/test.rb +56 -0
- data/test/voruby/sky_query/test.rb +107 -0
- data/test/voruby/stc/1.10/coords_test.rb +3704 -0
- data/test/voruby/stc/1.10/region_test.rb +993 -0
- data/test/voruby/stc/1.10/stc-catalog-entry-location.xml +112 -0
- data/test/voruby/stc/1.10/stc-obs-data-location.xml +126 -0
- data/test/voruby/stc/1.10/stc-region-circle.xml +5 -0
- data/test/voruby/stc/1.10/stc-region-convex.xml +11 -0
- data/test/voruby/stc/1.10/stc-region-convexhull.xml +5 -0
- data/test/voruby/stc/1.10/stc-region-ellipse.xml +7 -0
- data/test/voruby/stc/1.10/stc-region-intersection.xml +25 -0
- data/test/voruby/stc/1.10/stc-region-negation.xml +7 -0
- data/test/voruby/stc/1.10/stc-region-polygon.xml +13 -0
- data/test/voruby/stc/1.10/stc-region-sector.xml +6 -0
- data/test/voruby/stc/1.10/stc-region-union.xml +25 -0
- data/test/voruby/stc/1.10/stc-resource-profile.xml +60 -0
- data/test/voruby/stc/1.10/stc-search-location.xml +54 -0
- data/test/voruby/stc/1.10/stc_test.rb +4626 -0
- data/test/voruby/stc/1.30/stc-catalog-entry-location.xml +210 -0
- data/test/voruby/stc/1.30/stc-obs-data-location-arecibo.xml +353 -0
- data/test/voruby/stc/1.30/stc-obs-data-location-fits.xml +250 -0
- data/test/voruby/stc/1.30/stc-obs-data-location-xlink.xml +63 -0
- data/test/voruby/stc/1.30/stc-obs-data-location.xml +216 -0
- data/test/voruby/stc/1.30/stc-resource-profile-unusual-ref-pos.xml +39 -0
- data/test/voruby/stc/1.30/stc-resource-profile.xml +129 -0
- data/test/voruby/stc/1.30/stc-search-location-arecibo.xml +86 -0
- data/test/voruby/stc/1.30/stc-search-location.xml +101 -0
- data/test/voruby/stc/1.30/test.rb +6274 -0
- data/test/voruby/ucd/test.rb +48 -0
- data/test/voruby/voevent/1.1/test.rb +812 -0
- data/test/{voevent/voevent_v1_1.xml → voruby/voevent/1.1/voevent.xml} +2 -2
- data/test/voruby/voregistry/0.3/test.rb +137 -0
- data/test/voruby/votable/1.0/test.rb +714 -0
- data/test/voruby/votable/1.0/votable.basic.xml +660 -0
- data/test/voruby/votable/1.0/votable.html +86 -0
- data/test/voruby/votable/1.0/votable.ns.xml +56 -0
- data/test/voruby/votable/1.1/test.rb +785 -0
- data/test/voruby/votable/1.1/votable.basic.xml +38 -0
- data/test/voruby/votable/1.1/votable.html +86 -0
- data/test/voruby/votable/1.1/votable.ns.xml +56 -0
- data/test/voruby/votable/test.rb +15 -0
- data/test/voruby/wesix/test.rb +268 -0
- data/test/voruby/wesix/testr.fits +28 -0
- metadata +234 -247
- data/REQUIREMENTS +0 -6
- data/lib/voruby/active_votable/loader.rb +0 -5
- data/lib/voruby/adql/adql.rb +0 -2787
- data/lib/voruby/adql/ext.rb +0 -14
- data/lib/voruby/adql/loader.rb +0 -6
- data/lib/voruby/adql/operations.rb +0 -54
- data/lib/voruby/adql/parser.rb +0 -160
- data/lib/voruby/adql/transforms.rb +0 -573
- data/lib/voruby/ext.rb +0 -17
- data/lib/voruby/loader.rb +0 -4
- data/lib/voruby/misc/propertyfile.rb +0 -36
- data/lib/voruby/plastic/applications.rb +0 -174
- data/lib/voruby/plastic/constants.rb +0 -30
- data/lib/voruby/plastic/loader.rb +0 -10
- data/lib/voruby/plastic/plastic.rb +0 -1
- data/lib/voruby/resources/conesearch/conesearch.rb +0 -9
- data/lib/voruby/resources/conesearch/conesearch_v0_2.rb +0 -55
- data/lib/voruby/resources/conesearch/conesearch_v0_3.rb +0 -50
- data/lib/voruby/resources/conesearch/conesearch_v1_0.rb +0 -72
- data/lib/voruby/resources/conesearch/loader.rb +0 -4
- data/lib/voruby/resources/loader.rb +0 -50
- data/lib/voruby/resources/nodes.rb +0 -190
- data/lib/voruby/resources/openskynode/loader.rb +0 -4
- data/lib/voruby/resources/openskynode/openskynode.rb +0 -9
- data/lib/voruby/resources/openskynode/openskynode_v0_1.rb +0 -54
- data/lib/voruby/resources/sia/loader.rb +0 -5
- data/lib/voruby/resources/sia/sia.rb +0 -9
- data/lib/voruby/resources/sia/sia_v0_6.rb +0 -90
- data/lib/voruby/resources/sia/sia_v0_7.rb +0 -89
- data/lib/voruby/resources/sia/sia_v1_0.rb +0 -122
- data/lib/voruby/resources/stsci.rb +0 -59
- data/lib/voruby/resources/vodataservice/coverage_v0_2.rb +0 -195
- data/lib/voruby/resources/vodataservice/coverage_v0_3.rb +0 -158
- data/lib/voruby/resources/vodataservice/loader.rb +0 -5
- data/lib/voruby/resources/vodataservice/vodataservice.rb +0 -9
- data/lib/voruby/resources/vodataservice/vodataservice_v0_4.rb +0 -189
- data/lib/voruby/resources/vodataservice/vodataservice_v0_5.rb +0 -163
- data/lib/voruby/resources/vodataservice/vodataservice_v1_0.rb +0 -221
- data/lib/voruby/resources/voregistry/loader.rb +0 -4
- data/lib/voruby/resources/voregistry/voregistry.rb +0 -9
- data/lib/voruby/resources/voregistry/voregistry_v0_2.rb +0 -40
- data/lib/voruby/resources/voregistry/voregistry_v0_3.rb +0 -30
- data/lib/voruby/resources/voregistry/voregistry_v1_0.rb +0 -86
- data/lib/voruby/resources/voresource/loader.rb +0 -17
- data/lib/voruby/resources/voresource/voresource.rb +0 -9
- data/lib/voruby/resources/voresource/voresource_v0_10.rb +0 -327
- data/lib/voruby/resources/voresource/voresource_v0_9.rb +0 -405
- data/lib/voruby/resources/voresource/voresource_v1_0.rb +0 -230
- data/lib/voruby/services/ext.rb +0 -11
- data/lib/voruby/services/gestalt/footprint.rb +0 -95
- data/lib/voruby/services/gestalt/wcs_fixer.rb +0 -105
- data/lib/voruby/services/gestalt/wesix.rb +0 -155
- data/lib/voruby/services/loader.rb +0 -7
- data/lib/voruby/services/registry/registry.rb +0 -53
- data/lib/voruby/services/resolver/resolver.rb +0 -35
- data/lib/voruby/services/schema/schema.rb +0 -644
- data/lib/voruby/sesame/loader.rb +0 -6
- data/lib/voruby/sesame/sesame_v1_0.rb +0 -64
- data/lib/voruby/simple/loader.rb +0 -6
- data/lib/voruby/simple/parameters.rb +0 -196
- data/lib/voruby/simple/sap.rb +0 -446
- data/lib/voruby/spacetime/loader.rb +0 -3
- data/lib/voruby/spacetime/spacetime.rb +0 -607
- data/lib/voruby/stc/coords_v1_20.rb +0 -900
- data/lib/voruby/stc/loader.rb +0 -55
- data/lib/voruby/stc/region_v1_20.rb +0 -274
- data/lib/voruby/stc/stc_v1_20.rb +0 -1196
- data/lib/voruby/util.rb +0 -27
- data/lib/voruby/voevent/loader.rb +0 -7
- data/lib/voruby/voevent/voevent_v1_0.rb +0 -213
- data/lib/voruby/voevent/voevent_v1_1.rb +0 -196
- data/lib/voruby/votables/chandra.rb +0 -373
- data/lib/voruby/votables/data.rb +0 -179
- data/lib/voruby/votables/galex.rb +0 -377
- data/lib/voruby/votables/int.rb +0 -354
- data/lib/voruby/votables/libxml_parser.rb +0 -411
- data/lib/voruby/votables/libxml_votable.rb +0 -67
- data/lib/voruby/votables/loader.rb +0 -10
- data/lib/voruby/votables/meta.rb +0 -763
- data/lib/voruby/votables/misc.rb +0 -51
- data/lib/voruby/votables/nsa.rb +0 -410
- data/lib/voruby/votables/rexml_parser.rb +0 -408
- data/lib/voruby/votables/rexml_votable.rb +0 -67
- data/lib/voruby/votables/sdss.rb +0 -356
- data/lib/voruby/votables/transforms.rb +0 -388
- data/lib/voruby/votables/tree.rb +0 -45
- data/lib/voruby/votables/types.rb +0 -391
- data/lib/voruby/votables/votable.rb +0 -687
- data/test/active_votable/database.yml +0 -6
- data/test/active_votable/test.vot +0 -168492
- data/test/active_votable/unittest.rb +0 -41
- data/test/adql/test1.adql +0 -49
- data/test/adql/test2.adql +0 -51
- data/test/adql/test3.adql +0 -81
- data/test/adql/test4.adql +0 -53
- data/test/adql/test5.adql +0 -55
- data/test/adql/test6.adql +0 -18
- data/test/adql/test7.adql +0 -48
- data/test/adql/unittest.rb +0 -1672
- data/test/plastic/test.rb +0 -44
- data/test/plastic/test.vot +0 -5385
- data/test/plastic/unittest.rb +0 -66
- data/test/resources/conesearch/conesearch_v0_3.xml +0 -31
- data/test/resources/conesearch/conesearch_v1_0.xml +0 -86
- data/test/resources/conesearch/unittest_v0_3.rb +0 -22
- data/test/resources/conesearch/unittest_v1_0.rb +0 -24
- data/test/resources/openskynode/open_sky_node_v0_1.xml +0 -32
- data/test/resources/openskynode/unittest_v0_1.rb +0 -31
- data/test/resources/sia/simple_image_access_v0_7.xml +0 -36
- data/test/resources/sia/simple_image_access_v1_0.xml +0 -122
- data/test/resources/sia/unittest_v0_7.rb +0 -24
- data/test/resources/sia/unittest_v1_0.rb +0 -29
- data/test/resources/stsci.xml +0 -336
- data/test/resources/unittest_stsci.rb +0 -25
- data/test/resources/vodataservice/catalog_service_resource_v1_0.xml +0 -128
- data/test/resources/vodataservice/data_collection_resource_v0_5.xml +0 -54
- data/test/resources/vodataservice/data_collection_resource_v1_0.xml +0 -117
- data/test/resources/vodataservice/data_service_resource_v1_0.xml +0 -115
- data/test/resources/vodataservice/sky_service_resource_v0_10.xml +0 -45
- data/test/resources/vodataservice/table_service_resource_v1_0.xml +0 -122
- data/test/resources/vodataservice/tabular_sky_service_resource_v0_10.xml +0 -60
- data/test/resources/vodataservice/unittest_v0_5.rb +0 -126
- data/test/resources/vodataservice/unittest_v1_0.rb +0 -151
- data/test/resources/voregistry/authority_resource_v0_3.xml +0 -20
- data/test/resources/voregistry/authority_resource_v1_0.xml +0 -82
- data/test/resources/voregistry/registry_service_v0_3.xml +0 -20
- data/test/resources/voregistry/registry_service_v1_0.xml +0 -107
- data/test/resources/voregistry/unittest_v0_3.rb +0 -31
- data/test/resources/voregistry/unittest_v1_0.rb +0 -34
- data/test/resources/voresource/organisation_resource_v1_0.xml +0 -90
- data/test/resources/voresource/resource_organisation_v0_10.xml +0 -22
- data/test/resources/voresource/resource_service_v0_10.xml +0 -19
- data/test/resources/voresource/resource_v0_10.xml +0 -19
- data/test/resources/voresource/resource_v1_0.xml +0 -79
- data/test/resources/voresource/service_resource_v1_0.xml +0 -91
- data/test/resources/voresource/unittest_v0_10.rb +0 -61
- data/test/resources/voresource/unittest_v0_9.rb +0 -4
- data/test/resources/voresource/unittest_v1_0.rb +0 -190
- data/test/services/gestalt/unittest.rb +0 -74
- data/test/services/registry/unittest.rb +0 -34
- data/test/services/resolver/unittest.rb +0 -38
- data/test/simple/unittest.rb +0 -46
- data/test/spacetime/unittest.rb +0 -39
- data/test/stc/catalog_entry_location_v1_20.xml +0 -112
- data/test/stc/obs_data_location_v1_20.xml +0 -108
- data/test/stc/search_location_v1_20.xml +0 -54
- data/test/stc/stc_resource_profile_v1_20.xml +0 -60
- data/test/stc/unittest_v1_20.rb +0 -620
- data/test/voevent/unittest_v1_0.rb +0 -79
- data/test/voevent/unittest_v1_1.rb +0 -70
- data/test/voevent/voevent_v1_0.xml +0 -96
- data/test/votables/test.vot +0 -366
- data/test/votables/unittest.rb +0 -54
@@ -1,122 +0,0 @@
|
|
1
|
-
require 'voruby/resources/sia/loader'
|
2
|
-
|
3
|
-
require 'voruby/resources/voresource/voresource_v1_0'
|
4
|
-
require 'voruby/resources/vodataservice/vodataservice_v1_0'
|
5
|
-
|
6
|
-
include VORuby::Resources::VOResource::V1_0
|
7
|
-
include VORuby::Resources::VODataService::V1_0
|
8
|
-
|
9
|
-
module VORuby
|
10
|
-
module Resources
|
11
|
-
module SIA
|
12
|
-
module V1_0
|
13
|
-
|
14
|
-
# Forward declarations
|
15
|
-
class SIACapRestriction < Capability; end
|
16
|
-
class SimpleImageAccess < SIACapRestriction; end
|
17
|
-
class SkySize; end
|
18
|
-
class SkyPos; end
|
19
|
-
class ImageSize; end
|
20
|
-
class ImageServiceType; end
|
21
|
-
class Query; end
|
22
|
-
|
23
|
-
# An abstract capability that fixes the standardID to the IVOA ID for the ConeSearch standard.
|
24
|
-
class SIACapRestriction
|
25
|
-
text_node :description, 'description', :optional => true
|
26
|
-
text_node :standard_id, 'standardID', :class => IdentifierURI, :optional => false,
|
27
|
-
:default_value => 'ivo://ivoa.net/std/SIA'
|
28
|
-
|
29
|
-
array_node :validation_levels, 'validationLevel', :class => Validation, :optional => true, :default_value => []
|
30
|
-
array_node :interfaces, 'interface', :class => Interface, :optional => true, :default_value => []
|
31
|
-
|
32
|
-
def standard_id
|
33
|
-
id = IdentifierURI.new
|
34
|
-
id.value = 'ivo://ivoa.net/std/SIA'
|
35
|
-
|
36
|
-
return id
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
# The capabilities of an SIA implementation.
|
41
|
-
class SimpleImageAccess
|
42
|
-
# the class of image service: Cutout, Mosaic, Atlas, Pointed
|
43
|
-
object_node :image_service_type, 'imageServiceType', :class => ImageServiceType, :optional => false
|
44
|
-
# the maximum image query region size, expressed in
|
45
|
-
# decimal degrees. A value of 360 degrees indicates that
|
46
|
-
# there is no limit and the entire data collection
|
47
|
-
# (entire sky) can be queried.
|
48
|
-
object_node :max_query_region_size, 'maxQueryRegionSize', :class => SkySize, :optional => false
|
49
|
-
# the maximum image query region size, expressed in
|
50
|
-
# decimal degrees. A value of 360 degrees indicates
|
51
|
-
# that there is no limit and the entire data collection
|
52
|
-
# (entire sky) can be requested.
|
53
|
-
object_node :max_image_extent, 'maxImageExtent', :class => SkySize, :optional => false
|
54
|
-
# the largest image (in terms of pixels) that can be requested
|
55
|
-
object_node :max_image_size, 'maxImageSize', :class => ImageSize, :optional => false
|
56
|
-
# a set of query parameters that is expected to produce at least one matched record which
|
57
|
-
# can be used to test the service.
|
58
|
-
object_node :test_query, 'testQuery', :class => Query, :optional => true
|
59
|
-
|
60
|
-
# the maximum image file size in bytes
|
61
|
-
numeric_node :max_file_size, 'maxFileSize', :optional => false
|
62
|
-
numeric_node :max_records, 'maxRecords', :optional => false
|
63
|
-
end
|
64
|
-
|
65
|
-
class SkySize
|
66
|
-
include XML::Mapping
|
67
|
-
|
68
|
-
# the maximum size in the longitude (R.A.) direction
|
69
|
-
numeric_node :long, 'long', :optional => false
|
70
|
-
# the maximum size in the latitdude (Dec.) direction
|
71
|
-
numeric_node :lat, 'lat', :optional => false
|
72
|
-
end
|
73
|
-
|
74
|
-
class SkyPos
|
75
|
-
include XML::Mapping
|
76
|
-
|
77
|
-
# the sky position in the longitude (R.A.) direction
|
78
|
-
numeric_node :long, 'long', :optional => false
|
79
|
-
# the sky position in the latitdude (Dec.) direction
|
80
|
-
numeric_node :lat, 'lat', :optional => false
|
81
|
-
end
|
82
|
-
|
83
|
-
class ImageSize
|
84
|
-
include XML::Mapping
|
85
|
-
|
86
|
-
# the image size in the longitude (R.A.) direction in pixels
|
87
|
-
numeric_node :long, 'long', :optional => false
|
88
|
-
# the image size in the latitdude (Dec.) direction in pixels
|
89
|
-
numeric_node :lat, 'lat', :optional => false
|
90
|
-
end
|
91
|
-
|
92
|
-
# The class of image service: Cutout, Mosaic, Atlas, Pointed.
|
93
|
-
class ImageServiceType
|
94
|
-
include XML::Mapping
|
95
|
-
|
96
|
-
text_enumeration_node :value, '', :optional => false,
|
97
|
-
:choices => ['Cutout', 'Mosaic', 'Atlas', 'Pointed']
|
98
|
-
end
|
99
|
-
|
100
|
-
# A query to be sent to the service.
|
101
|
-
class Query
|
102
|
-
include XML::Mapping
|
103
|
-
|
104
|
-
# the right ascension of the search cone's center in decimal degrees
|
105
|
-
object_node :pos, 'pos', :class => SkyPos, :optional => true
|
106
|
-
# the declination of the search cone's center in decimal degrees
|
107
|
-
object_node :size, 'size', :class => SkySize, :optional => true
|
108
|
-
|
109
|
-
# the verbosity level to use where 0 means the bare
|
110
|
-
# minimum set of columns and 3 means the full set of available columns
|
111
|
-
numeric_node :verb, 'verb', :optional => true
|
112
|
-
|
113
|
-
# any extra (particularly non-standard) parameters that must
|
114
|
-
# be provided (apart from what is part of base URL given by
|
115
|
-
# the accessURL element).
|
116
|
-
text_node :extras, 'extras', :optional => true
|
117
|
-
end
|
118
|
-
|
119
|
-
end
|
120
|
-
end
|
121
|
-
end
|
122
|
-
end
|
@@ -1,59 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'xml/mapping'
|
3
|
-
|
4
|
-
require 'voruby/resources/loader'
|
5
|
-
|
6
|
-
# STScI's registry uses the following resource versions...
|
7
|
-
require 'voruby/resources/voresource/voresource_v0_10'
|
8
|
-
require 'voruby/resources/vodataservice/vodataservice_v0_5'
|
9
|
-
require 'voruby/resources/voregistry/voregistry_v0_3'
|
10
|
-
require 'voruby/resources/conesearch/conesearch_v0_3'
|
11
|
-
require 'voruby/resources/openskynode/openskynode_v0_1'
|
12
|
-
require 'voruby/resources/sia/sia_v0_7'
|
13
|
-
|
14
|
-
module VORuby
|
15
|
-
module Resources
|
16
|
-
module STScI
|
17
|
-
|
18
|
-
# Forward declarations
|
19
|
-
class ArrayOfResource; end
|
20
|
-
|
21
|
-
$ResourceUnmarshaller = Resources::namespace_dispatcher(
|
22
|
-
'VORuby::Resources::VOResource::V0_10', 'Resource', Resource
|
23
|
-
)
|
24
|
-
|
25
|
-
class ArrayOfResource
|
26
|
-
include XML::Mapping
|
27
|
-
|
28
|
-
array_node :resources, 'Resource', :unmarshaller => $ResourceUnmarshaller, :optional => false, :default_value => []
|
29
|
-
end
|
30
|
-
|
31
|
-
# STScI's registry has some quirks which we'd like to clean up a bit.
|
32
|
-
def self.clean(doc)
|
33
|
-
return STScI::remove_empty_elements(STScI::remove_invalid_ivo_ids(doc))
|
34
|
-
end
|
35
|
-
|
36
|
-
# STScI occasionally puts 'NOT PROVIDED' or '' in the ivo-id attribute of (in particular) the publisher element which is not valid.
|
37
|
-
# This removes the ivo-id in that situation.
|
38
|
-
def self.remove_invalid_ivo_ids(doc)
|
39
|
-
doc.elements.each('//*[@ivo-id="NOT PROVIDED" or @ivo-id=""]'){ |el|
|
40
|
-
el.delete_attribute('ivo-id')
|
41
|
-
}
|
42
|
-
|
43
|
-
return doc
|
44
|
-
end
|
45
|
-
|
46
|
-
# Sometimes STScI puts empty elements (no attributes at all) into its resource definitions
|
47
|
-
# (particularly in the curation element). I don't think this is valid--if an element exists at all, it
|
48
|
-
# should have *some* kind of content. Therefore I remove all elements who have no attributes and no children.
|
49
|
-
def self.remove_empty_elements(doc)
|
50
|
-
doc.elements.each('//*'){ |el|
|
51
|
-
el.parent.delete_element(el) if !el.has_attributes? and !el.has_elements? and !el.has_text?
|
52
|
-
}
|
53
|
-
|
54
|
-
return doc
|
55
|
-
end
|
56
|
-
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
@@ -1,195 +0,0 @@
|
|
1
|
-
require 'voruby/resources/vodataservice/loader'
|
2
|
-
|
3
|
-
module VORuby
|
4
|
-
module Resources
|
5
|
-
module VODataServiceCoverage
|
6
|
-
module V0_2
|
7
|
-
|
8
|
-
# Forward declarations
|
9
|
-
class Coverage < CoverageType; end
|
10
|
-
class SpatialType; end
|
11
|
-
class Spatial < SpatialType; end
|
12
|
-
class RegionType; end
|
13
|
-
class Region < RegionType; end
|
14
|
-
class AllSky < RegionType; end
|
15
|
-
class CoordFrameType; end
|
16
|
-
class CoordFrame < CoordFrameType; end
|
17
|
-
class CoordRangeType < RegionType; end
|
18
|
-
class CircleRegionType < RegionType; end
|
19
|
-
class CircleRegion < CirlceRegionType; end
|
20
|
-
class PositionType; end
|
21
|
-
class CenterPosition < PositionType; end
|
22
|
-
class SpatialResolution; end
|
23
|
-
class RegionOfRegard; end
|
24
|
-
class TemporalType; end
|
25
|
-
class Temporal < TemporalType; end
|
26
|
-
class StartTime; end
|
27
|
-
class EndTime; end
|
28
|
-
class TemporalResolution; end
|
29
|
-
class SpectralType; end
|
30
|
-
class Spectral < SpectralType; end
|
31
|
-
class WavebandType; end
|
32
|
-
class Waveband < WavebandType; end
|
33
|
-
class WavelengthRangeType; end
|
34
|
-
class WavelengthRange < WavelengthRangeType; end
|
35
|
-
class SpectralResolution; end
|
36
|
-
class MinMaxRange; end
|
37
|
-
|
38
|
-
# Extent of the content of the resource over space, time, and frequency.
|
39
|
-
class Coverage; end
|
40
|
-
class CoverageType
|
41
|
-
include XML::Mapping
|
42
|
-
|
43
|
-
object_node :spatial, 'Spatial', :class => Spatial, :optional => true
|
44
|
-
object_node :spectral, 'Spectral', :class => Spectral, :optional => true
|
45
|
-
object_node :temporal, 'Temporal', :class => Temporal, :optional => true
|
46
|
-
end
|
47
|
-
|
48
|
-
# The spatial coverage of a resource.
|
49
|
-
class Spatial; end
|
50
|
-
class SpatialType
|
51
|
-
include XML::Mapping
|
52
|
-
|
53
|
-
object_node :spatial_resolution, 'SpatialResolution', :class => SpatialResolution, :optional => true
|
54
|
-
object_node :region_of_regard, 'RegionOfRegard', :class => RegionOfRegard, :optional => true
|
55
|
-
|
56
|
-
array_node :regions, 'Region', :class => Region, :optional => true, :default_value => []
|
57
|
-
end
|
58
|
-
|
59
|
-
# A coverage area of the sky.
|
60
|
-
class Region; end
|
61
|
-
class RegionType
|
62
|
-
include XML::Mapping
|
63
|
-
end
|
64
|
-
|
65
|
-
# A coverage area covering the entire sky.
|
66
|
-
class AllSky; end
|
67
|
-
|
68
|
-
# A coordinate system frame.
|
69
|
-
class CoordFrame; end
|
70
|
-
class CoordFrameType
|
71
|
-
include XML::Mapping
|
72
|
-
|
73
|
-
text_enumeration_node :value, '', :optional => false,
|
74
|
-
:choices => ['ICRS', 'FK5', 'FK4', 'ECL', 'GAL', 'SGAL']
|
75
|
-
end
|
76
|
-
|
77
|
-
# A coverage area of the sky characterized by a range of longitude and latitude.
|
78
|
-
class CoordRange; end
|
79
|
-
class CoordRangeType
|
80
|
-
object_node :coord_frame, 'CoordFrame', :class => CoordFrame, :optional => false
|
81
|
-
object_node :long, 'long', :class => MinMaxRange, :optional => false
|
82
|
-
object_node :lat, 'lat', :class => MinMaxRange, :optional => false
|
83
|
-
end
|
84
|
-
|
85
|
-
class MinMaxRange
|
86
|
-
require XML::Mapping
|
87
|
-
|
88
|
-
numeric_node :min, 'min', :optional => false
|
89
|
-
numeric_node :max, 'max', :optional => false
|
90
|
-
end
|
91
|
-
|
92
|
-
# A coverage area of the sky characterized by a central position and angular radius.
|
93
|
-
class CircleRegion; end
|
94
|
-
class CircleRegionType
|
95
|
-
numeric_node :radius, 'radius', :optional => false
|
96
|
-
|
97
|
-
object_node :coord_frame, 'CoordFrame', :class => CoordFrame, :optional => false
|
98
|
-
object_node :center_position, 'CenterPosition', :class => CenterPosition, :optional => false
|
99
|
-
end
|
100
|
-
|
101
|
-
# The position of the center of some region of the sky.
|
102
|
-
class CenterPosition; end
|
103
|
-
class PositionType
|
104
|
-
include XML::Mapping
|
105
|
-
|
106
|
-
numeric_node :long, 'long', :optional => false
|
107
|
-
numeric_node :lat, 'lat', :optional => false
|
108
|
-
end
|
109
|
-
|
110
|
-
# The spatial (angular) resolution that is typical of the observations of interest, in decimal degrees.
|
111
|
-
class SpatialResolution
|
112
|
-
include XML::Mapping
|
113
|
-
|
114
|
-
numeric_node :value, '', :optional => false
|
115
|
-
end
|
116
|
-
|
117
|
-
# The intrinsic size scale, given in arcseconds, associated with data items contained in a resource.
|
118
|
-
class RegionOfRegard
|
119
|
-
include XML::Mapping
|
120
|
-
|
121
|
-
numeric_node :value, '', :optional => false
|
122
|
-
end
|
123
|
-
|
124
|
-
# The temporal coverage of a resource.
|
125
|
-
class Temporal; end
|
126
|
-
class TemporalType
|
127
|
-
include XML::Mapping
|
128
|
-
|
129
|
-
object_node :start_time, 'StartTime', :class => StartTime, :optional => true
|
130
|
-
object_node :end_time, 'EndTime', :class => EndTime, :optional => true
|
131
|
-
object_node :temporal_resolution, 'TemporalResolution', :class => TemporalResolution, :optional => true
|
132
|
-
end
|
133
|
-
|
134
|
-
# The earliest temporal coverage of the resource.
|
135
|
-
class StartTime
|
136
|
-
include XML::Mapping
|
137
|
-
|
138
|
-
date_time_node :value, '', :optional => false
|
139
|
-
end
|
140
|
-
|
141
|
-
# The latest temporal coverage of the resource.
|
142
|
-
class EndTime
|
143
|
-
include XML::Mapping
|
144
|
-
|
145
|
-
date_time_node :value, '', :optional => false
|
146
|
-
end
|
147
|
-
|
148
|
-
# The temporal resolution that is typical of the observations of interest, in seconds.
|
149
|
-
class TemporalResolution
|
150
|
-
include XML::Mapping
|
151
|
-
|
152
|
-
numeric_node :value, '', :optional => false
|
153
|
-
end
|
154
|
-
|
155
|
-
# The spectral coverage of a resource.
|
156
|
-
class Spectral; end
|
157
|
-
class SpectralType
|
158
|
-
include XML::Mapping
|
159
|
-
|
160
|
-
object_node :wavelength_range, 'WavelengthRange', :class => WavelengthRange, :optional => true
|
161
|
-
object_node :spectral_resolution, 'SpectralResolution', :class => SpectralResolution, :optional => true
|
162
|
-
|
163
|
-
array_node :wavebands, 'Waveband', :class => Waveband, :optional => true, :default_value => []
|
164
|
-
end
|
165
|
-
|
166
|
-
# A named spectral region of the electro-magnetic spectrum.
|
167
|
-
class Waveband; end
|
168
|
-
class WavebandType
|
169
|
-
include XML::Mapping
|
170
|
-
|
171
|
-
text_enumeration_node :value, '', :optional => false,
|
172
|
-
:choices => ['Radio', 'Millimeter', 'Infrared', 'Optical', 'UV', 'EUV', 'X-ray', 'Gamma-ray']
|
173
|
-
end
|
174
|
-
|
175
|
-
# A range of the electro-magnetic spectrum specified by a lower and upper wavelength limit.
|
176
|
-
class WavelengthRange; end
|
177
|
-
class WavelengthRangeType
|
178
|
-
include XML::Mapping
|
179
|
-
|
180
|
-
numeric_node :min, 'min', :optional => false
|
181
|
-
numeric_node :max, 'max', :optional => false
|
182
|
-
end
|
183
|
-
|
184
|
-
# The spectral resolution that is typical of the observations of interest, given as a ratio of the wavelength
|
185
|
-
# width (delta-lambda) to the observing wavelength (lambda).
|
186
|
-
class SpectralResolution
|
187
|
-
include XML::Mapping
|
188
|
-
|
189
|
-
numeric_node :value, '', :optional => false
|
190
|
-
end
|
191
|
-
|
192
|
-
end
|
193
|
-
end
|
194
|
-
end
|
195
|
-
end
|
@@ -1,158 +0,0 @@
|
|
1
|
-
require 'voruby/resources/vodataservice/loader'
|
2
|
-
|
3
|
-
module VORuby
|
4
|
-
module Resources
|
5
|
-
module VODataServiceCoverage
|
6
|
-
module V0_3
|
7
|
-
|
8
|
-
# Forward declarations
|
9
|
-
class Coverage; end
|
10
|
-
class Spatial; end
|
11
|
-
class Region; end
|
12
|
-
class Spectral; end
|
13
|
-
class Waveband; end
|
14
|
-
class WavelengthRange; end
|
15
|
-
class Temporal; end
|
16
|
-
class AllSky < Region; end
|
17
|
-
class CoordFrame; end
|
18
|
-
class CoordRange < Region; end
|
19
|
-
class AngleRange; end
|
20
|
-
class CircleRegion < Region; end
|
21
|
-
class Position; end
|
22
|
-
|
23
|
-
class Coverage
|
24
|
-
include XML::Mapping
|
25
|
-
|
26
|
-
# the spatial coverage of a resource
|
27
|
-
object_node :spatial, 'spatial', :class => Spatial, :optional => true
|
28
|
-
# the spectral coverage of a resource
|
29
|
-
object_node :spectral, 'spectral', :class => Spectral, :optional => true
|
30
|
-
# the temporal coverage of a resource
|
31
|
-
object_node :temporal, 'temporal', :class => Temporal, :optional => true
|
32
|
-
end
|
33
|
-
|
34
|
-
class Spatial
|
35
|
-
include XML::Mapping
|
36
|
-
|
37
|
-
# the spatial (angular) resolution that is typical of the observations of interest, in decimal degrees.
|
38
|
-
numeric_node :resolution, 'resolution', :optional => true
|
39
|
-
# the intrinsic size scale, given in arcseconds, associated with data items contained in a resource.
|
40
|
-
numeric_node :region_of_regard, 'regionOfRegard', :optional => true
|
41
|
-
|
42
|
-
# a coverage area of the sky
|
43
|
-
unmarshaller = Proc.new{ |xml|
|
44
|
-
ns_prefix, type = xml.attributes['type'].split(':')
|
45
|
-
type = ns_prefix if !type
|
46
|
-
|
47
|
-
the_module = NAMESPACE_MODULE_MAP[xml.namespace(ns_prefix)]
|
48
|
-
the_module = 'VORuby::Resources::VODataServiceCoverage::V0_3' if !the_module
|
49
|
-
|
50
|
-
# The name of the appropriate class corresponds to the type.
|
51
|
-
begin
|
52
|
-
eval("#{the_module}::#{type}.load_from_xml(xml)") # Would like to get rid of this eval somehow...
|
53
|
-
rescue NameError
|
54
|
-
Region.load_from_xml(xml)
|
55
|
-
end
|
56
|
-
}
|
57
|
-
array_node :regions, 'region', :unmarshaller => unmarshaller, :optional => true, :default_value => []
|
58
|
-
end
|
59
|
-
|
60
|
-
class Region
|
61
|
-
include XML::Mapping
|
62
|
-
end
|
63
|
-
|
64
|
-
class Spectral
|
65
|
-
include XML::Mapping
|
66
|
-
|
67
|
-
# the spectral resolution that is typical of the
|
68
|
-
# observations of interest, given as a ratio of the wavelength
|
69
|
-
# width (delta-lambda) to the observing wavelength (lambda).
|
70
|
-
numeric_node :resolution, 'resolution', :optional => true
|
71
|
-
|
72
|
-
# a range of the electro-magnetic spectrum specified by a lower and upper wavelength limit
|
73
|
-
object_node :range, 'range', :class => WavelengthRange, :optional => true
|
74
|
-
|
75
|
-
# a named spectral region of the electro-magnetic spectrum
|
76
|
-
array_node :wavebands, 'waveband', :class => Waveband, :optional => true, :default_value => []
|
77
|
-
end
|
78
|
-
|
79
|
-
class Waveband
|
80
|
-
include XML::Mapping
|
81
|
-
|
82
|
-
text_enumeration_node :value, '', :optional => false,
|
83
|
-
:choices => ['Radio', 'Millimeter', 'Infrared', 'Optical', 'UV', 'EUV', 'X-ray', 'Gamma-ray']
|
84
|
-
end
|
85
|
-
|
86
|
-
class WavelengthRange
|
87
|
-
include XML::Mapping
|
88
|
-
|
89
|
-
# the minimum wavelength
|
90
|
-
numeric_node :min, 'min', :optional => false
|
91
|
-
# the minimum wavelength
|
92
|
-
numeric_node :max, 'max', :optional => false
|
93
|
-
end
|
94
|
-
|
95
|
-
class Temporal
|
96
|
-
include XML::Mapping
|
97
|
-
|
98
|
-
# the earliest temporal coverage of the resource
|
99
|
-
date_time_node :start_time, 'startTime', :optional => true
|
100
|
-
# the latest temporal coverage of the resource
|
101
|
-
date_time_node :end_time, 'endTime', :optional => true
|
102
|
-
|
103
|
-
# the temporal resolution that is typical of the observations of interest, in seconds.
|
104
|
-
numeric_node :resolution, 'resolution', :optional => true
|
105
|
-
end
|
106
|
-
|
107
|
-
# A coverage area covering the entire sky.
|
108
|
-
class AllSky; end
|
109
|
-
|
110
|
-
class CoordFrame
|
111
|
-
include XML::Mapping
|
112
|
-
|
113
|
-
text_enumeration_node :value, '', :optional => false,
|
114
|
-
:choices => ['ICRS', 'FK5', 'FK4', 'ECL', 'GAL', 'SGAL']
|
115
|
-
end
|
116
|
-
|
117
|
-
# A coverage area of the sky characterized by a range of longitude and latitude.
|
118
|
-
class CoordRange
|
119
|
-
# a coordinate system frame
|
120
|
-
object_node :coord_frame, 'coordFrame', :class => CoordFrame, :optional => false
|
121
|
-
# the range in longitude
|
122
|
-
object_node :long, 'long', :class => AngleRange, :optional => false
|
123
|
-
# the range in latitude
|
124
|
-
object_node :lat, 'lat', :class => AngleRange, :optional => false
|
125
|
-
end
|
126
|
-
|
127
|
-
class AngleRange
|
128
|
-
include XML::Mapping
|
129
|
-
|
130
|
-
# the minimum angle
|
131
|
-
numeric_node :min, 'min', :optional => false
|
132
|
-
# the maximum angle
|
133
|
-
numeric_node :max, 'max', :optional => false
|
134
|
-
end
|
135
|
-
|
136
|
-
# A coverage area of the sky characterized by a central position and angular radius.
|
137
|
-
class CircleRegion
|
138
|
-
# a coordinate system frame
|
139
|
-
object_node :coord_frame, 'coordFrame', :class => CoordFrame, :optional => false
|
140
|
-
# the position of the center of the circle/cone
|
141
|
-
object_node :center, 'center', :class => Position, :optional => false
|
142
|
-
# the radius of the circle in degrees
|
143
|
-
numeric_node :radius, 'radius', :optional => false
|
144
|
-
end
|
145
|
-
|
146
|
-
class Position
|
147
|
-
include XML::Mapping
|
148
|
-
|
149
|
-
# the longitude component of the sky position
|
150
|
-
numeric_node :long, 'long', :optional => false
|
151
|
-
# the latitude component of the sky position
|
152
|
-
numeric_node :lat, 'lat', :optional => false
|
153
|
-
end
|
154
|
-
|
155
|
-
end
|
156
|
-
end
|
157
|
-
end
|
158
|
-
end
|