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,179 +0,0 @@
1
- module VORuby
2
- module VOTables
3
- module VOTable
4
-
5
- module Data
6
-
7
- # A class representing a generic stream of data.
8
- class Stream
9
- attr_reader :type, :href, :actuate, :encoding, :expires, :rights
10
-
11
- # [_href_:]
12
- # The URL of the stream (type: Type::AnyURI).
13
- # [_expires_:]
14
- # The datetime on which the stream expires. Must be parsable by
15
- # Ruby's DateTime.parse() method.
16
- # [_rights_:]
17
- # The data rights associated with the stream.
18
- # [_type_:]
19
- # The type of stream (type: Type::StreamType).
20
- # [_actuate_:]
21
- # The actuate property of the stream (type: Type::Actuate).
22
- # [_encoding_:]
23
- # The encoding of the stream (type: Type::EncodingType).
24
- def initialize(href=nil, expires=nil, rights=nil, type=Type::StreamType.new('locator'),
25
- actuate=Type::Actuate.new('onRequest'),
26
- encoding=Type::EncodingType.new('none'))
27
-
28
- Misc::TypeCheck.new(type, Type::StreamType).check()
29
- @type = type
30
-
31
- Misc::TypeCheck.new(href, Type::AnyURI).check()
32
- @href = href
33
-
34
- Misc::TypeCheck.new(actuate, Type::Actuate).check()
35
- @actuate = actuate
36
-
37
- Misc::TypeCheck.new(encoding, Type::EncodingType).check()
38
- @encoding = encoding
39
-
40
- if expires
41
- @expires = DateTime.parse(expires)
42
- else
43
- @expires = nil
44
- end
45
-
46
- @rights = rights
47
- end
48
-
49
- def to_s
50
- "{type=#{@type};href=#{@href};actuate=#{@actuate};encoding=#{encoding};" +
51
- "expires=#{@expires};rights=#{@rights}}"
52
- end
53
- end
54
-
55
- # A class representing a binary stream.
56
- class BinaryStream
57
- attr_reader :stream
58
-
59
- # [_stream_]
60
- # The basic information associated with a binary stream
61
- # (type: Stream).
62
- def initialize(stream=nil)
63
- Misc::TypeCheck.new(stream, Stream).check()
64
- @stream = stream
65
- end
66
-
67
- def to_s
68
- "{stream=#{stream}}"
69
- end
70
- end
71
-
72
- # A class representing a FITS stream.
73
- class FITSStream
74
- attr_reader :stream, :extnum
75
-
76
- # [_stream_:]
77
- # The basic stream informatin (type: Stream).
78
- # [_extnum_:]
79
- # The number of extensions in the FITS file (type Type::PositiveInteger).
80
- def initialize(stream=nil, extnum=nil)
81
- raise Misc::TypeException(stream, Stream) if stream and !stream.is_a?(Stream)
82
- Misc::TypeCheck.new(stream, Stream).check()
83
- @stream = stream
84
-
85
- Misc::TypeCheck.new(extnum, Type::PositiveInteger).check()
86
- @extnum = extnum
87
- end
88
-
89
- def to_s
90
- "{stream=#{@stream};extnum=#{extnum}}"
91
- end
92
- end
93
-
94
- # A class representing the VOTable standard TD element.
95
- class TD
96
- attr_reader :value, :encoding
97
-
98
- # [_value_:]
99
- # The value of the cell data.
100
- # [_encoding_:]
101
- # The encoding of the cell data (type: Type::EncodingType).
102
- def initialize(value=nil, encoding=Type::EncodingType.new('none'))
103
- @value = value
104
-
105
- Misc::TypeCheck.new(encoding, Type::EncodingType).check()
106
- @encoding = encoding
107
- end
108
-
109
- def to_s
110
- "{value=#{@value};encoding=#{@encoding}}"
111
- end
112
- end
113
-
114
- # A class representing the VOTable standard TR element.
115
- class TR
116
- attr_reader :tds
117
-
118
- # [_tds_:]
119
- # A list of table data belonging in the row in question.
120
- def initialize(tds=[])
121
- tds.each{ |td|
122
- Misc::TypeCheck.new(td, TD).check()
123
- }
124
- @tds = tds
125
- end
126
-
127
- def to_s
128
- tds = @tds.collect{|x| x.to_s}.join('|')
129
- "{tds=#{tds}}"
130
- end
131
- end
132
-
133
- # A class representing the VOTable standard TABLEDATA element.
134
- class TableData
135
- attr_reader :trs
136
-
137
- # [_trs_:]
138
- # A list of rows associated with the table in question.
139
- def initialize(trs=[])
140
- trs.each{ |tr|
141
- Misc::TypeCheck.new(tr, TR).check()
142
- }
143
- @trs = trs
144
- end
145
-
146
- def to_s
147
- trs = @trs.collect{|x| x.to_s}.join('|')
148
- "{trs=#{trs}}"
149
- end
150
- end
151
-
152
- # A class representing the VOTable standard DATA element.
153
- class Data
154
- attr_reader :format
155
-
156
- # [_format_:]
157
- # Where the actual data is coming from (types: FITSStream,
158
- # BinaryStream, TableData.
159
- # Currently, this class doesn't know what to do with streams.
160
- def initialize(format=nil)
161
- if format.is_a?(FITSStream) or format.is_a?(BinaryStream) or
162
- format.is_a?(TableData)
163
- @format = format
164
- else
165
- raise "Format #{format.class} is not valid. Use one of: " +
166
- "FITSStream, BinaryStream, TableData"
167
- end
168
- end
169
-
170
- def to_s
171
- "{format=#{@format}}"
172
- end
173
- end
174
-
175
- end
176
- end
177
-
178
- end
179
- end
@@ -1,377 +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 GALEX VOTable.
4
-
5
- require 'voruby/votables/votable'
6
-
7
- module VORuby
8
- module VOTables
9
- module VOTable
10
- class GALEXVOTable < VOTable
11
-
12
- # Our object's contructor
13
- # [_votable:_]
14
- # The VOTable object
15
- def initialize(votable)
16
- super(votable.id, votable.version, votable.description,
17
- votable.definitions, votable.coosys, votable.params,
18
- votable.info, votable.resources)
19
- end
20
-
21
- # Find the column number(s) associated with a Name.
22
- # Returns a list of column positions.
23
- # [_res_:]
24
- # The resource from which to extract the table in question.
25
- # [_tbl_:]
26
- # The resource from which to extract the table in question.
27
- def find_columns(name, res=0, tbl=0)
28
- columns = []
29
-
30
- col_count = 0
31
- fields = fields(res, tbl)
32
-
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
-
42
- return columns
43
- end
44
-
45
- # Find a field in GALEX configuration file given a key.
46
- # Returns a hash with the field's attributes
47
- # [_key_:]
48
- # The key indexing on field's attribute
49
- def find_field_in_conf_file(key)
50
- galex_field = {'id'=> nil, 'name'=> nil, 'ucd'=> nil}
51
-
52
- if key != nil
53
- GALEX_ARCHIVE_CONFIG.each do |archive|
54
- archive['votable_fields'].each do |field|
55
- if field['key'] == key
56
- galex_field['id'] = field['id'] if field['id'] != 'nil'
57
- galex_field['name'] = field['name'] if field['name'] != 'nil'
58
- galex_field['ucd'] = field['ucd'] if field['ucd'] != 'nil'
59
- break
60
- end
61
- end
62
- end
63
- end
64
- return galex_field
65
- end
66
-
67
- # Find the column number(s) associated with the
68
- # VOX:imageAccessReference UCD.
69
- # Returns a list of column positions.
70
- def image_access_reference_columns()
71
- ucd_access = find_field_in_conf_file('VOX:Image_AccessReference')['name']
72
-
73
- if find_columns(ucd_access).first != nil
74
- find_columns(ucd_access).first
75
- end
76
- end
77
-
78
- def image_ra_columns
79
- ucd_ra = find_field_in_conf_file('POS_EQ_RA_MAIN')['name']
80
-
81
- if find_columns(ucd_ra).first != nil
82
- find_columns(ucd_ra).first
83
- end
84
- end
85
-
86
- def image_dec_columns
87
- ucd_dec = find_field_in_conf_file('POS_EQ_DEC_MAIN')['name']
88
-
89
- if find_columns(ucd_dec).first != nil
90
- find_columns(ucd_dec).first
91
- end
92
- end
93
-
94
- def image_filter_columns
95
- ucd_filter = find_field_in_conf_file('VOX:BandPass_ID')['name']
96
-
97
- if find_columns(ucd_filter).first != nil
98
- find_columns(ucd_filter).first
99
- end
100
- end
101
-
102
- def image_date_obs_columns
103
- #ucd_date_obs = find_field_in_conf_file('')['name']
104
-
105
- #if find_columns(ucd_date_obs).first != nil
106
- # find_columns(ucd_date_obs).first
107
- #end
108
- end
109
-
110
- def image_telescope_columns
111
- #ucd_telescope = find_field_in_conf_file('')['name']
112
-
113
- #if find_columns(ucd_telescope).first != nil
114
- # find_columns(ucd_telescope).first
115
- #end
116
- end
117
-
118
- def image_survey_columns
119
- ucd_survey = find_field_in_conf_file('VOX:Image_Title')['name']
120
-
121
- if find_columns(ucd_survey).first != nil
122
- find_columns(ucd_survey).first
123
- end
124
- end
125
-
126
- def image_instrument_columns
127
- ucd_instrument = find_field_in_conf_file('VOX:INST_ID')['name']
128
-
129
- if find_columns(ucd_instrument).first != nil
130
- find_columns(ucd_instrument).first
131
- end
132
- end
133
-
134
- def image_sky_columns
135
- #ucd_sky = find_field_in_conf_file('')['name']
136
-
137
- #if find_columns(ucd_sky).first != nil
138
- # find_columns(ucd_sky).first
139
- #end
140
- end
141
-
142
- def image_zeropoint_columns
143
- #ucd_zeropoint = find_field_in_conf_file('')['name']
144
-
145
- #if find_columns(ucd_zeropoint).first != nil
146
- # find_columns(ucd_zeropoint).first
147
- #end
148
- end
149
-
150
- def image_seeing_columns
151
- #ucd_seeing = find_field_in_conf_file('')['name']
152
-
153
- #if find_columns(ucd_seeing).first != nil
154
- # find_columns(ucd_seeing).first
155
- #end
156
- end
157
-
158
- def image_depth_columns
159
- #ucd_depth = find_field_in_conf_file('')['name']
160
-
161
- #if find_columns(ucd_depth).first != nil
162
- # find_columns(ucd_depth).first
163
- #end
164
- end
165
-
166
- def image_exptime_columns
167
- #ucd_exptime = find_field_in_conf_file('')['name']
168
-
169
- #if find_columns(ucd_exptime).first != nil
170
- # find_columns(ucd_exptime).first
171
- #end
172
- end
173
-
174
- # Create the headers for HTML table
175
- # [_access_ref_index_:]
176
- # A valid SIA VOTable will only ever have one VOX:Image_AccessReference.
177
- # [_options_:]
178
- #
179
- def create_headers(access_ref_index, options)
180
- thead, thead_2row = create_header_cart_links(options)
181
-
182
- if options[:infer_access_ref] and access_ref_index
183
- thead << "<th>#{options[:access_ref_header_label]}</th>\n"
184
- thead_2row.push('&nbsp;')
185
- end
186
-
187
- col_count = 0
188
- fields(options[:res], options[:tbl]).each do |field|
189
- field_archive = find_field_in_conf_file(field.ucd.value())
190
- field_ucd = field_archive['ucd']
191
- if options[:infer_access_ref] and col_count == access_ref_index
192
- thead_2row[1] = field_ucd if field_ucd != 'nil'
193
- else
194
- thead << "<th>#{field_archive['name']}</th>\n"
195
- if field_ucd != 'nil'
196
- thead_2row.push(field_ucd)
197
- else
198
- thead_2row.push('&nbsp')
199
- end
200
- end
201
- col_count += 1
202
- end
203
-
204
- thead << " </tr>\n"
205
-
206
- thead << "<tr>\n"
207
- thead_2row.each do |h|
208
- thead << "<th>#{h}</th>\n"
209
- end
210
- thead << "</tr>\n"
211
-
212
- thead << "</thead>"
213
-
214
- return thead
215
- end
216
-
217
- # Creates the cart parameters
218
- # [_cart_params:_]
219
- #
220
- # [_columns:_]
221
- #
222
- def create_item_cart_params(cart_params, columns)
223
- link_ref_array = []
224
-
225
- cart_params.each do |key, value|
226
- link_ref_array.push("#{key}=#{value}")
227
- end
228
-
229
- access_ref_index = image_access_reference_columns()
230
- link_ref_array.push("resource=#{CGI.escape(columns[access_ref_index].value).to_s}") if access_ref_index
231
- ra_index = image_ra_columns()
232
- link_ref_array.push("rac=#{columns[ra_index].value.to_s}") if ra_index
233
- dec_index = image_dec_columns()
234
- link_ref_array.push("decc=#{columns[dec_index].value.to_s}") if dec_index
235
- filter_index = image_filter_columns()
236
- link_ref_array.push("filter=#{columns[filter_index].value.to_s}") if filter_index
237
- date_obs_index = image_date_obs_columns()
238
- link_ref_array.push("date_obs=#{columns[date_obs_index].value.to_s}") if date_obs_index
239
- teles_index = image_telescope_columns()
240
- link_ref_array.push("telescop=#{columns[teles_index].value.to_s}") if teles_index
241
- survey_index = image_survey_columns()
242
- link_ref_array.push("survey=#{columns[survey_index].value.to_s}") if survey_index
243
- instrum_index = image_instrument_columns()
244
- link_ref_array.push("instrument=#{columns[instrum_index].value.to_s}") if instrum_index
245
- sky_index = image_sky_columns()
246
- link_ref_array.push("sky=#{columns[sky_index].value.to_s}") if sky_index
247
- zerop_index = image_zeropoint_columns()
248
- link_ref_array.push("zeropoint=#{columns[zerop_index].value.to_s}") if zerop_index
249
- seeing_index = image_seeing_columns()
250
- link_ref_array.push("seeing=#{columns[seeing_index].value.to_s}") if seeing_index
251
- depth_index = image_depth_columns()
252
- link_ref_array.push("depth=#{columns[depth_index].value.to_s}") if depth_index
253
- exptime_index = image_exptime_columns()
254
- link_ref_array.push("exptime=#{columns[exptime_index].value.to_s}") if exptime_index
255
-
256
- return link_ref_array.join('&')
257
- end
258
-
259
- # Create body for HTML table
260
- # [_access_ref_index_:]
261
- # A valid SIA VOTable will only ever have one VOX:Image_AccessReference.
262
- # [_options_:]
263
- #
264
- def create_body(access_ref_index, options)
265
- tbody = "<tbody class=\"#{options[:body_class]}\" align=\"center\">\n"
266
- row_count = 0
267
- rows_data = rows(options[:res], options[:tbl])
268
- if rows_data
269
- rows_data.each do |tr|
270
- tbody << "<tr class=\"#{options[:row_classes][row_count % 2]}\">\n"
271
-
272
- # Specially mark up the first column to link to the image.
273
- columns = tr.tds()
274
-
275
- if options[:infer_add_to_cart_ref] and access_ref_index
276
- tbody << "<td><input type=\"checkbox\" " +
277
- "id=\"checkbox_add_#{options[:cart_params][:archive]}_#{row_count.to_s}\" " +
278
- "value=\"#{create_item_cart_params(options[:cart_params], columns)}\"/></td>\n"
279
- end
280
-
281
- if options[:infer_access_ref] and access_ref_index
282
- tbody << "<td><a href=\"#{columns[access_ref_index].value}\">#{options[:access_ref_link_label]}</a></td>\n"
283
- end
284
-
285
- col_count = 0
286
- #ra_index = image_ra_columns()
287
- #dec_index = image_dec_columns()
288
- columns.each do |td|
289
- if col_count != access_ref_index
290
- #if ra_index and col_count == ra_index
291
- # tbody << "<td>#{convert_ra_to_degrees(td.value)}</td>\n"
292
- #elsif dec_index and col_count == dec_index
293
- # tbody << "<td>#{convert_dec_to_degrees(td.value)}</td>\n"
294
- #else
295
- tbody << "<td>#{td.value}</td>\n"
296
- #end
297
- end
298
- col_count += 1
299
- end
300
-
301
- tbody << "</tr>\n"
302
- row_count += 1
303
- end
304
- end
305
- tbody << "</tbody>"
306
-
307
- return tbody
308
- end
309
-
310
- # Convert the specified table in the specified resource into an HTML
311
- # table.
312
- # [_options_:]
313
- # The options for this VOTable.
314
- def to_html(options={})
315
- # The ID to assign to the HTML table as a whole.
316
- options[:id] = options[:id] || "#{votable}_#{Time.now.to_i}_#{rand(10000)}"
317
-
318
- options[:infer_add_to_cart_ref] = true if options[:infer_add_to_cart_ref] == nil
319
- options[:add_to_cart_header_label] = options[:add_to_cart_header_label] || 'Add to Cart'
320
- options[:cart_params] = {} if options[:cart_params] == nil
321
- #options[:add_to_cart_url] = options[:add_to_cart_url] || nil
322
-
323
- options[:throbber_src] = options[:throbber_src] || '/images/general/indicator.gif'
324
- options[:throbber_size] = options[:throbber_size] || '16x16'
325
- options[:throbber_class] = options[:throbber_class] || 'throbber'
326
- options[:throbber_id] = options[:throbber_id] || "#{options[:id]}_throbber_id"
327
-
328
- options[:flash_notice_class] = options[:flash_notice_class] || 'flash_notice'
329
- options[:flash_notice_id] = options[:flash_notice_id] || "#{options[:id]}_flash_notice_id"
330
-
331
- # Link the access reference URL associated with a row.
332
- options[:infer_access_ref] = true if options[:infer_access_ref] == nil
333
- #options[:retrieve_link_ref] = options[:retrieve_link_ref] || nil
334
- # For the access reference column, place this value in the header.
335
- options[:access_ref_header_label] = options[:access_ref_header_label] || 'URL'
336
- # For the access reference column, link this word.
337
- options[:access_ref_link_label] = options[:access_ref_link_label] || 'Retrieve'
338
- options[:ssl] = false if options[:ssl] == nil
339
- #options[:resource_link] = options[:resource_link]
340
-
341
- # The resource from which to extract the table in question.
342
- options[:res] = options[:res] || 0
343
- # The table inside the resource from which to extract the rows in question.
344
- options[:tbl] = options[:tbl] || 0
345
-
346
- # The boolean value to show HTML table border
347
- options[:show_border] = false if options[:show_border] == nil
348
- # The class to assign the HTML table as a whole.
349
- options[:table_class] = options[:table_class] || 'votable'
350
- # The class to assign the header of the HTML table.
351
- options[:header_class] = options[:header_class] || 'header'
352
- # The class to assign the body of the HTML table.
353
- options[:body_class] = options[:body_class] || 'body'
354
- # The class to assign the HTML table body rows.
355
- options[:row_classes] = options[:row_classes] || ['row1', 'row2']
356
-
357
- begin
358
- # A valid SIA VOTable will only ever have one VOX:Image_AccessReference.
359
- access_ref_index = image_access_reference_columns()
360
-
361
- return create_votable(create_headers(access_ref_index, options),
362
- create_body(access_ref_index, options),
363
- options)
364
-
365
- rescue Exception => e
366
- title = 'Error...'
367
- message = "VORuby error: #{e.message}<br>#{e.backtrace}"
368
- message << "<br>#{@resources[0].info[0].text().to_s()}" if @resources[0].info[0]
369
- create_message(title, message, options)
370
- end
371
- end
372
-
373
- end
374
- end
375
-
376
- end
377
- end