voruby 1.1.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,17 +0,0 @@
1
- class Object
2
- # The hidden singleton lurks behind everyone
3
- def metaclass; class << self; self; end; end
4
- def meta_eval(&blk)
5
- metaclass.instance_eval(&blk)
6
- end
7
-
8
- # Adds methods to a metaclass
9
- def meta_def(name, &blk)
10
- meta_eval { define_method(name, &blk) }
11
- end
12
-
13
- # Defines an instance method within a class
14
- def class_def(name, &blk)
15
- class_eval { define_method(name, &blk) }
16
- end
17
- end
@@ -1,4 +0,0 @@
1
- require 'rubygems'
2
-
3
- require 'voruby/ext'
4
- require 'voruby/util'
@@ -1,36 +0,0 @@
1
- module VORuby
2
- module Misc
3
- module PropertyFile
4
-
5
- # A *very* simple property file reader.
6
- # It can only understand files with entries
7
- # of the property=value format--nothing fancy.
8
- class SimpleReader
9
- def initialize(file_name)
10
- @file_name = file_name
11
- load()
12
- end
13
-
14
- def load
15
- @properties = {}
16
- File.open(@file_name) do |file|
17
- file.each do |line|
18
- line.lstrip!
19
- if line !~ /^\#/
20
- key, value = line.split(/\s*=\s*/, 2)
21
- @properties[key] = value
22
- end
23
- end
24
- end
25
- end
26
-
27
- def [](name)
28
- @properties[name]
29
- end
30
-
31
- private :load
32
- end
33
-
34
- end
35
- end
36
- end
@@ -1,174 +0,0 @@
1
- require 'voruby/plastic/loader'
2
-
3
- module VORuby
4
- module Plastic
5
- module Application
6
-
7
- class Base
8
- attr_reader :name, :description, :icon_url, :ivorn, :plastic_version, :config, :hub_id, :app_id
9
-
10
- def initialize(name=nil, description=nil, icon_url=nil, ivorn=nil, plastic_version=0.5)
11
- initialize_config()
12
-
13
- @hub = ::XMLRPC::Client.new_from_uri(@config['plastic.xmlrpc.url'])
14
-
15
- @name = name
16
- @hub_id = URI.parse(call('plastic.hub.getHubId'))
17
-
18
- @description = description
19
- @icon_url = icon_url
20
- @ivorn = ivorn
21
- @plastic_version = plastic_version
22
- end
23
-
24
- def initialize_config
25
- begin
26
- @config = Misc::PropertyFile::SimpleReader.new("#{ENV['HOME']}/.plastic")
27
- rescue Errno::ENOENT => e
28
- puts "Unable to find .plastic file. Is a PLASTIC hub running? #{e}"
29
- end
30
-
31
- raise 'Unable to determine value of XMLRPC URL' if !@config['plastic.xmlrpc.url']
32
- @config['plastic.xmlrpc.url'].gsub!(/\\:/, ':')
33
- end
34
-
35
- def register
36
- @app_id = call('plastic.hub.registerNoCallBack', self.name)
37
- end
38
-
39
- def get_registered_ids
40
- call('plastic.hub.getRegisteredIds').collect{ |uri| URI.parse(uri) }
41
- end
42
-
43
- def get_understood_messages(app_id)
44
- call('plastic.hub.getUnderstoodMessages', app_id.to_s).collect{ |uri| URI.parse(uri) }
45
- end
46
-
47
- def get_message_registered_ids(msg)
48
- call('plastic.hub.getMessageRegisteredIds', msg.to_s).collect{ |uri| URI.parse(uri) }
49
- end
50
-
51
- def get_name(app_id)
52
- name = call('plastic.hub.getName', app_id.to_s)
53
- (name != '')? name: nil
54
- end
55
-
56
- def unregister
57
- call('plastic.hub.unregister', self.app_id.to_s) if self.app_id
58
- end
59
-
60
- def request(msg, *args)
61
- responses = {}
62
- call('plastic.hub.request', self.app_id.to_s, msg.to_s, args).each do |app_id, response|
63
- responses[URI.parse(app_id)] = response
64
- end
65
-
66
- responses
67
- end
68
-
69
- def request_to_subset(msg, args, *recipients)
70
- responses = {}
71
- call('plastic.hub.requestToSubset', self.app_id.to_s, msg.to_s, args,
72
- recipients.collect{ |id| id.to_s }).each do |app_id, response|
73
- responses[URI.parse(app_id)] = response
74
- end
75
-
76
- responses
77
- end
78
-
79
- def request_asynch(msg, *args)
80
- call_async('plastic.hub.requestAsynch', self.app_id.to_s, msg.to_s, args)
81
- end
82
-
83
- def request_to_subset_asynch(msg, args, recipients)
84
- call_async('plastic.hub.requestToSubsetAsynch', self.app_id.to_s, msg.to_s, args, recipients.collect{ |id| id.to_s })
85
- end
86
-
87
- def call(method_name, *args)
88
- begin
89
- @hub.call(method_name, *args)
90
- rescue ::XMLRPC::FaultException => e
91
- puts "XMLRPC Error while calling #{method_name} (#{e.faultCode}): #{e.faultString}"
92
- end
93
- end
94
-
95
- def call_async(method_name, *args)
96
- begin
97
- @hub.call_async(method_name, *args)
98
- rescue ::XMLRPC::FaultException => e
99
- puts "XMLRPC Error while calling #{method_name} (#{e.faultCode}): #{e.faultString}"
100
- end
101
- end
102
-
103
- private :initialize_config, :call, :call_async
104
- end
105
-
106
- class Full < Base
107
- attr_reader :supported_messages, :call_back_url, :xmlrpc_server, :http_server
108
-
109
- def initialize(supported_messages={}, port=8080, mount_point='/RPC2',
110
- name=nil, description=nil, icon_url=nil, ivorn=nil, plastic_version=0.5)
111
- super(name, description, icon_url, ivorn, plastic_version)
112
-
113
- initialize_core_messages()
114
- @supported_messages = @core_messages.merge(supported_messages)
115
-
116
- initialize_xmlrpc_server(port, mount_point)
117
- end
118
-
119
- def initialize_core_messages
120
- @core_messages = {
121
- Messages::TEST_ECHO => Proc.new{ |sender_id, args| args[0] },
122
- Messages::INFO_GET_IVORN => Proc.new{ |sender_id, args| self.ivorn.to_s },
123
- Messages::INFO_GET_NAME => Proc.new{ |sender_id, args| self.name },
124
- Messages::INFO_GET_VERSION => Proc.new{ |sender_id, args| self.plastic_version.to_s },
125
- Messages::INFO_GET_ICON_URL => Proc.new{ |sender_id, args| self.icon_url.to_s },
126
- Messages::INFO_GET_DESCRIPTION => Proc.new{ |sender_id, args| self.description },
127
- Messages::HUB_EVENT_APPLICATION_REGISTERED => Proc.new{ |sender_id, args| '' },
128
- Messages::HUB_EVENT_APPLICATION_UNREGISTERED => Proc.new{ |sender_id, args| '' },
129
- Messages::HUB_EVENT_HUB_STOPPING => Proc.new{ |sender_id, args| '' }
130
- }
131
- end
132
-
133
- def initialize_xmlrpc_server(port=8080, mount_point='/RPC2')
134
- @xmlrpc_server = ::XMLRPC::WEBrickServlet.new
135
- @xmlrpc_server.set_default_handler do |action, *args|
136
- sending_app_id = URI.parse(args[0])
137
- msg = URI.parse(args[1])
138
- msg_args = args[2..-1]
139
-
140
- return false if !self.supported_messages.has_key?(msg) or action != 'perform'
141
- self.supported_messages[msg].call(sending_app_id, msg_args)
142
- end
143
-
144
- @http_server = ::WEBrick::HTTPServer.new(:Port => port)
145
- @http_server.mount(mount_point, @xmlrpc_server)
146
- trap('INT'){ @http_server.shutdown }
147
-
148
- @call_back_url = URI::Generic.new('http', nil, @http_server.config[:ServerName], @http_server.config[:Port],
149
- nil, mount_point,
150
- nil, nil, nil, false)
151
-
152
- @server_thread = Thread.new { @http_server.start }
153
- end
154
-
155
- def register
156
- @app_id = call('plastic.hub.registerXMLRPC', self.name,
157
- self.supported_messages.keys.collect{ |msg| msg.to_s }, self.call_back_url.to_s)
158
- end
159
-
160
- def wait_for_requests
161
- @server_thread.join
162
- end
163
-
164
- def shutdown
165
- self.unregister
166
- self.http_server.shutdown
167
- end
168
-
169
- private :initialize_core_messages, :initialize_xmlrpc_server
170
- end
171
-
172
- end
173
- end
174
- end
@@ -1,30 +0,0 @@
1
- module VORuby
2
- module Plastic
3
- module Messages
4
- PREFIX = 'ivo://votech.org'
5
-
6
- # Core messages
7
- TEST_ECHO = URI.parse("#{PREFIX}/test/echo")
8
- INFO_GET_IVORN = URI.parse("#{PREFIX}/info/getIVORN")
9
- INFO_GET_NAME = URI.parse("#{PREFIX}/info/getName")
10
- INFO_GET_VERSION = URI.parse("#{PREFIX}/info/getVersion")
11
- INFO_GET_ICON_URL = URI.parse("#{PREFIX}/info/getIconURL")
12
- INFO_GET_DESCRIPTION = URI.parse("#{PREFIX}/info/getDescription")
13
- HUB_EVENT_APPLICATION_REGISTERED = URI.parse("#{PREFIX}/hub/event/ApplicationRegistered")
14
- HUB_EVENT_APPLICATION_UNREGISTERED = URI.parse("#{PREFIX}/hub/event/ApplicationUnregistered")
15
- HUB_EVENT_HUB_STOPPING = URI.parse("#{PREFIX}/hub/event/HubStopping")
16
- CORE_MESSAGES = [TEST_ECHO,
17
- INFO_GET_IVORN, INFO_GET_NAME, INFO_GET_VERSION, INFO_GET_ICON_URL, INFO_GET_DESCRIPTION,
18
- HUB_EVENT_APPLICATION_REGISTERED, HUB_EVENT_APPLICATION_UNREGISTERED, HUB_EVENT_HUB_STOPPING]
19
-
20
- # Agreed messages
21
- VOTABLE_LOAD = URI.parse("#{PREFIX}/votable/load")
22
- VOTABLE_LOAD_FROM_URL = URI.parse("#{PREFIX}/votable/loadFromURL")
23
- VOTABLE_SHOW_OBJECTS = URI.parse("#{PREFIX}/votable/showObjects")
24
-
25
- # Image related messages
26
- FITS_IMAGE_LOAD_FROM_URL = URI.parse("#{PREFIX}/fits/image/loadFromURL")
27
- SKY_POINTS_AT_COORDS = URI.parse("#{PREFIX}/sky/pointsAtCoords")
28
- end
29
- end
30
- end
@@ -1,10 +0,0 @@
1
- require 'uri'
2
- require 'xmlrpc/client'
3
- require 'xmlrpc/server'
4
- require 'webrick'
5
-
6
- #require 'rubygems'
7
- #require 'propertyfile'
8
-
9
- require 'voruby/misc/propertyfile'
10
- require 'voruby/plastic/constants'
@@ -1 +0,0 @@
1
- require 'voruby/plastic/applications'
@@ -1,9 +0,0 @@
1
- require 'voruby/resources/conesearch/conesearch_v1_0'
2
-
3
- module VORuby
4
- module Resources
5
- module ConeSearch
6
- #include ConeSearch::V1_0
7
- end
8
- end
9
- end
@@ -1,55 +0,0 @@
1
- require 'voruby/resources/conesearch/loader'
2
-
3
- require 'voruby/resources/voresource/voresource_v0_9'
4
- require 'voruby/resources/vodataservice/vodataservice_v0_4'
5
-
6
- include VORuby::Resources::VOResource::V0_9
7
- include VORuby::Resources::VODataService::V0_4
8
-
9
- module VORuby
10
- module Resources
11
- module ConeSearch
12
- module V0_2
13
-
14
- # Forward declarations
15
- class ConeSearchType < CapabilityType; end
16
- class ConeSearch < ConeSearchType; end
17
- class MaxRecords; end
18
- class MaxSR; end
19
- class Verbosity; end
20
-
21
- # The capabilities of a Cone Search implementation. It includes
22
- # the listing of the columns that appear in image query
23
- # output VOTable and Cone Search-specific metadata.
24
- class ConeSearch; end
25
- class ConeSearchType
26
- object_node :max_sr, 'MaxSR', :class => MaxSR, :optional => false
27
- object_node :max_records, 'MaxRecords', :class => MaxRecords, :optional => false
28
- object_node :verbosity, 'Verbosity', :class => Verbosity, :optional => false
29
- end
30
-
31
- # The largest number of records that the service will return.
32
- class MaxRecords
33
- include XML::Mapping
34
-
35
- numeric_node :value, '', :optional => false
36
- end
37
-
38
- # The largest search radius, in degrees, that will be accepted by the service without returning an error condition.
39
- class MaxSR
40
- include XML::Mapping
41
-
42
- numeric_node :value, '', :optional => false
43
- end
44
-
45
- # True if the service supports the VERB keyword; false, otherwise.
46
- class Verbosity
47
- include XML::Mapping
48
-
49
- boolean_node :value, '', 'true', 'false', :optional => false
50
- end
51
-
52
- end
53
- end
54
- end
55
- end
@@ -1,50 +0,0 @@
1
- require 'voruby/resources/conesearch/loader'
2
-
3
- require 'voruby/resources/voresource/voresource_v0_10'
4
- require 'voruby/resources/vodataservice/vodataservice_v0_5'
5
-
6
- include VORuby::Resources::VOResource::V0_10
7
- include VORuby::Resources::VODataService::V0_5
8
-
9
- module VORuby
10
- module Resources
11
- module ConeSearch
12
- module V0_3
13
-
14
- # Forward declarations
15
- class ConeSearch < TabularSkyService; end
16
- class CSCapRestriction < Capability; end
17
- class ConeSearchCapability < CSCapRestriction; end
18
-
19
- # A standard service that returns catalog entries with a
20
- # position falling within a cone on the sky (given by a position
21
- # and a radius).
22
- class ConeSearch
23
- # a description of how this particular ConeSearch service behaves
24
- object_node :capability, 'capability', :class => ConeSearchCapability, :optional => false
25
- end
26
-
27
- # An abstract capability that sets the standardURL to the ConeSearch standard definition.
28
- class CSCapRestriction
29
- object_node :standard_id, '@standardID', :class => IdentifierURI, :optional => true
30
- object_node :standard_url, '@standardURL', :class => AnyURI, :optional => true,
31
- :default_value => 'http://www.us-vo.org/metadata/conesearch.html'
32
- end
33
-
34
- # The capabilities of a Cone Search implementation. It includes
35
- # the listing of the columns that appear in image query
36
- # output VOTable and Cone Search-specific metadata.
37
- class ConeSearchCapability
38
- # the largest search radius, in degrees, that will be accepted by the service without returning an error condition
39
- numeric_node :max_sr, 'maxSR', :optional => false
40
- # the largest number of records that the service will return
41
- numeric_node :max_records, 'maxRecords', :optional => false
42
-
43
- # true if the service supports the VERB keyword; false, otherwise
44
- boolean_node :verbosity, 'verbosity', 'true', 'false', :optional => false
45
- end
46
-
47
- end
48
- end
49
- end
50
- end
@@ -1,72 +0,0 @@
1
- require 'voruby/resources/conesearch/loader'
2
-
3
- require 'voruby/resources/voresource/voresource_v1_0'
4
- require 'voruby/resources/vodataservice/vodataservice_v1_0'
5
-
6
- include VORuby::Resources::VOResource::V1_0
7
- include VORuby::Resources::VODataService::V1_0
8
-
9
- module VORuby
10
- module Resources
11
- module ConeSearch
12
- module V1_0
13
-
14
- # Forward declarations
15
- class CSCapRestriction < Capability; end
16
- class ConeSearch < CSCapRestriction; end
17
- class Query; end
18
-
19
- # An abstract capability that fixes the standardID to the IVOA ID for the ConeSearch standard.
20
- class CSCapRestriction
21
- text_node :description, 'description', :optional => true
22
-
23
- object_node :standard_id, '@standardID', :class => IdentifierURI, :optional => false,
24
- :default_value => 'ivo://ivoa.net/std/ConeSearch'
25
-
26
- array_node :validation_levels, 'validationLevel', :class => Validation, :optional => true, :default_value => []
27
- array_node :interfaces, 'interface', :unmarshaller => $InterfaceUnmarshaller, :optional => true, :default_value => []
28
- end
29
-
30
- # The capabilities of a Cone Search implementation. It includes
31
- # the listing of the columns that appear in image query
32
- # output VOTable and Cone Search-specific metadata.
33
- class ConeSearch
34
- # the largest search radius, in degrees, that will be
35
- # accepted by the service without returning an error
36
- # condition
37
- numeric_node :max_sr, 'maxSR', :optional => false
38
- # the largest number of records that the service will return
39
- numeric_node :max_records, 'maxRecords', :optional => false
40
-
41
- # true if the service supports the VERB keyword; false, otherwise
42
- boolean_node :verbosity, 'verbosity', 'true', 'false', :optional => false
43
-
44
- # a query that will result in at least on matched record that can be used to test the service
45
- object_node :test_query, 'testQuery', :class => Query
46
- end
47
-
48
- # A query to be sent to the service.
49
- class Query
50
- include XML::Mapping
51
-
52
- # the right ascension of the search cone's center in decimal degree
53
- numeric_node :ra, 'ra', :optional => false
54
- # the declination of the search cone's center in decimal degrees
55
- numeric_node :dec, 'dec', :optional => false
56
- # the radius of the search cone in decimal degrees
57
- numeric_node :sr, 'sr', :optional => false
58
- # the verbosity level to use where 1 means the bare minimum set of columns and 3 means the full set of
59
- # available columns.
60
- numeric_node :verb, 'verb', :optional => true
61
-
62
- # the catalog to query
63
- text_node :catalog, 'catalog', :optional => true
64
- # any extra (non-standard) parameters that must be provided (apart from what is part of base URL given
65
- # by the accessURL element).
66
- text_node :extras, 'extras', :optional => true
67
- end
68
-
69
- end
70
- end
71
- end
72
- end