voruby 1.1.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (257) hide show
  1. data/Rakefile.rb +107 -224
  2. data/lib/misc.rb +1 -0
  3. data/lib/misc/misc.rb +60 -0
  4. data/lib/misc/propertyfile.rb +31 -0
  5. data/lib/symphony.rb +1 -0
  6. data/lib/symphony/symphony.rb +247 -0
  7. data/lib/voruby.rb +186 -0
  8. data/lib/voruby/active_votable/active_votable.rb +468 -347
  9. data/lib/voruby/adql/1.0/adql.rb +2418 -0
  10. data/lib/voruby/adql/support.rb +2 -0
  11. data/lib/voruby/misc.rb +351 -0
  12. data/lib/voruby/misc/connection_monitor.rb +97 -0
  13. data/lib/voruby/misc/libxml_ext.rb +121 -0
  14. data/lib/voruby/misc/rexml_ext.rb +223 -0
  15. data/lib/voruby/resolver/resolver.rb +12 -0
  16. data/lib/voruby/resolver/sesame.rb +299 -0
  17. data/lib/voruby/sky_query/sky_query.rb +192 -0
  18. data/lib/voruby/stc/1.10/coords.rb +2272 -0
  19. data/lib/voruby/stc/1.10/region.rb +892 -0
  20. data/lib/voruby/stc/1.10/stc.rb +3271 -0
  21. data/lib/voruby/stc/1.30/stc.rb +8666 -0
  22. data/lib/voruby/stc/support.rb +2 -0
  23. data/lib/voruby/ucd/ucd.rb +173 -0
  24. data/lib/voruby/voevent/1.1/voevent.rb +1124 -0
  25. data/lib/voruby/voevent/support.rb +5 -0
  26. data/lib/voruby/votable/1.0/votable.rb +1807 -0
  27. data/lib/voruby/votable/1.1/votable.rb +2100 -0
  28. data/lib/voruby/votable/votable.rb +305 -0
  29. data/lib/voruby/wesix/wesix.rb +491 -0
  30. data/lib/voruby/xlink/1.2/xlink.rb +21 -0
  31. data/test/voruby/active_votable/complex.vot +60 -0
  32. data/test/voruby/active_votable/error.vot +6 -0
  33. data/test/voruby/active_votable/large.vot +130040 -0
  34. data/test/voruby/active_votable/simple1.vot +38 -0
  35. data/test/voruby/active_votable/simple2.vot +38 -0
  36. data/test/voruby/active_votable/test.rb +193 -0
  37. data/test/voruby/adql/1.0/adql-alias.sql +1 -0
  38. data/test/voruby/adql/1.0/adql-alias.xml +26 -0
  39. data/test/voruby/adql/1.0/adql-avg.sql +1 -0
  40. data/test/voruby/adql/1.0/adql-avg.xml +31 -0
  41. data/test/voruby/adql/1.0/adql-circle.sql +1 -0
  42. data/test/voruby/adql/1.0/adql-circle.xml +46 -0
  43. data/test/voruby/adql/1.0/adql-expr.sql +1 -0
  44. data/test/voruby/adql/1.0/adql-expr.xml +34 -0
  45. data/test/voruby/adql/1.0/adql-function.sql +1 -0
  46. data/test/voruby/adql/1.0/adql-function.xml +41 -0
  47. data/test/voruby/adql/1.0/adql-group.sql +1 -0
  48. data/test/voruby/adql/1.0/adql-group.xml +51 -0
  49. data/test/voruby/adql/1.0/adql-having.sql +1 -0
  50. data/test/voruby/adql/1.0/adql-having.xml +25 -0
  51. data/test/voruby/adql/1.0/adql-like.sql +1 -0
  52. data/test/voruby/adql/1.0/adql-like.xml +17 -0
  53. data/test/voruby/adql/1.0/adql-order.sql +1 -0
  54. data/test/voruby/adql/1.0/adql-order.xml +37 -0
  55. data/test/voruby/adql/1.0/adql-simple.sql +1 -0
  56. data/test/voruby/adql/1.0/adql-simple.xml +12 -0
  57. data/test/voruby/adql/1.0/adql-top.sql +1 -0
  58. data/test/voruby/adql/1.0/adql-top.xml +33 -0
  59. data/test/voruby/adql/1.0/test.rb +2220 -0
  60. data/test/voruby/misc/test.rb +32 -0
  61. data/test/voruby/resolver/sesame/test.rb +56 -0
  62. data/test/voruby/sky_query/test.rb +107 -0
  63. data/test/voruby/stc/1.10/coords_test.rb +3704 -0
  64. data/test/voruby/stc/1.10/region_test.rb +993 -0
  65. data/test/voruby/stc/1.10/stc-catalog-entry-location.xml +112 -0
  66. data/test/voruby/stc/1.10/stc-obs-data-location.xml +126 -0
  67. data/test/voruby/stc/1.10/stc-region-circle.xml +5 -0
  68. data/test/voruby/stc/1.10/stc-region-convex.xml +11 -0
  69. data/test/voruby/stc/1.10/stc-region-convexhull.xml +5 -0
  70. data/test/voruby/stc/1.10/stc-region-ellipse.xml +7 -0
  71. data/test/voruby/stc/1.10/stc-region-intersection.xml +25 -0
  72. data/test/voruby/stc/1.10/stc-region-negation.xml +7 -0
  73. data/test/voruby/stc/1.10/stc-region-polygon.xml +13 -0
  74. data/test/voruby/stc/1.10/stc-region-sector.xml +6 -0
  75. data/test/voruby/stc/1.10/stc-region-union.xml +25 -0
  76. data/test/voruby/stc/1.10/stc-resource-profile.xml +60 -0
  77. data/test/voruby/stc/1.10/stc-search-location.xml +54 -0
  78. data/test/voruby/stc/1.10/stc_test.rb +4626 -0
  79. data/test/voruby/stc/1.30/stc-catalog-entry-location.xml +210 -0
  80. data/test/voruby/stc/1.30/stc-obs-data-location-arecibo.xml +353 -0
  81. data/test/voruby/stc/1.30/stc-obs-data-location-fits.xml +250 -0
  82. data/test/voruby/stc/1.30/stc-obs-data-location-xlink.xml +63 -0
  83. data/test/voruby/stc/1.30/stc-obs-data-location.xml +216 -0
  84. data/test/voruby/stc/1.30/stc-resource-profile-unusual-ref-pos.xml +39 -0
  85. data/test/voruby/stc/1.30/stc-resource-profile.xml +129 -0
  86. data/test/voruby/stc/1.30/stc-search-location-arecibo.xml +86 -0
  87. data/test/voruby/stc/1.30/stc-search-location.xml +101 -0
  88. data/test/voruby/stc/1.30/test.rb +6274 -0
  89. data/test/voruby/ucd/test.rb +48 -0
  90. data/test/voruby/voevent/1.1/test.rb +812 -0
  91. data/test/{voevent/voevent_v1_1.xml → voruby/voevent/1.1/voevent.xml} +2 -2
  92. data/test/voruby/voregistry/0.3/test.rb +137 -0
  93. data/test/voruby/votable/1.0/test.rb +714 -0
  94. data/test/voruby/votable/1.0/votable.basic.xml +660 -0
  95. data/test/voruby/votable/1.0/votable.html +86 -0
  96. data/test/voruby/votable/1.0/votable.ns.xml +56 -0
  97. data/test/voruby/votable/1.1/test.rb +785 -0
  98. data/test/voruby/votable/1.1/votable.basic.xml +38 -0
  99. data/test/voruby/votable/1.1/votable.html +86 -0
  100. data/test/voruby/votable/1.1/votable.ns.xml +56 -0
  101. data/test/voruby/votable/test.rb +15 -0
  102. data/test/voruby/wesix/test.rb +268 -0
  103. data/test/voruby/wesix/testr.fits +28 -0
  104. metadata +234 -247
  105. data/REQUIREMENTS +0 -6
  106. data/lib/voruby/active_votable/loader.rb +0 -5
  107. data/lib/voruby/adql/adql.rb +0 -2787
  108. data/lib/voruby/adql/ext.rb +0 -14
  109. data/lib/voruby/adql/loader.rb +0 -6
  110. data/lib/voruby/adql/operations.rb +0 -54
  111. data/lib/voruby/adql/parser.rb +0 -160
  112. data/lib/voruby/adql/transforms.rb +0 -573
  113. data/lib/voruby/ext.rb +0 -17
  114. data/lib/voruby/loader.rb +0 -4
  115. data/lib/voruby/misc/propertyfile.rb +0 -36
  116. data/lib/voruby/plastic/applications.rb +0 -174
  117. data/lib/voruby/plastic/constants.rb +0 -30
  118. data/lib/voruby/plastic/loader.rb +0 -10
  119. data/lib/voruby/plastic/plastic.rb +0 -1
  120. data/lib/voruby/resources/conesearch/conesearch.rb +0 -9
  121. data/lib/voruby/resources/conesearch/conesearch_v0_2.rb +0 -55
  122. data/lib/voruby/resources/conesearch/conesearch_v0_3.rb +0 -50
  123. data/lib/voruby/resources/conesearch/conesearch_v1_0.rb +0 -72
  124. data/lib/voruby/resources/conesearch/loader.rb +0 -4
  125. data/lib/voruby/resources/loader.rb +0 -50
  126. data/lib/voruby/resources/nodes.rb +0 -190
  127. data/lib/voruby/resources/openskynode/loader.rb +0 -4
  128. data/lib/voruby/resources/openskynode/openskynode.rb +0 -9
  129. data/lib/voruby/resources/openskynode/openskynode_v0_1.rb +0 -54
  130. data/lib/voruby/resources/sia/loader.rb +0 -5
  131. data/lib/voruby/resources/sia/sia.rb +0 -9
  132. data/lib/voruby/resources/sia/sia_v0_6.rb +0 -90
  133. data/lib/voruby/resources/sia/sia_v0_7.rb +0 -89
  134. data/lib/voruby/resources/sia/sia_v1_0.rb +0 -122
  135. data/lib/voruby/resources/stsci.rb +0 -59
  136. data/lib/voruby/resources/vodataservice/coverage_v0_2.rb +0 -195
  137. data/lib/voruby/resources/vodataservice/coverage_v0_3.rb +0 -158
  138. data/lib/voruby/resources/vodataservice/loader.rb +0 -5
  139. data/lib/voruby/resources/vodataservice/vodataservice.rb +0 -9
  140. data/lib/voruby/resources/vodataservice/vodataservice_v0_4.rb +0 -189
  141. data/lib/voruby/resources/vodataservice/vodataservice_v0_5.rb +0 -163
  142. data/lib/voruby/resources/vodataservice/vodataservice_v1_0.rb +0 -221
  143. data/lib/voruby/resources/voregistry/loader.rb +0 -4
  144. data/lib/voruby/resources/voregistry/voregistry.rb +0 -9
  145. data/lib/voruby/resources/voregistry/voregistry_v0_2.rb +0 -40
  146. data/lib/voruby/resources/voregistry/voregistry_v0_3.rb +0 -30
  147. data/lib/voruby/resources/voregistry/voregistry_v1_0.rb +0 -86
  148. data/lib/voruby/resources/voresource/loader.rb +0 -17
  149. data/lib/voruby/resources/voresource/voresource.rb +0 -9
  150. data/lib/voruby/resources/voresource/voresource_v0_10.rb +0 -327
  151. data/lib/voruby/resources/voresource/voresource_v0_9.rb +0 -405
  152. data/lib/voruby/resources/voresource/voresource_v1_0.rb +0 -230
  153. data/lib/voruby/services/ext.rb +0 -11
  154. data/lib/voruby/services/gestalt/footprint.rb +0 -95
  155. data/lib/voruby/services/gestalt/wcs_fixer.rb +0 -105
  156. data/lib/voruby/services/gestalt/wesix.rb +0 -155
  157. data/lib/voruby/services/loader.rb +0 -7
  158. data/lib/voruby/services/registry/registry.rb +0 -53
  159. data/lib/voruby/services/resolver/resolver.rb +0 -35
  160. data/lib/voruby/services/schema/schema.rb +0 -644
  161. data/lib/voruby/sesame/loader.rb +0 -6
  162. data/lib/voruby/sesame/sesame_v1_0.rb +0 -64
  163. data/lib/voruby/simple/loader.rb +0 -6
  164. data/lib/voruby/simple/parameters.rb +0 -196
  165. data/lib/voruby/simple/sap.rb +0 -446
  166. data/lib/voruby/spacetime/loader.rb +0 -3
  167. data/lib/voruby/spacetime/spacetime.rb +0 -607
  168. data/lib/voruby/stc/coords_v1_20.rb +0 -900
  169. data/lib/voruby/stc/loader.rb +0 -55
  170. data/lib/voruby/stc/region_v1_20.rb +0 -274
  171. data/lib/voruby/stc/stc_v1_20.rb +0 -1196
  172. data/lib/voruby/util.rb +0 -27
  173. data/lib/voruby/voevent/loader.rb +0 -7
  174. data/lib/voruby/voevent/voevent_v1_0.rb +0 -213
  175. data/lib/voruby/voevent/voevent_v1_1.rb +0 -196
  176. data/lib/voruby/votables/chandra.rb +0 -373
  177. data/lib/voruby/votables/data.rb +0 -179
  178. data/lib/voruby/votables/galex.rb +0 -377
  179. data/lib/voruby/votables/int.rb +0 -354
  180. data/lib/voruby/votables/libxml_parser.rb +0 -411
  181. data/lib/voruby/votables/libxml_votable.rb +0 -67
  182. data/lib/voruby/votables/loader.rb +0 -10
  183. data/lib/voruby/votables/meta.rb +0 -763
  184. data/lib/voruby/votables/misc.rb +0 -51
  185. data/lib/voruby/votables/nsa.rb +0 -410
  186. data/lib/voruby/votables/rexml_parser.rb +0 -408
  187. data/lib/voruby/votables/rexml_votable.rb +0 -67
  188. data/lib/voruby/votables/sdss.rb +0 -356
  189. data/lib/voruby/votables/transforms.rb +0 -388
  190. data/lib/voruby/votables/tree.rb +0 -45
  191. data/lib/voruby/votables/types.rb +0 -391
  192. data/lib/voruby/votables/votable.rb +0 -687
  193. data/test/active_votable/database.yml +0 -6
  194. data/test/active_votable/test.vot +0 -168492
  195. data/test/active_votable/unittest.rb +0 -41
  196. data/test/adql/test1.adql +0 -49
  197. data/test/adql/test2.adql +0 -51
  198. data/test/adql/test3.adql +0 -81
  199. data/test/adql/test4.adql +0 -53
  200. data/test/adql/test5.adql +0 -55
  201. data/test/adql/test6.adql +0 -18
  202. data/test/adql/test7.adql +0 -48
  203. data/test/adql/unittest.rb +0 -1672
  204. data/test/plastic/test.rb +0 -44
  205. data/test/plastic/test.vot +0 -5385
  206. data/test/plastic/unittest.rb +0 -66
  207. data/test/resources/conesearch/conesearch_v0_3.xml +0 -31
  208. data/test/resources/conesearch/conesearch_v1_0.xml +0 -86
  209. data/test/resources/conesearch/unittest_v0_3.rb +0 -22
  210. data/test/resources/conesearch/unittest_v1_0.rb +0 -24
  211. data/test/resources/openskynode/open_sky_node_v0_1.xml +0 -32
  212. data/test/resources/openskynode/unittest_v0_1.rb +0 -31
  213. data/test/resources/sia/simple_image_access_v0_7.xml +0 -36
  214. data/test/resources/sia/simple_image_access_v1_0.xml +0 -122
  215. data/test/resources/sia/unittest_v0_7.rb +0 -24
  216. data/test/resources/sia/unittest_v1_0.rb +0 -29
  217. data/test/resources/stsci.xml +0 -336
  218. data/test/resources/unittest_stsci.rb +0 -25
  219. data/test/resources/vodataservice/catalog_service_resource_v1_0.xml +0 -128
  220. data/test/resources/vodataservice/data_collection_resource_v0_5.xml +0 -54
  221. data/test/resources/vodataservice/data_collection_resource_v1_0.xml +0 -117
  222. data/test/resources/vodataservice/data_service_resource_v1_0.xml +0 -115
  223. data/test/resources/vodataservice/sky_service_resource_v0_10.xml +0 -45
  224. data/test/resources/vodataservice/table_service_resource_v1_0.xml +0 -122
  225. data/test/resources/vodataservice/tabular_sky_service_resource_v0_10.xml +0 -60
  226. data/test/resources/vodataservice/unittest_v0_5.rb +0 -126
  227. data/test/resources/vodataservice/unittest_v1_0.rb +0 -151
  228. data/test/resources/voregistry/authority_resource_v0_3.xml +0 -20
  229. data/test/resources/voregistry/authority_resource_v1_0.xml +0 -82
  230. data/test/resources/voregistry/registry_service_v0_3.xml +0 -20
  231. data/test/resources/voregistry/registry_service_v1_0.xml +0 -107
  232. data/test/resources/voregistry/unittest_v0_3.rb +0 -31
  233. data/test/resources/voregistry/unittest_v1_0.rb +0 -34
  234. data/test/resources/voresource/organisation_resource_v1_0.xml +0 -90
  235. data/test/resources/voresource/resource_organisation_v0_10.xml +0 -22
  236. data/test/resources/voresource/resource_service_v0_10.xml +0 -19
  237. data/test/resources/voresource/resource_v0_10.xml +0 -19
  238. data/test/resources/voresource/resource_v1_0.xml +0 -79
  239. data/test/resources/voresource/service_resource_v1_0.xml +0 -91
  240. data/test/resources/voresource/unittest_v0_10.rb +0 -61
  241. data/test/resources/voresource/unittest_v0_9.rb +0 -4
  242. data/test/resources/voresource/unittest_v1_0.rb +0 -190
  243. data/test/services/gestalt/unittest.rb +0 -74
  244. data/test/services/registry/unittest.rb +0 -34
  245. data/test/services/resolver/unittest.rb +0 -38
  246. data/test/simple/unittest.rb +0 -46
  247. data/test/spacetime/unittest.rb +0 -39
  248. data/test/stc/catalog_entry_location_v1_20.xml +0 -112
  249. data/test/stc/obs_data_location_v1_20.xml +0 -108
  250. data/test/stc/search_location_v1_20.xml +0 -54
  251. data/test/stc/stc_resource_profile_v1_20.xml +0 -60
  252. data/test/stc/unittest_v1_20.rb +0 -620
  253. data/test/voevent/unittest_v1_0.rb +0 -79
  254. data/test/voevent/unittest_v1_1.rb +0 -70
  255. data/test/voevent/voevent_v1_0.xml +0 -96
  256. data/test/votables/test.vot +0 -366
  257. data/test/votables/unittest.rb +0 -54
@@ -1,27 +0,0 @@
1
- module VORuby
2
- module Utilities
3
-
4
- def self.save_to(file, in_string)
5
- out_file = File.new(file, 'w+')
6
- out_file.puts(in_string)
7
-
8
- return out_file
9
- end
10
-
11
- def self.subclass_names(klass, preserve_ns=true)
12
- subclasses = []
13
- ObjectSpace.each_object(Module){ |c|
14
- if c.ancestors.include?(klass)
15
- if !preserve_ns
16
- subclasses << c.name.split('::')[-1]
17
- else
18
- subclasses << c.name
19
- end
20
- end
21
- }
22
-
23
- return subclasses
24
- end
25
-
26
- end
27
- end
@@ -1,7 +0,0 @@
1
- require 'rubygems'
2
- require 'xml/mapping'
3
-
4
- require 'voruby/loader'
5
-
6
- require 'voruby/resources/nodes'
7
- require 'voruby/resources/voresource/voresource_v0_10'
@@ -1,213 +0,0 @@
1
- require 'voruby/voevent/loader'
2
-
3
- require 'voruby/stc/stc_v1_20'
4
- include VORuby::STC::V1_20
5
-
6
- module VORuby
7
- module VOEvent
8
- module V1_0
9
-
10
- # Forward declarations
11
- class VOEvent; end
12
- class Who; end
13
- class Contact; end
14
- class Communication; end
15
- class What; end
16
- class Param; end
17
- class Group; end
18
- class WhereWhen; end
19
- class How; end
20
- class Why; end
21
- class Name; end
22
- class Concept; end
23
- class Inference; end
24
- class Citations; end
25
- class EventID < VORuby::Resources::VOResource::V0_10::AnyURI; end
26
- class Description; end
27
- class Reference; end
28
-
29
- # VOEvent is the root element for describing observations
30
- # of immediate astronomical events. For more information, see
31
- # http://www.ivoa.net/twiki/bin/view/IVOA/IvoaVOEvent.
32
- class VOEvent
33
- include XML::Mapping
34
-
35
- text_node :version, '@version', :optional => false, :default_value => '1.0'
36
-
37
- text_enumeration_node :role, '@role', :optional => true, :default_value => 'observation',
38
- :choices => ['observation', 'prediction', 'test']
39
-
40
- object_node :who, 'Who', :class => Who, :optional => true
41
- object_node :what, 'What', :class => What, :optional => true
42
- object_node :where_when, 'WhereWhen', :class => WhereWhen, :optional => true
43
- object_node :how, 'How', :class => How, :optional => true
44
- object_node :why, 'Why', :class => Why, :optional => true
45
- object_node :citations, 'Citations', :class => Citations, :optional => true
46
- object_node :reference, 'Reference', :class => Reference, :optional => true
47
- object_node :voevent_id, '@id', :class => VORuby::Resources::VOResource::V0_10::AnyURI, :optional => false
48
- end
49
-
50
- # Curation metadata.
51
- class Who
52
- include XML::Mapping
53
-
54
- date_time_node :date, 'Date', :optional => false
55
-
56
- array_node :publisher_ids, 'PublisherID', :class => VORuby::Resources::VOResource::V0_10::AnyURI, :optional => false,
57
- :default_value => []
58
- array_node :descriptions, 'Description', :class => Description, :optional => true, :default_value => []
59
- array_node :references, 'Reference', :class => Reference, :optional => true, :default_value => []
60
- array_node :contacts, 'Contact', :class => Contact, :optional => true, :default_value => []
61
- end
62
-
63
- class Contact
64
- include XML::Mapping
65
-
66
- text_node :username, 'Username', :optional => true
67
- text_node :name, 'Name', :optional => true
68
- text_node :last_name, 'LastName', :optional => true
69
- text_node :first_name, 'FirstName', :optional => true
70
- text_node :institution, 'Institution', :optional => true
71
-
72
- boolean_node :principal_investigator, '@principalInvestigator', 'true', 'false', :optional => true,
73
- :default_value => 'false'
74
- boolean_node :principal_contact, '@principalContact', 'true', 'false', :optional => true,
75
- :default_value => 'false'
76
-
77
- array_node :communications, 'Communication', :class => Communication, :optional => true, :default_value => []
78
- end
79
-
80
- class Communication
81
- include XML::Mapping
82
-
83
- text_node :address_line, 'AddressLine', :optional => true
84
- text_node :country_code, 'CountryCode', :optional => true
85
- text_node :fax, 'Fax', :optional => true
86
- text_node :telephone, 'Telephone', :optional => true
87
-
88
- object_node :email, 'Email', :class => VORuby::Resources::VOResource::V0_10::AnyURI, :optional => true
89
- object_node :uri, 'Uri', :class => VORuby::Resources::VOResource::V0_10::AnyURI, :optional => true
90
- end
91
-
92
- # Event Characterization.
93
- class What
94
- include XML::Mapping
95
-
96
- array_node :params, 'Param', :class => Param, :default_value => []
97
- array_node :groups, 'Group', :class => Group, :default_value => []
98
- array_node :descriptions, 'Description', :class => Description, :default_value => []
99
- array_node :references, 'Reference', :class => Reference, :default_values => []
100
- end
101
-
102
- class Param
103
- include XML::Mapping
104
-
105
- text_node :name, '@name', :optional => false
106
- text_node :ucd, '@ucd', :optional => true
107
- text_node :value, '@value', :optional => false
108
- text_node :unit, '@unit', :optional => true
109
- end
110
-
111
- class Group
112
- include XML::Mapping
113
-
114
- text_node :name, '@name', :optional => true
115
- text_node :group_type, '@type', :optional => true
116
-
117
- array_node :params, 'Param', :class => Param, :optional => false
118
- array_node :descriptions, 'Description', :class => Description, :optional => true
119
- array_node :references, 'Reference', :class => Reference, :optional => true
120
- end
121
-
122
- # Space-Time Coordinates, uses the VO STC schema.
123
- class WhereWhen
124
- include XML::Mapping
125
-
126
- # I haven't modeled STC yet...
127
- object_node :observation_location, 'ObservationLocation', :class => ObservationLocationType,
128
- :optional => true
129
-
130
- object_node :description, 'Description', :class => Description, :optional => true
131
- object_node :reference, 'Reference', :class => Reference, :optional => true
132
- end
133
-
134
- # Instrument Configuration, references to RTML documents.
135
- class How
136
- include XML::Mapping
137
-
138
- array_node :descriptions, 'Description', :class => Description, :optional => true, :default_value => []
139
- array_node :references, 'Reference', :class => Reference, :optional => true, :default_value => []
140
- end
141
-
142
- # Initial Scientific Assessment.
143
- class Why
144
- include XML::Mapping
145
-
146
- numeric_node :importance, '@importance', :optional => true
147
- date_time_node :expires, '@expires', :optional => true
148
-
149
- array_node :names, 'Name', :class => Name, :optional => false
150
- array_node :concepts, 'Concept', :class => Concept, :optional => false
151
- array_node :inferences, 'Inference', :class => Inference, :optional => true
152
- array_node :descriptions, 'Description', :class => Description, :optional => true
153
- array_node :references, 'Reference', :class => Reference, :optional => true
154
- end
155
-
156
- class Name
157
- include XML::Mapping
158
-
159
- text_node :value, '', :optional => false
160
- end
161
-
162
- class Concept
163
- include XML::Mapping
164
-
165
- text_node :value, '', :optional => false
166
- end
167
-
168
- class Inference
169
- include XML::Mapping
170
-
171
- numeric_node :probability, '@probability', :optional => true
172
- text_node :relation, '@relation', :optional => true
173
-
174
- array_node :names, 'Name', :class => Name, :optional => false
175
- array_node :concepts, 'Concept', :class => Concept, :optional => false
176
- array_node :descriptions, 'Description', :class => Description, :optional => true
177
- array_node :references, 'Reference', :class => Reference, :optional => true
178
- end
179
-
180
- # Follow-up Observations.
181
- class Citations
182
- include XML::Mapping
183
-
184
- array_node :event_ids, 'EventID', :class => EventID, :optional => false
185
- array_node :descriptions, 'Description', :class => Description, :optional => true
186
- array_node :references, 'Reference', :class => Reference, :optional => true
187
- end
188
-
189
- class EventID
190
- text_enumeration_node :cite, '@cite', :optional => false,
191
- :choices => ['followup', 'supercedes', 'retraction']
192
- end
193
-
194
- # Human Oriented Content.
195
- class Description
196
- include XML::Mapping
197
-
198
- text_node :value, '', :optional => false
199
- end
200
-
201
- # External Content.
202
- class Reference
203
- include XML::Mapping
204
-
205
- text_node :reference_type, '@type', :optional => true
206
- text_node :name, '@name', :optional => true
207
-
208
- object_node :uri, '@uri', :class => VORuby::Resources::VOResource::V0_10::AnyURI, :optional => false
209
- end
210
-
211
- end
212
- end
213
- end
@@ -1,196 +0,0 @@
1
- require 'voruby/voevent/loader'
2
-
3
- #require 'voruby/stc/stc_v1_30'
4
- #include VORuby::STC::V1_30
5
-
6
- module VORuby
7
- module VOEvent
8
- module V1_1
9
-
10
- # Forward declarations
11
- class VOEvent; end
12
- class Who; end
13
- class Author; end
14
- class What; end
15
- class Param; end
16
- class Group; end
17
- class WhereWhen; end
18
- class How; end
19
- class Why; end
20
- class Name; end
21
- class Concept; end
22
- class Inference; end
23
- class Citations; end
24
- class EventIVORN < VORuby::Resources::VOResource::V0_10::AnyURI; end
25
- class Description; end
26
- class Reference; end
27
-
28
- # VOEvent is the root element for describing observations
29
- # of immediate astronomical events. For more information, see
30
- # http://www.ivoa.net/twiki/bin/view/IVOA/IvoaVOEvent.
31
- class VOEvent
32
- include XML::Mapping
33
-
34
- text_node :version, '@version', :optional => false, :default_value => '1.1'
35
-
36
- text_enumeration_node :role, '@role', :optional => true, :default_value => 'observation',
37
- :choices => ['observation', 'prediction', 'utility', 'test']
38
-
39
- object_node :who, 'Who', :class => Who, :optional => true
40
- object_node :what, 'What', :class => What, :optional => true
41
- object_node :where_when, 'WhereWhen', :class => WhereWhen, :optional => true
42
- object_node :how, 'How', :class => How, :optional => true
43
- object_node :why, 'Why', :class => Why, :optional => true
44
- object_node :citations, 'Citations', :class => Citations, :optional => true
45
- object_node :description, 'Description', :class => Description, :optional => true
46
- object_node :reference, 'Reference', :class => Reference, :optional => true
47
- object_node :ivorn, '@ivorn', :class => VORuby::Resources::VOResource::V0_10::AnyURI, :optional => false
48
- end
49
-
50
- # Curation Metadata.
51
- class Who
52
- include XML::Mapping
53
-
54
- date_time_node :date, 'Date', :optional => false
55
-
56
- array_node :author_ivorns, 'AuthorIVORN', :class => VORuby::Resources::VOResource::V0_10::AnyURI, :optional => false
57
- array_node :descriptions, 'Description', :class => Description, :optional => true
58
- array_node :references, 'Reference', :class => Reference, :optional => true
59
- array_node :authors, 'Author', :class => Author, :optional => true
60
- end
61
-
62
- class Author
63
- include XML::Mapping
64
-
65
- text_node :title, 'title', :optional => true
66
- text_node :short_name, 'shortName', :optional => true
67
- text_node :logo_url, 'logoURL', :optional => true
68
- text_node :contact_name, 'contactName', :optional => true
69
- text_node :contact_email, 'contactEmail', :optional => true
70
- text_node :contact_phone, 'contactPhone', :optional => true
71
- text_node :contributor, 'contributor', :optional => true
72
- end
73
-
74
- # Event Characterization.
75
- class What
76
- include XML::Mapping
77
-
78
- array_node :params, 'Param', :class => Param, :optional => true, :default_value => []
79
- array_node :groups, 'Group', :class => Group, :optional => true, :default_value => []
80
- array_node :descriptions, 'Description', :class => Description, :optional => true, :default_value => []
81
- array_node :references, 'Reference', :class => Reference, :optional => true, :default_value => []
82
- end
83
-
84
- class Param
85
- include XML::Mapping
86
-
87
- text_node :name, '@name', :optional => false
88
- text_node :ucd, '@ucd', :optional => true
89
- text_node :value, '@value', :optional => false
90
- text_node :unit, '@unit', :optional => true
91
- end
92
-
93
- class Group
94
- include XML::Mapping
95
-
96
- text_node :name, '@name', :optional => true
97
- text_node :group_type, '@type', :optional => true
98
-
99
- array_node :params, 'Param', :class => Param, :optional => true, :default_value => []
100
- array_node :descriptions, 'Description', :class => Description, :optional => true, :default_value => []
101
- array_node :references, 'Reference', :class => Reference, :optional => true, :default_value => []
102
- end
103
-
104
- # Space-Time Coordinates, uses the VO STC schema.
105
- class WhereWhen
106
- include XML::Mapping
107
-
108
- # I haven't modeled STC yet...
109
- #object_node :observation_location, 'ObservationLocation', :class => ObservationLocationType,
110
- # :optional => true
111
-
112
- object_node :description, 'Description', :class => Description, :optional => true
113
- object_node :reference, 'Reference', :class => Reference, :optional => true
114
- end
115
-
116
- # Instrument Configuration, references to RTML documents.
117
- class How
118
- include XML::Mapping
119
-
120
- array_node :descriptions, 'Description', :class => Description, :optional => true, :default_value => []
121
- array_node :references, 'Reference', :class => Reference, :optional => true, :default_value => []
122
- end
123
-
124
- # Initial Scientific Assessment.
125
- class Why
126
- include XML::Mapping
127
-
128
- numeric_node :importance, '@importance', :optional => true
129
- date_time_node :expires, '@expires', :optional => true
130
-
131
- array_node :names, 'Name', :class => Name, :optional => false
132
- array_node :concepts, 'Concept', :class => Concept, :optional => false
133
- array_node :inferences, 'Inference', :class => Inference, :optional => true
134
- array_node :descriptions, 'Description', :class => Description, :optional => true
135
- array_node :references, 'Reference', :class => Reference, :optional => true
136
- end
137
-
138
- class Name
139
- include XML::Mapping
140
-
141
- text_node :value, '', :optional => false
142
- end
143
-
144
- class Concept
145
- include XML::Mapping
146
-
147
- text_node :value, '', :optional => false
148
- end
149
-
150
- class Inference
151
- include XML::Mapping
152
-
153
- numeric_node :probability, '@probability', :optional => true
154
- text_node :relation, '@relation', :optional => true
155
-
156
- array_node :names, 'Name', :class => Name, :optional => false
157
- array_node :concepts, 'Concept', :class => Concept, :optional => false
158
- array_node :descriptions, 'Description', :class => Description, :optional => true
159
- array_node :references, 'Reference', :class => Reference, :optional => true
160
- end
161
-
162
- # Follow-up Observations.
163
- class Citations
164
- include XML::Mapping
165
-
166
- array_node :event_ivorns, 'EventIVORN', :class => EventIVORN, :optional => false
167
- array_node :descriptions, 'Description', :class => Description, :optional => true
168
- array_node :references, 'Reference', :class => Reference, :optional => true
169
- end
170
-
171
- class EventIVORN
172
- text_enumeration_node :cite, '@cite', :optional => false,
173
- :choices => ['followup', 'supersedes', 'retraction']
174
- end
175
-
176
- # Human readable text.
177
- class Description
178
- include XML::Mapping
179
-
180
- text_node :value, '', :optional => false
181
- text_node :format, '@format', :optional => true, :default_value => 'text/plain'
182
- end
183
-
184
- # External Content.
185
- class Reference
186
- include XML::Mapping
187
-
188
- text_node :name, '@name', :optional => true
189
- text_node :reference_type, '@type', :optional => true, :default_value => 'url'
190
-
191
- object_node :uri, '@uri', :class => VORuby::Resources::VOResource::V0_10::AnyURI, :optional => false
192
- end
193
-
194
- end
195
- end
196
- end
@@ -1,373 +0,0 @@
1
- # A set of classes designed to read and manipulate
2
- # especific VOTables[http://www.ivoa.net/Documents/latest/VOT.html].
3
- # This class represents a CHANDRA VOTable.
4
-
5
- require 'voruby/votables/votable'
6
-
7
- module VORuby
8
- module VOTables
9
-
10
- module VOTable
11
- class CHANDRAVOTable < VOTable
12
-
13
- # Our object's contructor
14
- # [_votable:_]
15
- # The VOTable object
16
- def initialize(votable)
17
- super(votable.id, votable.version, votable.description,
18
- votable.definitions, votable.coosys, votable.params,
19
- votable.info, votable.resources)
20
- end
21
-
22
- # Find the column number(s) associated with a Name.
23
- # Returns a list of column positions.
24
- # [_res_:]
25
- # The resource from which to extract the table in question.
26
- # [_tbl_:]
27
- # The resource from which to extract the table in question.
28
- def find_columns(name, res=0, tbl=0)
29
- columns = []
30
-
31
- col_count = 0
32
- fields = fields(res, tbl)
33
- if fields
34
- fields.each do |field|
35
- if field.name() != nil
36
- columns.push(col_count) if field.name() == name
37
- end
38
- col_count += 1
39
- end
40
- end
41
- return columns
42
- end
43
-
44
- # Find a field in CHANDRA configuration file given a key.
45
- # Returns a hash with the field's attributes
46
- # [_key_:]
47
- # The key indexing on field's attribute
48
- def find_field_in_conf_file(key)
49
- chandra_field = {'id'=> nil, 'name'=> nil, 'ucd'=> nil}
50
-
51
- if key != nil
52
- CHANDRA_ARCHIVE_CONFIG.each do |archive|
53
- archive['votable_fields'].each do |field|
54
- if field['key'] == key
55
- chandra_field['id'] = field['id'] if field['id'] != 'nil'
56
- chandra_field['name'] = field['name'] if field['name'] != 'nil'
57
- chandra_field['ucd'] = field['ucd'] if field['ucd'] != 'nil'
58
- break
59
- end
60
- end
61
- end
62
- end
63
- return chandra_field
64
- end
65
-
66
- def image_access_reference_columns()
67
- access_key = find_field_in_conf_file('URL')['name']
68
-
69
- if find_columns(access_key).first != nil
70
- find_columns(access_key).first
71
- end
72
- end
73
-
74
- def image_ra_columns
75
- ra_key = find_field_in_conf_file('RA')['name']
76
-
77
- if find_columns(ra_key).first != nil
78
- find_columns(ra_key).first
79
- end
80
- end
81
-
82
- def image_dec_columns
83
- dec_key = find_field_in_conf_file('Dec')['name']
84
-
85
- if find_columns(dec_key).first != nil
86
- find_columns(dec_key).first
87
- end
88
- end
89
-
90
- def image_filter_columns
91
- #filter_key = find_field_in_conf_file('')['name']
92
-
93
- #if find_columns(filter_key).first != nil
94
- # find_columns(filter_key).first
95
- #end
96
- end
97
-
98
- def image_date_obs_columns
99
- #date_obs_key = find_field_in_conf_file('')['name']
100
-
101
- #if find_columns(date_obs_key).first != nil
102
- # find_columns(date_obs_key).first
103
- #end
104
- end
105
-
106
- def image_telescope_columns
107
- #telescope_key = find_field_in_conf_file('')['name']
108
-
109
- #if find_columns(telescope_key).first != nil
110
- # find_columns(telescope_key).first
111
- #end
112
- end
113
-
114
- def image_survey_columns
115
- survey_key = find_field_in_conf_file('Object')['name']
116
-
117
- if find_columns(survey_key).first != nil
118
- find_columns(survey_key).first
119
- end
120
- end
121
-
122
- def image_instrument_columns
123
- instrument_key = find_field_in_conf_file('Instrument')['name']
124
-
125
- if find_columns(instrument_key).first != nil
126
- find_columns(instrument_key).first
127
- end
128
- end
129
-
130
- def image_sky_columns
131
- #sky_key = find_field_in_conf_file('')['name']
132
-
133
- #if find_columns(sky_key).first != nil
134
- # find_columns(sky_key).first
135
- #end
136
- end
137
-
138
- def image_zeropoint_columns
139
- #zeropoint_key = find_field_in_conf_file('')['name']
140
-
141
- #if find_columns(zeropoint_key).first != nil
142
- # find_columns(zeropoint_key).first
143
- #end
144
- end
145
-
146
- def image_seeing_columns
147
- #seeing_key = find_field_in_conf_file('')['name']
148
-
149
- #if find_columns(seeing_key).first != nil
150
- # find_columns(seeing_key).first
151
- #end
152
- end
153
-
154
- def image_depth_columns
155
- #depth_key = find_field_in_conf_file('')['name']
156
-
157
- #if find_columns(depth_key).first != nil
158
- # find_columns(depth_key).first
159
- #end
160
- end
161
-
162
- def image_exptime_columns
163
- #exptime_key = find_field_in_conf_file('')['name']
164
-
165
- #if find_columns(exptime_key).first != nil
166
- # find_columns(exptime_key).first
167
- #end
168
- end
169
-
170
- # Create the headers for HTML table
171
- # [_access_ref_index_:]
172
- # A valid SIA VOTable will only ever have one VOX:Image_AccessReference.
173
- # [_options_:]
174
- #
175
- def create_headers(access_ref_index, options)
176
- thead, thead_2row = create_header_cart_links(options)
177
-
178
- if options[:infer_access_ref] and access_ref_index
179
- thead << "<th>#{options[:access_ref_header_label]}</th>\n"
180
- thead_2row.push('&nbsp;')
181
- end
182
-
183
- col_count = 0
184
- fields(options[:res], options[:tbl]).each do |field|
185
- field_archive = find_field_in_conf_file(field.name())
186
- field_ucd = field_archive['ucd']
187
- if options[:infer_access_ref] and col_count == access_ref_index
188
- thead_2row[1] = field_ucd if field_ucd != 'nil'
189
- else
190
- thead << "<th>#{field_archive['name']}</th>\n"
191
- if field_ucd != 'nil'
192
- thead_2row.push(field_ucd)
193
- else
194
- thead_2row.push('&nbsp')
195
- end
196
- end
197
- col_count += 1
198
- end
199
-
200
- thead << " </tr>\n"
201
-
202
- thead << "<tr>\n"
203
- thead_2row.each do |h|
204
- thead << "<th>#{h}</th>\n"
205
- end
206
- thead << "</tr>\n"
207
-
208
- thead << "</thead>"
209
-
210
- return thead
211
- end
212
-
213
- # Creates the cart parameters
214
- # [_cart_params:_]
215
- #
216
- # [_columns:_]
217
- #
218
- def create_item_cart_params(cart_params, columns)
219
- link_ref_array = []
220
-
221
- cart_params.each do |key, value|
222
- link_ref_array.push("#{key}=#{value}")
223
- end
224
-
225
- access_ref_index = image_access_reference_columns()
226
- link_ref_array.push("resource=#{CGI.escape(columns[access_ref_index].value).to_s}") if access_ref_index
227
- ra_index = image_ra_columns()
228
- link_ref_array.push("rac=#{columns[ra_index].value.to_s}") if ra_index
229
- dec_index = image_dec_columns()
230
- link_ref_array.push("decc=#{columns[dec_index].value.to_s}") if dec_index
231
- filter_index = image_filter_columns()
232
- link_ref_array.push("filter=#{columns[filter_index].value.to_s}") if filter_index
233
- date_obs_index = image_date_obs_columns()
234
- link_ref_array.push("date_obs=#{columns[date_obs_index].value.to_s}") if date_obs_index
235
- teles_index = image_telescope_columns()
236
- link_ref_array.push("telescop=#{columns[teles_index].value.to_s}") if teles_index
237
- survey_index = image_survey_columns()
238
- link_ref_array.push("survey=#{columns[survey_index].value.to_s}") if survey_index
239
- instrum_index = image_instrument_columns()
240
- link_ref_array.push("instrument=#{columns[instrum_index].value.to_s}") if instrum_index
241
- sky_index = image_sky_columns()
242
- link_ref_array.push("sky=#{columns[sky_index].value.to_s}") if sky_index
243
- zerop_index = image_zeropoint_columns()
244
- link_ref_array.push("zeropoint=#{columns[zerop_index].value.to_s}") if zerop_index
245
- seeing_index = image_seeing_columns()
246
- link_ref_array.push("seeing=#{columns[seeing_index].value.to_s}") if seeing_index
247
- depth_index = image_depth_columns()
248
- link_ref_array.push("depth=#{columns[depth_index].value.to_s}") if depth_index
249
- exptime_index = image_exptime_columns()
250
- link_ref_array.push("exptime=#{columns[exptime_index].value.to_s}") if exptime_index
251
-
252
- return link_ref_array.join('&')
253
- end
254
-
255
- # Create body for HTML table
256
- # [_access_ref_index_:]
257
- # A valid SIA VOTable will only ever have one VOX:Image_AccessReference.
258
- # [_options_:]
259
- #
260
- def create_body(access_ref_index, options)
261
- tbody = "<tbody class=\"#{options[:body_class]}\" align=\"center\">\n"
262
- row_count = 0
263
- rows_data = rows(options[:res], options[:tbl])
264
- if rows_data
265
- rows_data.each do |tr|
266
- tbody << "<tr class=\"#{options[:row_classes][row_count % 2]}\">\n"
267
-
268
- # Specially mark up the first column to link to the image.
269
- columns = tr.tds()
270
-
271
- if options[:infer_add_to_cart_ref] and access_ref_index
272
- tbody << "<td><input type=\"checkbox\" " +
273
- "id=\"checkbox_add_#{options[:cart_params][:archive]}_#{row_count.to_s}\" " +
274
- "value=\"#{create_item_cart_params(options[:cart_params], columns)}\"/></td>\n"
275
- end
276
-
277
- if options[:infer_access_ref] and access_ref_index
278
- tbody << "<td><a href=\"#{columns[access_ref_index].value}\">#{options[:access_ref_link_label]}</a></td>\n"
279
- end
280
-
281
- col_count = 0
282
- #ra_index = image_ra_columns()
283
- #dec_index = image_dec_columns()
284
- columns.each do |td|
285
- if col_count != access_ref_index
286
- #if ra_index and col_count == ra_index
287
- # tbody << "<td>#{convert_ra_to_degrees(td.value)}</td>\n"
288
- #elsif dec_index and col_count == dec_index
289
- # tbody << "<td>#{convert_dec_to_degrees(td.value)}</td>\n"
290
- #else
291
- tbody << "<td>#{td.value}</td>\n"
292
- #end
293
- end
294
- col_count += 1
295
- end
296
-
297
- tbody << "</tr>\n"
298
- row_count += 1
299
- end
300
- end
301
- tbody << "</tbody>"
302
-
303
- return tbody
304
- end
305
-
306
- # Convert the specified table in the specified resource into an HTML
307
- # table.
308
- # [_options_:]
309
- # The options for this VOTable.
310
- def to_html(options={})
311
- # The ID to assign to the HTML table as a whole.
312
- options[:id] = options[:id] || "#{votable}_#{Time.now.to_i}_#{rand(10000)}"
313
-
314
- options[:infer_add_to_cart_ref] = true if options[:infer_add_to_cart_ref] == nil
315
- options[:add_to_cart_header_label] = options[:add_to_cart_header_label] || 'Add to Cart'
316
- options[:cart_params] = {} if options[:cart_params] == nil
317
- #options[:add_to_cart_url] = options[:add_to_cart_url] || nil
318
-
319
- options[:throbber_src] = options[:throbber_src] || '/images/general/indicator.gif'
320
- options[:throbber_size] = options[:throbber_size] || '16x16'
321
- options[:throbber_class] = options[:throbber_class] || 'throbber'
322
- options[:throbber_id] = options[:throbber_id] || "#{options[:id]}_throbber_id"
323
-
324
- options[:flash_notice_class] = options[:flash_notice_class] || 'flash_notice'
325
- options[:flash_notice_id] = options[:flash_notice_id] || "#{options[:id]}_flash_notice_id"
326
-
327
- # Link the access reference URL associated with a row.
328
- options[:infer_access_ref] = true if options[:infer_access_ref] == nil
329
- #options[:retrieve_link_ref] = options[:retrieve_link_ref] || nil
330
- # For the access reference column, place this value in the header.
331
- options[:access_ref_header_label] = options[:access_ref_header_label] || 'URL'
332
- # For the access reference column, link this word.
333
- options[:access_ref_link_label] = options[:access_ref_link_label] || 'Retrieve'
334
- options[:ssl] = false if options[:ssl] == nil
335
- #options[:resource_link] = options[:resource_link]
336
-
337
- # The resource from which to extract the table in question.
338
- options[:res] = options[:res] || 0
339
- # The table inside the resource from which to extract the rows in question.
340
- options[:tbl] = options[:tbl] || 0
341
-
342
- # The boolean value to show HTML table border
343
- options[:show_border] = false if options[:show_border] == nil
344
- # The class to assign the HTML table as a whole.
345
- options[:table_class] = options[:table_class] || 'votable'
346
- # The class to assign the header of the HTML table.
347
- options[:header_class] = options[:header_class] || 'header'
348
- # The class to assign the body of the HTML table.
349
- options[:body_class] = options[:body_class] || 'body'
350
- # The class to assign the HTML table body rows.
351
- options[:row_classes] = options[:row_classes] || ['row1', 'row2']
352
-
353
- begin
354
- # A valid SIA VOTable will only ever have one VOX:Image_AccessReference.
355
- access_ref_index = image_access_reference_columns()
356
-
357
- return create_votable(create_headers(access_ref_index, options),
358
- create_body(access_ref_index, options),
359
- options)
360
-
361
- rescue Exception => e
362
- title = 'Error...'
363
- message = "VORuby error: #{e.message}<br>#{e.backtrace}"
364
- message << "<br>#{@resources[0].info[0].text().to_s()}" if @resources[0].info[0]
365
- create_message(title, message, options)
366
- end
367
- end
368
-
369
- end
370
- end
371
-
372
- end
373
- end