r2corba 1.6.1-x64-mingw-ucrt

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 (237) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGES +173 -0
  3. data/LICENSE +59 -0
  4. data/README.rdoc +62 -0
  5. data/THANKS +54 -0
  6. data/bin/r2corba +8 -0
  7. data/bin/r2corba.bat +20 -0
  8. data/bin/ridlc +11 -0
  9. data/bin/ridlc.bat +23 -0
  10. data/bin/rins +7 -0
  11. data/bin/rins.bat +19 -0
  12. data/ext/.keep +0 -0
  13. data/lib/corba/cbase/IORMap.rb +32 -0
  14. data/lib/corba/cbase/ORB.rb +239 -0
  15. data/lib/corba/cbase/Request.rb +133 -0
  16. data/lib/corba/cbase/Streams.rb +128 -0
  17. data/lib/corba/cbase/Stub.rb +18 -0
  18. data/lib/corba/cbase/Typecode.rb +440 -0
  19. data/lib/corba/cbase/Values.rb +130 -0
  20. data/lib/corba/cbase/exception.rb +67 -0
  21. data/lib/corba/cbase/poa.rb +22 -0
  22. data/lib/corba/cbase/policies.rb +77 -0
  23. data/lib/corba/cbase/post_require.rb +13 -0
  24. data/lib/corba/cbase/require.rb +36 -0
  25. data/lib/corba/cmds/base.rb +84 -0
  26. data/lib/corba/cmds/test.rb +29 -0
  27. data/lib/corba/common/Any.rb +91 -0
  28. data/lib/corba/common/IDL.rb +100 -0
  29. data/lib/corba/common/ORB.rb +367 -0
  30. data/lib/corba/common/Object.rb +211 -0
  31. data/lib/corba/common/Request.rb +19 -0
  32. data/lib/corba/common/Servant.rb +107 -0
  33. data/lib/corba/common/Struct.rb +21 -0
  34. data/lib/corba/common/Stub.rb +78 -0
  35. data/lib/corba/common/Typecode.rb +1147 -0
  36. data/lib/corba/common/Union.rb +60 -0
  37. data/lib/corba/common/Values.rb +92 -0
  38. data/lib/corba/common/const.rb +21 -0
  39. data/lib/corba/common/exception.rb +68 -0
  40. data/lib/corba/common/require.rb +34 -0
  41. data/lib/corba/common/version.rb +21 -0
  42. data/lib/corba/idl/BiDirPolicyC.rb +62 -0
  43. data/lib/corba/idl/CosNamingC.rb +460 -0
  44. data/lib/corba/idl/CosNamingS.rb +308 -0
  45. data/lib/corba/idl/IDL.rb +20 -0
  46. data/lib/corba/idl/IORTable.pidl +61 -0
  47. data/lib/corba/idl/IORTableC.rb +116 -0
  48. data/lib/corba/idl/MessagingC.rb +903 -0
  49. data/lib/corba/idl/POAC.rb +929 -0
  50. data/lib/corba/idl/TAO_Ext.pidl +45 -0
  51. data/lib/corba/idl/TAO_ExtC.rb +178 -0
  52. data/lib/corba/idl/r2c_orb.rb +571 -0
  53. data/lib/corba/idl/require.rb +19 -0
  54. data/lib/corba/jbase/Any.rb +274 -0
  55. data/lib/corba/jbase/IORMap.rb +35 -0
  56. data/lib/corba/jbase/ORB.rb +111 -0
  57. data/lib/corba/jbase/Object.rb +98 -0
  58. data/lib/corba/jbase/Request.rb +225 -0
  59. data/lib/corba/jbase/Servant.rb +247 -0
  60. data/lib/corba/jbase/ServerRequest.rb +127 -0
  61. data/lib/corba/jbase/Streams.rb +734 -0
  62. data/lib/corba/jbase/Stub.rb +37 -0
  63. data/lib/corba/jbase/Typecode.rb +520 -0
  64. data/lib/corba/jbase/Values.rb +174 -0
  65. data/lib/corba/jbase/exception.rb +106 -0
  66. data/lib/corba/jbase/poa.rb +228 -0
  67. data/lib/corba/jbase/policies.rb +299 -0
  68. data/lib/corba/jbase/post_require.rb +13 -0
  69. data/lib/corba/jbase/require.rb +92 -0
  70. data/lib/corba/naming.rb +13 -0
  71. data/lib/corba/naming_service.rb +14 -0
  72. data/lib/corba/poa.rb +14 -0
  73. data/lib/corba/policies.rb +17 -0
  74. data/lib/corba/require.rb +16 -0
  75. data/lib/corba/svcs/ins/cos_naming.rb +432 -0
  76. data/lib/corba/svcs/ins/ins.rb +525 -0
  77. data/lib/corba/svcs/ins/naming_service.rb +118 -0
  78. data/lib/corba.rb +15 -0
  79. data/lib/ridlbe/ruby/config.rb +340 -0
  80. data/lib/ridlbe/ruby/orb.pidlc +0 -0
  81. data/lib/ridlbe/ruby/require.rb +15 -0
  82. data/lib/ridlbe/ruby/walker.rb +1605 -0
  83. data/mkrf_conf_bingem.rb +149 -0
  84. data/rakelib/bin.rake +79 -0
  85. data/rakelib/bin.rb +145 -0
  86. data/rakelib/build.rake +87 -0
  87. data/rakelib/config.rake +51 -0
  88. data/rakelib/config.rb +542 -0
  89. data/rakelib/ext.rake +183 -0
  90. data/rakelib/ext.rb +277 -0
  91. data/rakelib/ext_r2tao.rb +208 -0
  92. data/rakelib/gem.rake +251 -0
  93. data/rakelib/gem.rb +145 -0
  94. data/rakelib/package.rake +25 -0
  95. data/rakelib/test.rake +22 -0
  96. data/test/BiDirectional/Test.idl +33 -0
  97. data/test/BiDirectional/client.rb +131 -0
  98. data/test/BiDirectional/run_test.rb +67 -0
  99. data/test/BiDirectional/server.rb +167 -0
  100. data/test/CORBA_Services/Naming/BindingIterator/Test.idl +26 -0
  101. data/test/CORBA_Services/Naming/BindingIterator/client.rb +120 -0
  102. data/test/CORBA_Services/Naming/BindingIterator/run_test.rb +81 -0
  103. data/test/CORBA_Services/Naming/BindingIterator/server.rb +108 -0
  104. data/test/CORBA_Services/Naming/Corbaname/Test.idl +26 -0
  105. data/test/CORBA_Services/Naming/Corbaname/client.rb +84 -0
  106. data/test/CORBA_Services/Naming/Corbaname/run_test.rb +87 -0
  107. data/test/CORBA_Services/Naming/Corbaname/server.rb +134 -0
  108. data/test/CORBA_Services/Naming/Simple/Test.idl +26 -0
  109. data/test/CORBA_Services/Naming/Simple/client.rb +83 -0
  110. data/test/CORBA_Services/Naming/Simple/run_test.rb +81 -0
  111. data/test/CORBA_Services/Naming/Simple/server.rb +108 -0
  112. data/test/Collocation/Diamond.idl +38 -0
  113. data/test/Collocation/run_test.rb +51 -0
  114. data/test/Collocation/test.rb +201 -0
  115. data/test/Connect_Timeout/Test.idl +26 -0
  116. data/test/Connect_Timeout/client.rb +109 -0
  117. data/test/Connect_Timeout/run_test.rb +51 -0
  118. data/test/DII/Test.idl +26 -0
  119. data/test/DII/client.rb +114 -0
  120. data/test/DII/run_test.rb +68 -0
  121. data/test/DII/server.rb +94 -0
  122. data/test/DSI/Test.idl +26 -0
  123. data/test/DSI/client.rb +65 -0
  124. data/test/DSI/run_test.rb +68 -0
  125. data/test/DSI/server.rb +105 -0
  126. data/test/Exceptions/Test.idl +47 -0
  127. data/test/Exceptions/client.rb +117 -0
  128. data/test/Exceptions/run_test.rb +68 -0
  129. data/test/Exceptions/server.rb +130 -0
  130. data/test/Hello/Test.idl +26 -0
  131. data/test/Hello/client.rb +77 -0
  132. data/test/Hello/run_test.rb +70 -0
  133. data/test/Hello/server.rb +94 -0
  134. data/test/IDL_Test/Test.idl +116 -0
  135. data/test/IDL_Test/Test_inc.idl +17 -0
  136. data/test/IDL_Test/client.rb +103 -0
  137. data/test/IDL_Test/run_test.rb +68 -0
  138. data/test/IDL_Test/server.rb +103 -0
  139. data/test/IORMap/Test.idl +26 -0
  140. data/test/IORMap/client.rb +72 -0
  141. data/test/IORMap/run_test.rb +68 -0
  142. data/test/IORMap/server.rb +113 -0
  143. data/test/IORTable/Test.idl +26 -0
  144. data/test/IORTable/client.rb +74 -0
  145. data/test/IORTable/run_test.rb +68 -0
  146. data/test/IORTable/server.rb +129 -0
  147. data/test/Implicit_Conversion/Test.idl +30 -0
  148. data/test/Implicit_Conversion/client.rb +112 -0
  149. data/test/Implicit_Conversion/run_test.rb +68 -0
  150. data/test/Implicit_Conversion/server.rb +98 -0
  151. data/test/Multi_Threading/Multiple_ORB/Test.idl +26 -0
  152. data/test/Multi_Threading/Multiple_ORB/client.rb +81 -0
  153. data/test/Multi_Threading/Multiple_ORB/run_test.rb +70 -0
  154. data/test/Multi_Threading/Multiple_ORB/server.rb +107 -0
  155. data/test/Multi_Threading/Simple/Test.idl +26 -0
  156. data/test/Multi_Threading/Simple/client.rb +92 -0
  157. data/test/Multi_Threading/Simple/run_test.rb +68 -0
  158. data/test/Multi_Threading/Simple/server.rb +117 -0
  159. data/test/Multi_Threading/Threads/Test.idl +27 -0
  160. data/test/Multi_Threading/Threads/client.rb +77 -0
  161. data/test/Multi_Threading/Threads/run_test.rb +75 -0
  162. data/test/Multi_Threading/Threads/server.rb +116 -0
  163. data/test/Multi_Threading/Threads/watchdog.rb +87 -0
  164. data/test/Multiple_Servant_Interfaces/Test.idl +33 -0
  165. data/test/Multiple_Servant_Interfaces/client.rb +69 -0
  166. data/test/Multiple_Servant_Interfaces/run_test.rb +68 -0
  167. data/test/Multiple_Servant_Interfaces/server.rb +101 -0
  168. data/test/Nil/Test.idl +26 -0
  169. data/test/Nil/run_test.rb +51 -0
  170. data/test/Nil/test.rb +80 -0
  171. data/test/OBV/AbstractInterface/client.rb +178 -0
  172. data/test/OBV/AbstractInterface/run_test.rb +68 -0
  173. data/test/OBV/AbstractInterface/server.rb +149 -0
  174. data/test/OBV/AbstractInterface/test.idl +52 -0
  175. data/test/OBV/Custom/OBV.idl +18 -0
  176. data/test/OBV/Custom/OBV_impl.rb +41 -0
  177. data/test/OBV/Custom/client.rb +85 -0
  178. data/test/OBV/Custom/run_test.rb +68 -0
  179. data/test/OBV/Custom/server.rb +99 -0
  180. data/test/OBV/Simple/OBV.idl +15 -0
  181. data/test/OBV/Simple/OBV_impl.rb +26 -0
  182. data/test/OBV/Simple/client.rb +85 -0
  183. data/test/OBV/Simple/run_test.rb +68 -0
  184. data/test/OBV/Simple/server.rb +99 -0
  185. data/test/OBV/Simple_Event/Event.idl +15 -0
  186. data/test/OBV/Simple_Event/Event_impl.rb +26 -0
  187. data/test/OBV/Simple_Event/client.rb +85 -0
  188. data/test/OBV/Simple_Event/run_test.rb +68 -0
  189. data/test/OBV/Simple_Event/server.rb +99 -0
  190. data/test/OBV/Supports/client.rb +115 -0
  191. data/test/OBV/Supports/run_test.rb +68 -0
  192. data/test/OBV/Supports/server.rb +102 -0
  193. data/test/OBV/Supports/supports.idl +32 -0
  194. data/test/OBV/Supports/supports_impl.rb +59 -0
  195. data/test/OBV/Tree/client.rb +115 -0
  196. data/test/OBV/Tree/run_test.rb +68 -0
  197. data/test/OBV/Tree/server.rb +116 -0
  198. data/test/OBV/Tree/test.idl +31 -0
  199. data/test/OBV/Truncatable/Extra.idl +26 -0
  200. data/test/OBV/Truncatable/Truncatable.idl +105 -0
  201. data/test/OBV/Truncatable/Truncatable_impl.rb +85 -0
  202. data/test/OBV/Truncatable/client.rb +278 -0
  203. data/test/OBV/Truncatable/run_test.rb +68 -0
  204. data/test/OBV/Truncatable/server.rb +88 -0
  205. data/test/OBV/ValueBox/client.rb +497 -0
  206. data/test/OBV/ValueBox/run_test.rb +68 -0
  207. data/test/OBV/ValueBox/server.rb +271 -0
  208. data/test/OBV/ValueBox/valuebox.idl +101 -0
  209. data/test/OBV/ValueBox/vb_basic.idl +75 -0
  210. data/test/OBV/ValueBox/vb_struct.idl +68 -0
  211. data/test/OBV/ValueBox/vb_union.idl +21 -0
  212. data/test/Object/Test.idl +26 -0
  213. data/test/Object/client.rb +111 -0
  214. data/test/Object/run_test.rb +68 -0
  215. data/test/Object/server.rb +125 -0
  216. data/test/POA/Test.idl +27 -0
  217. data/test/POA/run_test.rb +51 -0
  218. data/test/POA/test.rb +111 -0
  219. data/test/Param_Test/Test.idl +182 -0
  220. data/test/Param_Test/client.rb +276 -0
  221. data/test/Param_Test/run_test.rb +68 -0
  222. data/test/Param_Test/server.rb +295 -0
  223. data/test/Performance/Simple/Test.idl +26 -0
  224. data/test/Performance/Simple/client.rb +89 -0
  225. data/test/Performance/Simple/run_test.rb +68 -0
  226. data/test/Performance/Simple/server.rb +94 -0
  227. data/test/Policies/Test.idl +26 -0
  228. data/test/Policies/run_test.rb +51 -0
  229. data/test/Policies/test.rb +142 -0
  230. data/test/Timeout/client.rb +206 -0
  231. data/test/Timeout/run_test.rb +68 -0
  232. data/test/Timeout/server.rb +108 -0
  233. data/test/Timeout/test.idl +18 -0
  234. data/test/lib/assert.rb +41 -0
  235. data/test/lib/test.rb +546 -0
  236. data/test/test_runner.rb +191 -0
  237. metadata +318 -0
@@ -0,0 +1,340 @@
1
+ #--------------------------------------------------------------------
2
+ # config.rb - IDL language mapping configuration for Ruby
3
+ #
4
+ # Author: Martin Corino
5
+ #
6
+ # This program is free software; you can redistribute it and/or
7
+ # modify it under the terms of the R2CORBA LICENSE which is
8
+ # included with this program.
9
+ #
10
+ # Copyright (c) Remedy IT Expertise BV
11
+ #--------------------------------------------------------------------
12
+
13
+ module IDL
14
+
15
+ class StrOStream
16
+ def initialize()
17
+ @str = ''
18
+ end
19
+
20
+ def clear
21
+ @str = ''
22
+ end
23
+
24
+ def to_s
25
+ @str
26
+ end
27
+
28
+ def <<(s)
29
+ @str << s
30
+ end
31
+ end # class StrOStream
32
+
33
+ class RIDL
34
+ private
35
+ def RIDL.merge_params(params)
36
+ opts = IDL::OPTIONS.dup
37
+ params.each do |k, v|
38
+ case opts[k]
39
+ when Array
40
+ opts[k] = opts[k] + (Array === v ? v : [v])
41
+ when Hash
42
+ opts[k] = opts[k].merge(v) if Hash === v
43
+ else
44
+ opts[k] = v
45
+ end
46
+ end
47
+ opts
48
+ end
49
+
50
+ def RIDL.parse0(src, params)
51
+ params = merge_params(params)
52
+ IDL.verbose_level = params[:verbose]
53
+ parser = ::IDL::Parser.new(params)
54
+ parser.parse(src)
55
+ s = ::IDL::StrOStream.new
56
+ s.clear
57
+ IDL::Ruby.process_input(parser, params, s)
58
+ s
59
+ end
60
+
61
+ def RIDL.parse(src, params)
62
+ s = parse0(src, params)
63
+ s.to_s
64
+ end
65
+ public
66
+ def RIDL.eval(src, params = {})
67
+ params[:idl_eval] = true
68
+ params[:expand_includes] = true
69
+ params[:client_stubs] = true if params[:client_stubs].nil?
70
+ params[:stubs_only] ||= false
71
+ s = parse0(src, params)
72
+ Kernel.eval(s.to_s, ::TOPLEVEL_BINDING)
73
+ s = nil
74
+ end
75
+
76
+ def RIDL.fparse(fname, params = {})
77
+ params[:client_stubs] = true if params[:client_stubs].nil?
78
+ params[:stubs_only] ||= false
79
+ f = File.open(fname, 'r')
80
+ self.parse(f, params)
81
+ ensure
82
+ f.close
83
+ end
84
+
85
+ def RIDL.feval(fname, params = {})
86
+ File.open(fname, 'r') { |io| self.eval(io, params) }
87
+ end
88
+ end # module RIDL
89
+
90
+ module Ruby
91
+ COPYRIGHT = "Copyright (c) 2007-#{Time.now.year} Remedy IT Expertise BV, The Netherlands".freeze
92
+ TITLE = 'RIDL Ruby backend'.freeze
93
+ VERSION = {
94
+ :major => 2,
95
+ :minor => 0,
96
+ :release => 1
97
+ }
98
+
99
+ ## Configure Ruby backend
100
+ #
101
+ Backend.configure('ruby', File.dirname(__FILE__), TITLE, COPYRIGHT, VERSION) do |becfg|
102
+
103
+ # setup backend option handling
104
+ #
105
+ becfg.on_setup do |optlist, ridl_params|
106
+ # defaults
107
+ ridl_params[:stub_pfx] = 'C'
108
+ ridl_params[:srv_pfx] = 'S'
109
+ ridl_params[:stubs_only] = false
110
+ ridl_params[:client_stubs] = true
111
+ ridl_params[:expand_includes] = false
112
+ ridl_params[:libinit] = true
113
+ ridl_params[:class_interfaces] = []
114
+
115
+ # ruby specific option switches
116
+
117
+ unless ridl_params[:preprocess] # same switch defined for IDL preprocessing mode
118
+ optlist.for_switch '--output=FILE', :type => String,
119
+ :description => ['Specifies filename to generate output in.',
120
+ 'Default: File.basename(idlfile, \'.idl\')+<postfix>+<ext>'] do |swcfg|
121
+ swcfg.on_exec do |arg, params|
122
+ params[:output] = arg
123
+ end
124
+
125
+ end
126
+ end
127
+
128
+ optlist.for_switch '-o PATH', :type => String,
129
+ :description => ['Specifies output directory.',
130
+ 'Default: ./'] do |swcfg|
131
+ swcfg.on_exec do |arg, params|
132
+ params[:outputdir] = arg
133
+ end
134
+ end
135
+ optlist.for_switch '--stubs-only',
136
+ :description => ['Only generate client stubs, no servant code.',
137
+ 'Default: off'] do |swcfg|
138
+ swcfg.on_exec do |arg, params|
139
+ params[:client_stubs] = true
140
+ params[:stubs_only] = true
141
+ end
142
+ end
143
+ optlist.for_switch '--no-stubs',
144
+ :description => ['Do not generate client stubs, only servant code.',
145
+ 'Default: off'] do |swcfg|
146
+ swcfg.on_exec do |arg, params|
147
+ params[:client_stubs] = false
148
+ params[:stubs_only] = false
149
+ end
150
+ end
151
+ optlist.for_switch '--stub-pfx=POSTFIX', :type => String,
152
+ :description => ['Specifies postfix for generated client stub source filename.',
153
+ 'Filenames are formed like: <idl basename><postfix>.<language extension>',
154
+ "Default: #{ridl_params[:stub_pfx]}"] do |swcfg|
155
+ swcfg.on_exec do |arg, params|
156
+ params[:stub_pfx] = arg
157
+ end
158
+ end
159
+ optlist.for_switch '--skel-pfx=POSTFIX', :type => String,
160
+ :description => ['Specifies postfix for generated servant skeleton source filename.',
161
+ 'Filenames are formed like: <idl basename><postfix>.<language extension>',
162
+ "Default: #{ridl_params[:srv_pfx]}"] do |swcfg|
163
+ swcfg.on_exec do |arg, params|
164
+ params[:srv_pfx] = arg
165
+ end
166
+ end
167
+
168
+ optlist.for_switch '--skel-directory=PATH', :type => String,
169
+ :description => ['Specifies output directory for servant files.',
170
+ 'Default: outputdir or ./'] do |swcfg|
171
+ swcfg.on_exec do |arg, params|
172
+ params[:skel_outputdir] = arg
173
+ end
174
+ end
175
+ optlist.for_switch '--expand-includes',
176
+ :description => ['Generate code for included IDL inline.',
177
+ 'Default: off'] do |swcfg|
178
+ swcfg.on_exec do |arg, params|
179
+ params[:expand_includes] = true
180
+ end
181
+ end
182
+ optlist.for_switch '--no-libinit',
183
+ :description => ['Do not generate library initialization code as preamble.',
184
+ 'Default: on'] do |swcfg|
185
+ swcfg.on_exec do |arg, params|
186
+ params[:libinit] = false
187
+ end
188
+ end
189
+ optlist.for_switch '--interface-as-class=INTF', :type => String,
190
+ :description => ['Generate a Ruby class for interface INTF instead of a module in client stubs.',
191
+ 'Default: module'] do |swcfg|
192
+ swcfg.on_exec do |arg, params|
193
+ params[:class_interfaces] << arg
194
+ end
195
+ end
196
+ end
197
+
198
+ # process input / generate code
199
+ # arguments:
200
+ # in parser - parser object with full AST from parsed source
201
+ # in options - initialized option hash
202
+ #
203
+ becfg.on_process_input do |parser, options|
204
+ IDL::Ruby.process_input(parser, options)
205
+ end # becfg.on_process_input
206
+
207
+ end # Backend.configure
208
+
209
+ def self.process_input(parser, options, outstream = nil)
210
+ # has a user defined output filename been set
211
+ fixed_output = !options[:output].nil?
212
+
213
+ # determine output file path for client stub code
214
+ unless fixed_output || options[:idlfile].nil?
215
+ options[:output] = options[:outputdir] + '/' + File.basename(options[:idlfile], '.idl') + options[:stub_pfx] + '.rb'
216
+ end
217
+ # generate client stubs if requested
218
+ if options[:client_stubs]
219
+ # open output file
220
+ co = outstream || (if options[:output].nil?
221
+ GenFile.new(nil, :output_file => $stdout)
222
+ else
223
+ GenFile.new(options[:output])
224
+ end)
225
+ begin
226
+ # process StubWriter
227
+ parser.visit_nodes(::IDL::RubyStubWriter.new(co, options))
228
+ rescue => ex
229
+ IDL.log(0, ex)
230
+ IDL.log(0, ex.backtrace.join("\n")) unless ex.is_a? IDL::ParseError
231
+ exit 1
232
+ end
233
+ end
234
+
235
+ # determin output file path for servant code and open file
236
+ unless options[:stubs_only]
237
+ so = outstream || (unless fixed_output || options[:idlfile].nil?
238
+ options[:srv_output] = if fixed_output
239
+ options[:output]
240
+ else
241
+ options[:outputdir] + '/' + File.basename(options[:idlfile], '.idl') + options[:srv_pfx] + '.rb'
242
+ end
243
+ if fixed_output && options[:client_stubs]
244
+ co
245
+ else
246
+ GenFile.new(options[:srv_output])
247
+ end
248
+ else
249
+ GenFile.new(nil, :output_file => $stdout)
250
+ end)
251
+ begin
252
+ # process ServantWriter
253
+ parser.visit_nodes(::IDL::RubyServantWriter.new(so, options))
254
+ rescue => ex
255
+ IDL.log(0, ex)
256
+ IDL.log(0, ex.backtrace.join("\n")) unless ex.is_a? IDL::ParseError
257
+ exit 1
258
+ end
259
+ end
260
+ end
261
+
262
+ module LeafMixin
263
+
264
+ RESERVED_RUBY_CONST = %w(Array Bignum Binding Class Continuation Dir Exception FalseClass File
265
+ Fixnum Float Hash Integer IO MatchData Method Module NilClass Numeric Object Proc Process
266
+ Range Regexp String Struct Symbol Thread ThreadGroup Time TrueClass UnboundMethod Comparable
267
+ Enumerable Errno FileTest GC Kernel Marshal Math ObjectSpace Signal)
268
+
269
+ RESERVED_RUBY_MEMBER = %w(untaint id instance_variable_get inspect taint public_methods
270
+ __send__ to_a display instance_eval extend clone protected_methods hash freeze type
271
+ instance_variable_set methods instance_variables to_s method dup private_methods object_id
272
+ send __id__ singleton_methods proc readline global_variables singleton_method_removed callcc
273
+ syscall fail untrace_var load srand puts catch chomp initialize_copy format scan print abort
274
+ fork gsub trap test select initialize method_missing lambda readlines local_variables
275
+ singleton_method_undefined system open caller eval set_trace_func require rand
276
+ singleton_method_added throw gets binding raise warn getc exec trace_var irb_binding at_exit
277
+ split putc loop chop sprintf p remove_instance_variable exit printf sleep sub autoload)
278
+
279
+ def ruby_lm_name
280
+ unless @lm_name
281
+ ret = @name.checked_name.dup
282
+ case self
283
+ when IDL::AST::Port,
284
+ IDL::AST::StateMember,
285
+ IDL::AST::Initializer,
286
+ IDL::AST::Parameter,
287
+ IDL::AST::Operation,
288
+ IDL::AST::Attribute,
289
+ IDL::AST::Member,
290
+ IDL::AST::UnionMember
291
+ # member names
292
+ ret = ret[0, 1].downcase + ret[1, ret.size].to_s
293
+ ret = 'r_' + ret if IDL::Ruby::LeafMixin::RESERVED_RUBY_MEMBER.include?(ret)
294
+ else
295
+ # class/module names
296
+ ret = ret[0, 1].upcase + ret[1, ret.size].to_s
297
+ is_scoped = @enclosure && !@enclosure.scopes.empty?
298
+ ret = 'R_' + ret if !is_scoped && IDL::Ruby::LeafMixin::RESERVED_RUBY_CONST.include?(ret)
299
+ end
300
+ @lm_name = ret
301
+ end
302
+ @lm_name
303
+ end
304
+
305
+ def rubyname
306
+ lm_name
307
+ end
308
+
309
+ def scoped_rubyname
310
+ scoped_lm_name
311
+ end
312
+ end # module LeafMixin
313
+
314
+ IDL::AST::Leaf.class_eval do
315
+ include LeafMixin
316
+
317
+ alias :base_lm_name :lm_name
318
+ alias :lm_name :ruby_lm_name
319
+ end
320
+
321
+ module ScannerMixin
322
+
323
+ RUBYKW = %w(__FILE__ and def end in or self unless __LINE__ begin defined? ensure module redo
324
+ super until BEGIN break do false next rescue then when END case else for nil retry true while
325
+ alias class elsif if not return undef yield).collect! { |w| w.to_sym }
326
+
327
+ def chk_identifier(ident)
328
+ # prefix Ruby keywords with 'r_'
329
+ RUBYKW.include?(ident.to_sym) ? 'r_' + ident : ident
330
+ end
331
+
332
+ end # module ScannerMixin
333
+
334
+ IDL::Scanner.class_eval do
335
+ include ScannerMixin
336
+ end
337
+
338
+ end # module Ruby
339
+
340
+ end # module IDL
Binary file
@@ -0,0 +1,15 @@
1
+ #--------------------------------------------------------------------
2
+ # require.rb - IDL language mapping loader
3
+ #
4
+ # Author: Martin Corino
5
+ #
6
+ # This program is free software; you can redistribute it and/or
7
+ # modify it under the terms of the R2CORBA LICENSE which is
8
+ # included with this program.
9
+ #
10
+ # Copyright (c) Remedy IT Expertise BV
11
+ #--------------------------------------------------------------------
12
+
13
+ (Dir.glob(File.join(File.dirname(__FILE__), '*.rb')) - [__FILE__]).each do |f|
14
+ require f
15
+ end