voruby 1.0.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.
Files changed (156) hide show
  1. data/LICENSE +339 -0
  2. data/REQUIREMENTS +4 -0
  3. data/Rakefile.rb +296 -0
  4. data/lib/voruby/adql/adql.rb +2735 -0
  5. data/lib/voruby/adql/ext.rb +15 -0
  6. data/lib/voruby/adql/loader.rb +5 -0
  7. data/lib/voruby/adql/operations.rb +54 -0
  8. data/lib/voruby/adql/parser.rb +160 -0
  9. data/lib/voruby/adql/transforms.rb +573 -0
  10. data/lib/voruby/ext.rb +17 -0
  11. data/lib/voruby/loader.rb +4 -0
  12. data/lib/voruby/misc/propertyfile.rb +36 -0
  13. data/lib/voruby/plastic/applications.rb +174 -0
  14. data/lib/voruby/plastic/constants.rb +30 -0
  15. data/lib/voruby/plastic/loader.rb +10 -0
  16. data/lib/voruby/plastic/plastic.rb +1 -0
  17. data/lib/voruby/resources/conesearch/conesearch.rb +9 -0
  18. data/lib/voruby/resources/conesearch/conesearch_v0_2.rb +55 -0
  19. data/lib/voruby/resources/conesearch/conesearch_v0_3.rb +50 -0
  20. data/lib/voruby/resources/conesearch/conesearch_v1_0.rb +72 -0
  21. data/lib/voruby/resources/conesearch/loader.rb +4 -0
  22. data/lib/voruby/resources/loader.rb +50 -0
  23. data/lib/voruby/resources/nodes.rb +190 -0
  24. data/lib/voruby/resources/openskynode/loader.rb +4 -0
  25. data/lib/voruby/resources/openskynode/openskynode.rb +9 -0
  26. data/lib/voruby/resources/openskynode/openskynode_v0_1.rb +54 -0
  27. data/lib/voruby/resources/sia/loader.rb +5 -0
  28. data/lib/voruby/resources/sia/sia.rb +9 -0
  29. data/lib/voruby/resources/sia/sia_v0_6.rb +90 -0
  30. data/lib/voruby/resources/sia/sia_v0_7.rb +89 -0
  31. data/lib/voruby/resources/sia/sia_v1_0.rb +122 -0
  32. data/lib/voruby/resources/stsci.rb +59 -0
  33. data/lib/voruby/resources/vodataservice/coverage_v0_2.rb +195 -0
  34. data/lib/voruby/resources/vodataservice/coverage_v0_3.rb +158 -0
  35. data/lib/voruby/resources/vodataservice/loader.rb +5 -0
  36. data/lib/voruby/resources/vodataservice/vodataservice.rb +9 -0
  37. data/lib/voruby/resources/vodataservice/vodataservice_v0_4.rb +189 -0
  38. data/lib/voruby/resources/vodataservice/vodataservice_v0_5.rb +163 -0
  39. data/lib/voruby/resources/vodataservice/vodataservice_v1_0.rb +221 -0
  40. data/lib/voruby/resources/voregistry/loader.rb +4 -0
  41. data/lib/voruby/resources/voregistry/voregistry.rb +9 -0
  42. data/lib/voruby/resources/voregistry/voregistry_v0_2.rb +40 -0
  43. data/lib/voruby/resources/voregistry/voregistry_v0_3.rb +30 -0
  44. data/lib/voruby/resources/voregistry/voregistry_v1_0.rb +86 -0
  45. data/lib/voruby/resources/voresource/loader.rb +17 -0
  46. data/lib/voruby/resources/voresource/voresource.rb +9 -0
  47. data/lib/voruby/resources/voresource/voresource_v0_10.rb +322 -0
  48. data/lib/voruby/resources/voresource/voresource_v0_9.rb +405 -0
  49. data/lib/voruby/resources/voresource/voresource_v1_0.rb +230 -0
  50. data/lib/voruby/services/ext.rb +11 -0
  51. data/lib/voruby/services/gestalt/footprint.rb +95 -0
  52. data/lib/voruby/services/gestalt/wcs_fixer.rb +105 -0
  53. data/lib/voruby/services/gestalt/wesix.rb +155 -0
  54. data/lib/voruby/services/loader.rb +7 -0
  55. data/lib/voruby/services/registry/registry.rb +53 -0
  56. data/lib/voruby/services/resolver/resolver.rb +35 -0
  57. data/lib/voruby/sesame/loader.rb +6 -0
  58. data/lib/voruby/sesame/sesame_v1_0.rb +64 -0
  59. data/lib/voruby/simple/loader.rb +6 -0
  60. data/lib/voruby/simple/parameters.rb +196 -0
  61. data/lib/voruby/simple/sap.rb +446 -0
  62. data/lib/voruby/spacetime/loader.rb +3 -0
  63. data/lib/voruby/spacetime/spacetime.rb +607 -0
  64. data/lib/voruby/stc/coords_v1_20.rb +900 -0
  65. data/lib/voruby/stc/loader.rb +55 -0
  66. data/lib/voruby/stc/region_v1_20.rb +274 -0
  67. data/lib/voruby/stc/stc_v1_20.rb +1196 -0
  68. data/lib/voruby/util.rb +27 -0
  69. data/lib/voruby/voevent/loader.rb +7 -0
  70. data/lib/voruby/voevent/voevent_v1_0.rb +213 -0
  71. data/lib/voruby/voevent/voevent_v1_1.rb +196 -0
  72. data/lib/voruby/votables/chandra.rb +410 -0
  73. data/lib/voruby/votables/cnoc.rb +393 -0
  74. data/lib/voruby/votables/data.rb +179 -0
  75. data/lib/voruby/votables/galex.rb +390 -0
  76. data/lib/voruby/votables/hst.rb +391 -0
  77. data/lib/voruby/votables/int.rb +391 -0
  78. data/lib/voruby/votables/libxml_parser.rb +411 -0
  79. data/lib/voruby/votables/libxml_votable.rb +67 -0
  80. data/lib/voruby/votables/loader.rb +10 -0
  81. data/lib/voruby/votables/meta.rb +763 -0
  82. data/lib/voruby/votables/misc.rb +51 -0
  83. data/lib/voruby/votables/nsa.rb +393 -0
  84. data/lib/voruby/votables/nsar3.rb +410 -0
  85. data/lib/voruby/votables/rexml_parser.rb +408 -0
  86. data/lib/voruby/votables/rexml_votable.rb +67 -0
  87. data/lib/voruby/votables/sdss.rb +393 -0
  88. data/lib/voruby/votables/transforms.rb +388 -0
  89. data/lib/voruby/votables/tree.rb +45 -0
  90. data/lib/voruby/votables/types.rb +391 -0
  91. data/lib/voruby/votables/votable.rb +630 -0
  92. data/lib/voruby/votables/xmm.rb +394 -0
  93. data/test/adql/test1.adql +49 -0
  94. data/test/adql/test2.adql +51 -0
  95. data/test/adql/test3.adql +81 -0
  96. data/test/adql/test4.adql +53 -0
  97. data/test/adql/test5.adql +55 -0
  98. data/test/adql/test6.adql +18 -0
  99. data/test/adql/test7.adql +48 -0
  100. data/test/adql/unittest.rb +1672 -0
  101. data/test/plastic/test.rb +44 -0
  102. data/test/plastic/test.vot +5385 -0
  103. data/test/plastic/unittest.rb +66 -0
  104. data/test/resources/conesearch/conesearch_v0_3.xml +31 -0
  105. data/test/resources/conesearch/conesearch_v1_0.xml +86 -0
  106. data/test/resources/conesearch/unittest_v0_3.rb +22 -0
  107. data/test/resources/conesearch/unittest_v1_0.rb +24 -0
  108. data/test/resources/openskynode/open_sky_node_v0_1.xml +32 -0
  109. data/test/resources/openskynode/unittest_v0_1.rb +31 -0
  110. data/test/resources/sia/simple_image_access_v0_7.xml +36 -0
  111. data/test/resources/sia/simple_image_access_v1_0.xml +122 -0
  112. data/test/resources/sia/unittest_v0_7.rb +24 -0
  113. data/test/resources/sia/unittest_v1_0.rb +29 -0
  114. data/test/resources/stsci.xml +336 -0
  115. data/test/resources/unittest_stsci.rb +25 -0
  116. data/test/resources/vodataservice/catalog_service_resource_v1_0.xml +128 -0
  117. data/test/resources/vodataservice/data_collection_resource_v0_5.xml +54 -0
  118. data/test/resources/vodataservice/data_collection_resource_v1_0.xml +117 -0
  119. data/test/resources/vodataservice/data_service_resource_v1_0.xml +115 -0
  120. data/test/resources/vodataservice/sky_service_resource_v0_10.xml +45 -0
  121. data/test/resources/vodataservice/table_service_resource_v1_0.xml +122 -0
  122. data/test/resources/vodataservice/tabular_sky_service_resource_v0_10.xml +60 -0
  123. data/test/resources/vodataservice/unittest_v0_5.rb +126 -0
  124. data/test/resources/vodataservice/unittest_v1_0.rb +151 -0
  125. data/test/resources/voregistry/authority_resource_v0_3.xml +20 -0
  126. data/test/resources/voregistry/authority_resource_v1_0.xml +82 -0
  127. data/test/resources/voregistry/registry_service_v0_3.xml +20 -0
  128. data/test/resources/voregistry/registry_service_v1_0.xml +107 -0
  129. data/test/resources/voregistry/unittest_v0_3.rb +31 -0
  130. data/test/resources/voregistry/unittest_v1_0.rb +34 -0
  131. data/test/resources/voresource/organisation_resource_v1_0.xml +90 -0
  132. data/test/resources/voresource/resource_organisation_v0_10.xml +22 -0
  133. data/test/resources/voresource/resource_service_v0_10.xml +19 -0
  134. data/test/resources/voresource/resource_v0_10.xml +19 -0
  135. data/test/resources/voresource/resource_v1_0.xml +79 -0
  136. data/test/resources/voresource/service_resource_v1_0.xml +91 -0
  137. data/test/resources/voresource/unittest_v0_10.rb +61 -0
  138. data/test/resources/voresource/unittest_v0_9.rb +4 -0
  139. data/test/resources/voresource/unittest_v1_0.rb +190 -0
  140. data/test/services/gestalt/unittest.rb +74 -0
  141. data/test/services/registry/unittest.rb +34 -0
  142. data/test/services/resolver/unittest.rb +38 -0
  143. data/test/simple/unittest.rb +46 -0
  144. data/test/spacetime/unittest.rb +39 -0
  145. data/test/stc/catalog_entry_location_v1_20.xml +112 -0
  146. data/test/stc/obs_data_location_v1_20.xml +108 -0
  147. data/test/stc/search_location_v1_20.xml +54 -0
  148. data/test/stc/stc_resource_profile_v1_20.xml +60 -0
  149. data/test/stc/unittest_v1_20.rb +620 -0
  150. data/test/voevent/unittest_v1_0.rb +79 -0
  151. data/test/voevent/unittest_v1_1.rb +70 -0
  152. data/test/voevent/voevent_v1_0.xml +96 -0
  153. data/test/voevent/voevent_v1_1.xml +76 -0
  154. data/test/votables/test.vot +366 -0
  155. data/test/votables/unittest.rb +54 -0
  156. metadata +256 -0
@@ -0,0 +1,221 @@
1
+ require 'voruby/resources/vodataservice/loader'
2
+
3
+ require 'voruby/resources/voresource/voresource_v1_0'
4
+
5
+ include VORuby::Resources::VOResource::V1_0
6
+
7
+ module VORuby
8
+ module Resources
9
+ module VODataService
10
+ module V1_0
11
+
12
+ # Forward declarations
13
+ class Format; end
14
+ class Coverage; end
15
+ class ServiceReference < AnyURI; end
16
+ class Waveband; end
17
+ class Catalog; end
18
+ class Table; end
19
+ class BaseParam; end
20
+ class TableParam < BaseParam; end
21
+ class VOTScalarDataType; end
22
+ class TableDataType < VOTScalarDataType; end
23
+ class DataCollection < Resource; end
24
+ class StandardSTC < Resource; end
25
+ class DataService < Service; end
26
+ class ParamHTTP < Interface; end
27
+ class HTTPQueryType; end
28
+ class InputParam < BaseParam; end
29
+ class ParamUse; end
30
+ class SimpleScalarDataType; end
31
+ class SimpleDataType < SimpleScalarDataType; end
32
+ class CatalogService < DataService; end
33
+ class TableService < Service; end
34
+ class ArrayShape; end
35
+
36
+ # An expression of a the shape of a multi-dimensional array of the form LxNxM... where each value between gives the
37
+ # integer length of the array along a dimension. An asterisk (*) as the last dimension of the shape indicates
38
+ # that the length of the last axis is variable or undetermined.
39
+ class ArrayShape
40
+ include XML::Mapping
41
+
42
+ text_node :value, '', :optional => false
43
+
44
+ def value=(shape)
45
+ raise RuntimeError, "ArrayShape '#{shape}' in wrong format" if !shape.match(/^([0-9]+x)*[0-9]*[*]?$/)
46
+
47
+ @value = shape
48
+ end
49
+ end
50
+
51
+ # A logical grouping of data which, in general, is composed of one or more accessible datasets. A collection can contain any
52
+ # combination of images, spectra, catalogs, or other data.
53
+ class DataCollection
54
+ object_node :coverage, 'coverage', :class => Coverage, :optional => true
55
+ object_node :access_url, 'accessURL', :class => VOResource::V1_0::AccessURL, :optional => true
56
+
57
+ array_node :facilities, 'facility', :class => VOResource::V1_0::ResourceName, :optional => true, :default_values => []
58
+ array_node :instruments, 'instrument', :class => VOResource::V1_0::ResourceName, :optional => true, :default_values => []
59
+ array_node :rights, 'rights', :class => VOResource::V1_0::Rights, :optional => true, :default_values => []
60
+ array_node :formats, 'format', :class => Format, :optional => true, :default_values => []
61
+ array_node :catalogs, 'catalog', :class => Catalog, :optional => true, :default_values => []
62
+ end
63
+
64
+ # The physical or digital manifestation of the information supported by a resource.
65
+ class Format
66
+ include XML::Mapping
67
+
68
+ text_node :value, '', :optional => false
69
+ boolean_node :is_mime_type, '@isMIMEType', 'true', 'false', :optional => false, :default_value => 'false'
70
+ end
71
+
72
+ # Extent of the content of the resource over space, time, and frequency.
73
+ # Coverage includes an STCResourceProfile which I haven't implemented yet.
74
+ class Coverage
75
+ include XML::Mapping
76
+
77
+ # object_node :stc_resource_profile, 'STCResourceProfile', :class => STC::STCResourceProfile, :optional => true
78
+ object_node :footprint, 'footprint', :class => ServiceReference, :optional => true
79
+
80
+ array_node :wavebands, 'waveband', :class => Waveband, :optional => true, :default_values => []
81
+ end
82
+
83
+ # The service URL for a potentially registerd service. That is, if an IVOA identifier is also provided, then the service is
84
+ # described in a registry.
85
+ class ServiceReference
86
+ object_node :ivo_id, '@ivo-id', :class => VOResource::V1_0::IdentifierURI, :optional => true
87
+ end
88
+
89
+ # A detailed description of a logically-related set of tables.
90
+ class Catalog
91
+ include XML::Mapping
92
+
93
+ array_node :tables, 'table', :class => Table, :optional => true, :default_values => []
94
+ end
95
+
96
+ # A description of a parameter that places no restriction on the parameter's data type.
97
+ class BaseParam
98
+ include XML::Mapping
99
+
100
+ text_node :name, 'name', :optional => true
101
+ text_node :description, 'description', :optional => true
102
+ text_node :unit, 'unit', :optional => true
103
+ text_node :ucd, 'ucd', :optional => true
104
+ end
105
+
106
+ # A description of a table parameter having a fixed data type.
107
+ class TableParam
108
+ boolean_node :std, '@std', 'true', 'false', :optional => true
109
+
110
+ object_node :data_type, 'dataType', :class => TableDataType, :optional => true
111
+ end
112
+
113
+ # A scalar data type name taken controlled set that corresponds closely to VOTable data types.
114
+ class VOTScalarDataType
115
+ include XML::Mapping
116
+
117
+ text_enumeration_node :value, '', :optional => false,
118
+ :choices => ['boolean', 'bit', 'unsignedByte', 'short', 'int', 'long',
119
+ 'char', 'unicodeChar', 'float', 'double', 'floatComplex',
120
+ 'doubleComplex', 'string']
121
+ end
122
+
123
+ # A (VOTable-supported) data type
124
+ class TableDataType
125
+ object_node :arraysize, '@arraysize', :class => ArrayShape, :optional => true
126
+ end
127
+
128
+ # A description of a table and its columns.
129
+ class Table
130
+ include XML::Mapping
131
+
132
+ text_node :name, 'name', :optional => true
133
+ text_node :description, 'description', :optional => true
134
+ text_node :role, '@role', :optional => true
135
+
136
+ array_node :columns, 'column', :class => TableParam, :optional => true, :default_values => []
137
+ end
138
+
139
+ # A description of standard space-time coordinate systems, positions, and regions.
140
+ # We need a full STC description to use this...
141
+ class StandardSTC
142
+ #array_node :stc_resource_profile, 'STCResourceProfile', :class => STC::STCResourceProfile,
143
+ # :optional => true, :default_values => []
144
+ end
145
+
146
+ # A service for accessing astronomical data.
147
+ class DataService
148
+ object_node :coverage, 'coverage', :class => Coverage, :optional => true
149
+
150
+ array_node :facilities, 'facility', :class => VOResource::V1_0::ResourceName, :optional => true, :default_values => []
151
+ array_node :instruments, 'instrument', :class => VOResource::V1_0::ResourceName, :optional => true, :default_values => []
152
+ end
153
+
154
+ # A service invoked via an HTTP Query (either Get or Post) with a set of arguments consisting of keyword name-value pairs.
155
+ class ParamHTTP
156
+ text_node :result_type, 'resultType', :optional => false
157
+
158
+ array_node :query_type, 'queryType', :class => HTTPQueryType, :optional => true, :default_values => []
159
+ array_node :param, 'param', :class => InputParam, :optional => true, :default_values => []
160
+ end
161
+
162
+ # The type of HTTP request, either GET or POST.
163
+ class HTTPQueryType
164
+ include XML::Mapping
165
+
166
+ text_enumeration_node :value, '', :optional => false,
167
+ :choices => ['GET', 'POST']
168
+ end
169
+
170
+ # A description of a service or function parameter having a fixed data type.
171
+ class InputParam
172
+ boolean_node :std, '@std', 'true', 'false', :optional => true, :default => 'true'
173
+
174
+ object_node :data_type, 'dataType', :class => SimpleDataType, :optional => true
175
+ object_node :use, '@use', :class => ParamUse, :default => 'optional'
176
+ end
177
+
178
+ # The parameter is required for the application or service to work properly.
179
+ class ParamUse
180
+ include XML::Mapping
181
+
182
+ text_enumeration_node :value, '', :optional => false,
183
+ :choices => ['required', 'optional', 'ignored']
184
+ end
185
+
186
+ # A scalar data type name taken from a small controlled set that does not imply a size nor precise format.
187
+ class SimpleScalarDataType
188
+ include XML::Mapping
189
+
190
+ text_enumeration_node :value, '', :optional => false,
191
+ :choices => ['integer', 'real', 'complex', 'boolean', 'char', 'string']
192
+ end
193
+
194
+ # A simple data type that does not imply a size nor precise format.
195
+ class SimpleDataType
196
+ object_node :arraysize, '@arraysize', :class => ArrayShape, :optional => true
197
+ end
198
+
199
+ # A service that interacts with one or more specified tables having some coverage of the sky, time, and/or frequency.
200
+ class CatalogService
201
+ array_node :tables, 'table', :class => Table, :optional => true, :default_values => []
202
+ end
203
+
204
+ # A service that returns or otherwise interacts with one or more specified tables.
205
+ class TableService
206
+ array_node :facilities, 'facility', :class => VOResource::V1_0::ResourceName, :optional => true, :default_values => []
207
+ array_node :instruments, 'instrument', :class => VOResource::V1_0::ResourceName, :optional => true, :default_values => []
208
+ array_node :tables, 'table', :class => Table, :optional => true, :default_values => []
209
+ end
210
+
211
+ class Waveband
212
+ include XML::Mapping
213
+
214
+ text_enumeration_node :value, '', :optional => false,
215
+ :choices => ['Radio', 'Millimeter', 'Infrared', 'Optical', 'UV', 'EUV', 'X-ray', 'Gamma-ray']
216
+ end
217
+
218
+ end
219
+ end
220
+ end
221
+ end
@@ -0,0 +1,4 @@
1
+ require 'rubygems'
2
+ require 'xml/mapping'
3
+
4
+ require 'voruby/loader'
@@ -0,0 +1,9 @@
1
+ require 'voruby/resources/voregistry/voregistry_v1_0'
2
+
3
+ module VORuby
4
+ module Resources
5
+ module VORegistry
6
+ #include VORegistry::V1_0
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,40 @@
1
+ require 'voruby/resources/voregistry/loader'
2
+ require 'voruby/resources/voresource/voresource_v0_9'
3
+
4
+ include VORuby::Resources::VOResource::V0_9
5
+
6
+ module VORuby
7
+ module Resources
8
+ module VORegistry
9
+ module V0_2
10
+
11
+ # Forward declarations
12
+ class RegistryType < ServiceType; end
13
+ class Registry < RegistryType; end
14
+ class ManagedAuthority < AuthorityIDType; end
15
+ class AuthorityType < ResourceType; end
16
+ class Authority < AuthorityType; end
17
+ class ManagingOrg < IdentifierType; end
18
+
19
+ # A service that provides access to descriptions of resources.
20
+ class Registry; end
21
+ class RegistryType
22
+ array_node :managed_authorities, 'ManagedAuthority', :class => ManagedAuthority, :optional => false
23
+ end
24
+
25
+ # An authority identifier managed by a registry.
26
+ class ManageAuthority; end
27
+
28
+ # A naming authority; an assertion of control over a namespace represented by an authority identifier.
29
+ class Authority; end
30
+ class AuthorityType
31
+ object_node :managing_org, 'ManagingOrg', :class => ManagingOrg, :optional => true
32
+ end
33
+
34
+ # A reference to an organization that manages something.
35
+ class ManagingOrg; end
36
+
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,30 @@
1
+ require 'voruby/resources/voregistry/loader'
2
+ require 'voruby/resources/voresource/voresource_v0_10'
3
+
4
+ include VORuby::Resources::VOResource::V0_10
5
+
6
+ module VORuby
7
+ module Resources
8
+ module VORegistry
9
+ module V0_3
10
+
11
+ # Forward declarations
12
+ class Registry < Service; end
13
+ class Authority < Resource; end
14
+
15
+ # A service that provides access to descriptions of resources.
16
+ class Registry
17
+ # an authority identifier managed by a registry
18
+ array_node :managed_authorities, 'managedAuthority', :class => AuthorityID, :optional => true, :default_value => []
19
+ end
20
+
21
+ # A naming authority; an assertion of control over a namespace represented by an authority identifier.
22
+ class Authority
23
+ # the organization that manages or owns the this authority
24
+ object_node :managing_org, 'managingOrg', :class => ResourceName, :optional => true
25
+ end
26
+
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,86 @@
1
+ require 'voruby/resources/voregistry/loader'
2
+ require 'voruby/resources/voresource/voresource_v1_0'
3
+
4
+ include VORuby::Resources::VOResource::V1_0
5
+
6
+ module VORuby
7
+ module Resources
8
+ module VORegistry
9
+ module V1_0
10
+
11
+ # Forward declarations
12
+ class Registry < Service; end
13
+ class RegCapRestriction < Capability; end
14
+ class Harvest < RegCapRestriction; end
15
+ class ExtensionSearchSupport; end
16
+ class OptionalProtocol; end
17
+ class OAIHTTP < Interface; end
18
+ class OAISOAP < WebService; end
19
+ class Authority < Resource; end
20
+ class Search < RegCapRestriction; end
21
+
22
+ # A service that provides access to descriptions of resources.
23
+ class Registry
24
+ boolean_node :full, 'full', 'true', 'false', :optional => true, :default_value => false
25
+
26
+ array_node :managed_authorities, 'managedAuthority', :class => AuthorityID,
27
+ :optional => true, :default_values => []
28
+ end
29
+
30
+ # An abstract capability that fixes the standardID to the IVOA ID for the Registry standard.
31
+ class RegCapRestriction
32
+ def standard_id=(id)
33
+ @standard_id = URI.parse('ivo://ivoa.net/std/Registry')
34
+ end
35
+ end
36
+
37
+ # The capabilities of the Registry Harvest implementation.
38
+ class Harvest
39
+ numeric_node :max_records, 'maxRecords', :optional => false, :default_value => 0
40
+ end
41
+
42
+ # The level of support provided for searching against metadata defined in a legal VOResource extension schema.
43
+ class ExtensionSearchSupport
44
+ include XML::Mapping
45
+
46
+ text_enumeration_node :value, '', :optional => false,
47
+ :choices => ['core', 'partial', 'full']
48
+ end
49
+
50
+ # The name of an optional advanced search protocol supported.
51
+ class OptionalProtocol
52
+ include XML::Mapping
53
+
54
+ text_enumeration_node :value, '', :optional => false,
55
+ :choices => ['XQuery']
56
+ end
57
+
58
+ # A description of the standard OAI PMH interface using HTTP (GET or POST) queries.
59
+ class OAIHTTP
60
+ #
61
+ end
62
+
63
+ # A description of the standard OAI PMH interface using a SOAP Web Service interface.
64
+ class OAISOAP
65
+ #
66
+ end
67
+
68
+ # A naming authority; an assertion of control over a namespace represented by an authority identifier.
69
+ class Authority
70
+ object_node :managing_org, 'managingOrg', :class => ResourceName, :optional => true
71
+ end
72
+
73
+ # The capabilities of the Registry Search implementation.
74
+ class Search
75
+ numeric_node :max_records, 'maxRecords', :optional => false, :default_value => 0
76
+
77
+ object_node :extension_search_support, 'extensionSearchSupport', :class => ExtensionSearchSupport, :optional => false
78
+
79
+ array_node :optional_protocol, 'optionalProtocol', :class => OptionalProtocol,
80
+ :optional => true, :default_values => []
81
+ end
82
+
83
+ end
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,17 @@
1
+ require 'rubygems'
2
+ require 'xml/mapping'
3
+ require 'uri'
4
+
5
+ require 'voruby/resources/loader'
6
+ require 'voruby/resources/nodes'
7
+
8
+ # Register specialized node types.
9
+ XML::Mapping.add_node_class(VORuby::VOResource::Mapping::DateTimeNode)
10
+ XML::Mapping.add_node_class(VORuby::VOResource::Mapping::JulianDateTimeNode)
11
+ XML::Mapping.add_node_class(VORuby::VOResource::Mapping::UtcTimestampNode)
12
+ XML::Mapping.add_node_class(VORuby::VOResource::Mapping::UtcDateTimeNode)
13
+ XML::Mapping.add_node_class(VORuby::VOResource::Mapping::TextEnumerationNode)
14
+ XML::Mapping.add_node_class(VORuby::VOResource::Mapping::NumericEnumerationNode)
15
+ XML::Mapping.add_node_class(VORuby::VOResource::Mapping::FullObjectNode)
16
+ XML::Mapping.add_node_class(VORuby::VOResource::Mapping::FullArrayNode)
17
+ XML::Mapping.add_node_class(VORuby::VOResource::Mapping::TextFloatArrayNode)
@@ -0,0 +1,9 @@
1
+ require 'voruby/resources/voresource/voresource_v1_0'
2
+
3
+ module VORuby
4
+ module Resources
5
+ module VOResource
6
+ #include VOResource::V1_0
7
+ end
8
+ end
9
+ end