ruby-dcl 1.8.0 → 1.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. checksums.yaml +4 -4
  2. data/ChangeLog +1090 -0
  3. data/LICENSE.txt +1 -1
  4. data/demo/gokuraku/hop/hop.rb +0 -1
  5. data/demo/gokuraku/jump/jump1.rb +0 -1
  6. data/demo/gokuraku/jump/jump2.rb +0 -1
  7. data/demo/gokuraku/layout/lay1.rb +0 -1
  8. data/demo/gokuraku/layout/lay2.rb +0 -1
  9. data/demo/gokuraku/step/step0.rb +0 -1
  10. data/demo/gokuraku/step/step1.rb +0 -1
  11. data/demo/gokuraku/step/step2.rb +0 -1
  12. data/demo/gokuraku/u1d/u1d1.rb +0 -1
  13. data/demo/gokuraku/u1d/u1d2.rb +0 -1
  14. data/demo/gokuraku/u2d/u2d1.rb +0 -1
  15. data/demo/gokuraku/u2d/u2d2.rb +0 -1
  16. data/demo/gokuraku/u2d/u2d3.rb +0 -1
  17. data/demo/gokuraku/u2d/u2d4.rb +0 -1
  18. data/demo/grph1/scpack/scpkt2.rb +0 -1
  19. data/demo/grph1/scpack/scpkt3.rb +0 -1
  20. data/demo/grph1/scpack/scpkt6.rb +0 -1
  21. data/demo/grph1/scpack/scpkt7.rb +0 -1
  22. data/demo/grph1/scpack/scpkt8.rb +0 -1
  23. data/demo/grph1/sgpack/sgfont.rb +0 -1
  24. data/demo/grph1/sgpack/sgfonz.rb +0 -1
  25. data/demo/grph1/sgpack/sgksx1.rb +0 -1
  26. data/demo/grph1/sgpack/sgksx2.rb +0 -1
  27. data/demo/grph1/sgpack/sgksx3.rb +0 -1
  28. data/demo/grph1/sgpack/sglidx.rb +0 -1
  29. data/demo/grph1/sgpack/sgltyp.rb +0 -1
  30. data/demo/grph1/sgpack/sgpk01.rb +0 -1
  31. data/demo/grph1/sgpack/sgpk02.rb +0 -1
  32. data/demo/grph1/sgpack/sgpk03.rb +0 -1
  33. data/demo/grph1/sgpack/sgpk04.rb +0 -1
  34. data/demo/grph1/sgpack/sgpk05.rb +0 -1
  35. data/demo/grph1/sgpack/sgpk06.rb +0 -1
  36. data/demo/grph1/sgpack/sgpk07.rb +0 -1
  37. data/demo/grph1/sgpack/sgpk08.rb +0 -1
  38. data/demo/grph1/sgpack/sgpk09.rb +0 -1
  39. data/demo/grph1/sgpack/sgpk10.rb +0 -1
  40. data/demo/grph1/sgpack/sgtclr.rb +0 -1
  41. data/demo/grph1/sgpack/sgtone.rb +0 -1
  42. data/demo/grph1/sgpack/sgtonz.rb +0 -1
  43. data/demo/grph1/slpack/slpk01.rb +0 -1
  44. data/demo/grph1/slpack/slpk02.rb +0 -1
  45. data/demo/grph1/slpack/slpk03.rb +0 -1
  46. data/demo/grph1/slpack/slpk04.rb +0 -1
  47. data/demo/grph2/grpack/grpk01.rb +0 -1
  48. data/demo/grph2/ucpack/ucpk01.rb +0 -1
  49. data/demo/grph2/ucpack/ucpk02.rb +0 -1
  50. data/demo/grph2/udegpk/u2df01.rb +0 -1
  51. data/demo/grph2/udegpk/u2df02.rb +0 -1
  52. data/demo/grph2/udegpk/u2df03.rb +0 -1
  53. data/demo/grph2/udegpk/u2df04.rb +0 -1
  54. data/demo/grph2/udegpk/u2df05.rb +0 -1
  55. data/demo/grph2/udegpk/u2df06.rb +0 -1
  56. data/demo/grph2/udegpk/u2df07.rb +0 -1
  57. data/demo/grph2/udegpk/u2df08.rb +0 -1
  58. data/demo/grph2/udegpk/u2df09b.rb +0 -1
  59. data/demo/grph2/udegpk/u2df09c.rb +0 -1
  60. data/demo/grph2/udegpk/u2df09e.rb +0 -1
  61. data/demo/grph2/udegpk/u2df09f.rb +0 -1
  62. data/demo/grph2/uipack/uipk01.rb +0 -1
  63. data/demo/grph2/uipack/uipk02.rb +25 -17
  64. data/demo/grph2/uipack/uipk03.rb +50 -0
  65. data/demo/grph2/ulpack/ulpk01.rb +0 -1
  66. data/demo/grph2/ulpack/ulpk01n.rb +0 -1
  67. data/demo/grph2/ulpack/ulpk02.rb +0 -1
  68. data/demo/grph2/ulpack/ulpk02n.rb +0 -1
  69. data/demo/grph2/umpack/test01.rb +0 -1
  70. data/demo/grph2/umpack/test02.rb +0 -1
  71. data/demo/grph2/umpack/test03.rb +0 -1
  72. data/demo/grph2/umpack/test04.rb +0 -1
  73. data/demo/grph2/umpack/test05.rb +0 -1
  74. data/demo/grph2/umpack/test06.rb +0 -1
  75. data/demo/grph2/umpack/test07.rb +0 -1
  76. data/demo/grph2/umpack/test08.rb +0 -1
  77. data/demo/grph2/umpack/test10.rb +0 -1
  78. data/demo/grph2/umpack/umpk01.rb +0 -1
  79. data/demo/grph2/umpack/umpk02.rb +0 -1
  80. data/demo/grph2/umpack/umpk03.rb +0 -1
  81. data/demo/grph2/umpack/umpk04.rb +0 -1
  82. data/demo/grph2/umpack/umpk05.rb +0 -1
  83. data/demo/grph2/uspack/uspk01.rb +0 -1
  84. data/demo/grph2/uspack/uspk02.rb +0 -1
  85. data/demo/grph2/uspack/uspk03.rb +0 -1
  86. data/demo/grph2/uspack/uspk04.rb +0 -1
  87. data/demo/grph2/uspack/uspk05.rb +0 -1
  88. data/demo/grph2/uspack/uspk06.rb +0 -1
  89. data/demo/grph2/uspack/uspk07.rb +0 -1
  90. data/demo/grph2/uspack/uspk08.rb +0 -1
  91. data/demo/grph2/uspack/uspk09.rb +0 -1
  92. data/demo/grph2/uspack/uspk10.rb +0 -1
  93. data/demo/grph2/uspack/uspk11.rb +0 -1
  94. data/demo/grph2/uspack/uspk12.rb +0 -1
  95. data/demo/grph2/uupack/uupk01.rb +0 -1
  96. data/demo/grph2/uupack/uupk02.rb +0 -1
  97. data/demo/grph2/uupack/uupk03.rb +0 -1
  98. data/demo/grph2/uupack/uupk04.rb +0 -1
  99. data/demo/grph2/uupack/uupk05.rb +0 -1
  100. data/demo/grph2/uupack/uupk06.rb +0 -1
  101. data/demo/grph2/uupack/uupk07.rb +0 -1
  102. data/demo/grph2/uxyzpk/uxyz01.rb +0 -1
  103. data/demo/grph2/uxyzpk/uxyz02.rb +0 -1
  104. data/demo/grph2/uxyzpk/uxyz03.rb +0 -1
  105. data/demo/grph2/uxyzpk/uxyz04.rb +0 -1
  106. data/demo/grph2/uxyzpk/uxyz05.rb +0 -1
  107. data/demo/grph2/uxyzpk/uxyz06.rb +0 -1
  108. data/demo/grph2/uxyzpk/uxyz07.rb +0 -1
  109. data/demo/grph2/uxyzpk/uxyz08.rb +0 -1
  110. data/demo/grph2/uxyzpk/uxyz09.rb +0 -1
  111. data/demo/grph2/uxyzpk/uxyz10.rb +0 -1
  112. data/demo/grph2/ximage/ximg01.rb +0 -1
  113. data/demo/math1/clsplib/cslb01.rb +0 -1
  114. data/demo/math2/fftlib/fftl01.rb +0 -1
  115. data/demo/math2/fftlib/fftl02.rb +0 -1
  116. data/demo/math2/intrlib/intr01.rb +0 -1
  117. data/demo/math2/rnmlib/rnml01.rb +0 -1
  118. data/demo/math2/vstlib/vstl01.rb +0 -1
  119. data/demo/math2/vstlib/vstl02.rb +0 -1
  120. data/demo/rakuraku/color/color1.rb +0 -1
  121. data/demo/rakuraku/color/color2.rb +0 -1
  122. data/demo/rakuraku/color/color3.rb +0 -1
  123. data/demo/rakuraku/kihon/kihon1.rb +0 -1
  124. data/demo/rakuraku/kihon/kihon2.rb +0 -1
  125. data/demo/rakuraku/kihon/kihon3.rb +0 -1
  126. data/demo/rakuraku/kihon/kihon4.rb +0 -1
  127. data/demo/rakuraku/kihon/kihon5.rb +0 -1
  128. data/demo/rakuraku/kihon/kihon6.rb +0 -1
  129. data/demo/rakuraku/kihon/kihon7.rb +0 -1
  130. data/demo/rakuraku/kihon/kihon8.rb +0 -1
  131. data/demo/rakuraku/kihon/kihon9.rb +0 -1
  132. data/demo/rakuraku/kihon/kihona.rb +0 -1
  133. data/demo/rakuraku/kihon/kihonb.rb +0 -1
  134. data/demo/rakuraku/kihon/kihonc.rb +0 -1
  135. data/demo/rakuraku/layout/lay1.rb +0 -1
  136. data/demo/rakuraku/layout/lay2.rb +0 -1
  137. data/demo/rakuraku/layout/lay3.rb +0 -1
  138. data/demo/rakuraku/map3d/map3d1.rb +0 -1
  139. data/demo/rakuraku/map3d/map3d2.rb +0 -1
  140. data/demo/rakuraku/map3d/map3d3.rb +0 -1
  141. data/demo/rakuraku/map3d/map3d4.rb +0 -1
  142. data/demo/rakuraku/map3d/map3d5.rb +0 -1
  143. data/demo/rakuraku/map3d/map3d6.rb +0 -1
  144. data/demo/rakuraku/map3d/map3d7.rb +0 -1
  145. data/demo/rakuraku/miss/miss1.rb +0 -1
  146. data/demo/rakuraku/miss/miss2.rb +0 -1
  147. data/demo/rakuraku/quick/quick1.rb +0 -1
  148. data/demo/rakuraku/quick/quick2.rb +0 -1
  149. data/demo/rakuraku/quick/quick3.rb +0 -1
  150. data/demo/rakuraku/quick/quick4.rb +0 -1
  151. data/demo/rakuraku/quick/quick5.rb +0 -1
  152. data/demo/rakuraku/u2d/u2d1.rb +0 -1
  153. data/demo/rakuraku/u2d/u2d2.rb +0 -1
  154. data/demo/rakuraku/u2d/u2d3.rb +0 -1
  155. data/demo/rakuraku/u2d/u2d4.rb +0 -1
  156. data/demo/rakuraku/u2d/u2d5.rb +0 -1
  157. data/demo/rakuraku/u2d/u2d6.rb +0 -1
  158. data/demo/rakuraku/u2d/u2d7.rb +0 -1
  159. data/demo/rakuraku/uspack/uspac1.rb +0 -1
  160. data/demo/rakuraku/uspack/uspac2.rb +0 -1
  161. data/demo/rakuraku/uspack/uspac3.rb +0 -1
  162. data/demo/rakuraku/uspack/uspac4.rb +0 -1
  163. data/demo/rakuraku/uxyz/uxyz1.rb +0 -1
  164. data/demo/rakuraku/uxyz/uxyz2.rb +0 -1
  165. data/demo/rakuraku/uxyz/uxyz3.rb +0 -1
  166. data/demo/rakuraku/uxyz/uxyz4.rb +0 -1
  167. data/demo/rakuraku/uxyz/uxyz5.rb +0 -1
  168. data/demo/rakuraku/uxyz/uxyz6.rb +0 -1
  169. data/demo/rakuraku/uxyz/uxyz7.rb +0 -1
  170. data/demo/rakuraku/uxyz/uxyz8.rb +0 -1
  171. data/demo/rubydcloriginal/uemrkz1.rb +0 -1
  172. data/ext/numru/extconf.rb +47 -12
  173. data/ext/numru/init.c.default +0 -6
  174. data/lib/numru/dcl/dcl.rb +15 -2
  175. data/lib/numru/dcl/version.rb +1 -1
  176. data/ruby-dcl.gemspec +8 -5
  177. metadata +5 -11
  178. data/.ChangeLog.until20150318 +0 -389
  179. data/README +0 -29
  180. data/demo/grph2/ximage/MEMO +0 -23
  181. data/ext/numru/init.c +0 -202
  182. data/obsolete/README +0 -2
  183. data/obsolete/dcl_ext.html +0 -112
  184. data/obsolete/dcl_ext.rb +0 -313
  185. data/ruby-dcl-bigmem.gemspec +0 -36
@@ -1,2 +0,0 @@
1
- Files in this directory are under development. They will be moved into
2
- ../lib etc in future.
@@ -1,112 +0,0 @@
1
- <?xml version="1.0" ?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
- <html xmlns="http://www.w3.org/1999/xhtml">
6
- <head>
7
- <title>dcl_ext.rb</title>
8
- </head>
9
- <body>
10
- <h1><a name="label:0" id="label:0">class NumRu::Misc::KeywordOpt</a></h1><!-- RDLabel: "class NumRu::Misc::KeywordOpt" -->
11
- <h2><a name="label:1" id="label:1">Overview</a></h2><!-- RDLabel: "Overview" -->
12
- <p>A class to facilitate optional keyword arguments. More specifically,
13
- it helps the use of a Hash to mimic the keyword argument system.</p>
14
- <h2><a name="label:2" id="label:2">Usage example</a></h2><!-- RDLabel: "Usage example" -->
15
- <p>Suppose that you introduce keyword arguments "flag" and "number"
16
- to the method "hoge" in a class/module Foo. It can be done as
17
- follows:</p>
18
- <pre>require 'numru/misc/keywordopt'
19
- include NumRu
20
-
21
- class Foo
22
- @@opt_hoge = KeywordOpt.new(
23
- ['flag', false, 'whether or not ...'],
24
- ['number', 1, 'number of ...'],
25
- ['help', false, 'show help message']
26
- )
27
- def hoge(regular_arg1, regular_arg2, options=nil)
28
- opt = @@opt_hoge.interpret(options)
29
- if opt['help']
30
- puts @@opt_hoge.help
31
- puts ' Current values='+opt.inspect
32
- raise HelpMessagingException, '** show help message and raise **'
33
- end
34
- # do what you want below
35
- # (options are set in the Hash opt: opt['flag'] and opt['number'])
36
- end
37
- end</pre>
38
- <p>Here, the options are defined in the class variable @@opt_hoge
39
- with option names, defualt values, and descriptions (for help
40
- messaging). One can use the method hoge as follows:</p>
41
- <pre>foo = Foo.new
42
- ...
43
- x = ...
44
- y = ...
45
- ...
46
- foo.hoge( x, y, {'flag'=&gt;true, 'number'=&gt;10} )</pre>
47
- <p>Or equivalently,</p>
48
- <pre>foo.hoge( x, y, 'flag'=&gt;true, 'number'=&gt;10 )</pre>
49
- <p>because '{}' can be omitted here. If you want to show the help message,
50
- use</p>
51
- <pre>foo.hoge( x, y, 'help'=&gt;true )</pre>
52
- <p>Tails of options names can be shortened as long as unambiguous:</p>
53
- <pre>foo.hoge( x, y, 'fla'=&gt;true, 'num'=&gt;10 )</pre>
54
- <p>This will cause an exception raised with the following help message such as:</p>
55
- <pre>\** Description of options **
56
- option name =&gt; default value (description), ..:
57
- { "flag" =&gt; false (whether or not ...),
58
- "number" =&gt; 1 (number of ...),
59
- "help" =&gt; false (show help message)}
60
- Current values={"help"=&gt;true, "number"=&gt;1, "flag"=&gt;false}
61
- NumRu::Misc::HelpMessagingException: ** show help message and raise **
62
- from (irb):78:in `hoge'
63
- from (irb):83</pre>
64
- <h2><a name="label:3" id="label:3">Class methods</a></h2><!-- RDLabel: "Class methods" -->
65
- <dl>
66
- <dt><a name="label:4" id="label:4"><code>KeywordOpt.new( *<var>args</var> )</code></a></dt><!-- RDLabel: "KeywordOpt.new" -->
67
- <dd>
68
- <p>Constructor.</p>
69
- <p>ARGUMENTS</p>
70
- <ul>
71
- <li>args : arrays of two or three elements: [option name, defualt value,
72
- description ], where the third element (description) can be omitted.
73
- Option names and descriptions must be String.</li>
74
- </ul>
75
- <p>RETURN VALUE</p>
76
- <ul>
77
- <li>a KeywordOpt object</li>
78
- </ul></dd>
79
- </dl>
80
- <h2><a name="label:5" id="label:5">Methods</a></h2><!-- RDLabel: "Methods" -->
81
- <dl>
82
- <dt><a name="label:6" id="label:6"><code>interpret(<var>hash</var>)</code></a></dt><!-- RDLabel: "interpret" -->
83
- <dd>
84
- <p>Interprets a hash that specifies option values.</p>
85
- <p>ARGUMENTS</p>
86
- <ul>
87
- <li>hash (Hash) : a hash with string keys matching option names (initialized
88
- when constructed). The matching is case sensitive and done such
89
- that the tail of a option name can be omitted as long as
90
- unambiguous (for example, 'num' for 'number').</li>
91
- </ul>
92
- <p>RETURN VALUE</p>
93
- <ul>
94
- <li>a Hash containing the option values (default values overwritten
95
- with hash).</li>
96
- </ul>
97
- <p>POSSIBLE EXCEPTION</p>
98
- <ul>
99
- <li>hash has a key that does not match any of the option names.</li>
100
- <li>hash has a key that is ambigous</li>
101
- </ul></dd>
102
- <dt><a name="label:7" id="label:7"><code>help</code></a></dt><!-- RDLabel: "help" -->
103
- <dd>
104
- <p>Returns a help message</p>
105
- <p>RETURN VALUE</p>
106
- <ul>
107
- <li>a String describing the option names, defualt values, and descriptions</li>
108
- </ul></dd>
109
- </dl>
110
-
111
- </body>
112
- </html>
@@ -1,313 +0,0 @@
1
- =begin
2
- = class NumRu::Misc::KeywordOpt
3
-
4
- == Overview
5
-
6
- A class to facilitate optional keyword arguments. More specifically,
7
- it helps the use of a Hash to mimic the keyword argument system.
8
-
9
- == Usage example
10
-
11
- Suppose that you introduce keyword arguments "flag" and "number"
12
- to the method "hoge" in a class/module Foo. It can be done as
13
- follows:
14
-
15
- require 'numru/misc/keywordopt'
16
- include NumRu
17
-
18
- class Foo
19
- @@opt_hoge = KeywordOpt.new(
20
- ['flag', false, 'whether or not ...'],
21
- ['number', 1, 'number of ...'],
22
- ['help', false, 'show help message']
23
- )
24
- def hoge(regular_arg1, regular_arg2, options=nil)
25
- opt = @@opt_hoge.interpret(options)
26
- if opt['help']
27
- puts @@opt_hoge.help
28
- puts ' Current values='+opt.inspect
29
- raise HelpMessagingException, '** show help message and raise **'
30
- end
31
- # do what you want below
32
- # (options are set in the Hash opt: opt['flag'] and opt['number'])
33
- end
34
- end
35
-
36
- Here, the options are defined in the class variable @@opt_hoge
37
- with option names, defualt values, and descriptions (for help
38
- messaging). One can use the method hoge as follows:
39
-
40
- foo = Foo.new
41
- ...
42
- x = ...
43
- y = ...
44
- ...
45
- foo.hoge( x, y, {'flag'=>true, 'number'=>10} )
46
-
47
- Or equivalently,
48
-
49
- foo.hoge( x, y, 'flag'=>true, 'number'=>10 )
50
-
51
- because '{}' can be omitted here. If you want to show the help message,
52
- use
53
-
54
- foo.hoge( x, y, 'help'=>true )
55
-
56
- Tails of options names can be shortened as long as unambiguous:
57
-
58
- foo.hoge( x, y, 'fla'=>true, 'num'=>10 )
59
-
60
- This will cause an exception raised with the following help message such as:
61
-
62
- \** Description of options **
63
- option name => default value (description), ..:
64
- { "flag" => false (whether or not ...),
65
- "number" => 1 (number of ...),
66
- "help" => false (show help message)}
67
- Current values={"help"=>true, "number"=>1, "flag"=>false}
68
- NumRu::Misc::HelpMessagingException: ** show help message and raise **
69
- from (irb):78:in `hoge'
70
- from (irb):83
71
-
72
-
73
- == Class methods
74
-
75
- ---KeywordOpt.new( *args )
76
-
77
- Constructor.
78
-
79
- ARGUMENTS
80
- * args : arrays of two or three elements: [option name, defualt value,
81
- description ], or [option name, defualt value] if you don't want to
82
- write descriptions. Option names and descriptions must be String.
83
-
84
- RETURN VALUE
85
- * a KeywordOpt object
86
-
87
- == Methods
88
- ---interpret(hash)
89
-
90
- Interprets a hash that specifies option values.
91
-
92
- ARGUMENTS
93
- * hash (Hash) : a hash with string keys matching option names (initialized
94
- when constructed). The matching is case sensitive and done such
95
- that the tail of a option name can be omitted as long as
96
- unambiguous (for example, 'num' for 'number').
97
-
98
- RETURN VALUE
99
- * a Hash containing the option values (default values overwritten
100
- with hash).
101
-
102
- POSSIBLE EXCEPTION
103
- * hash has a key that does not match any of the option names.
104
- * hash has a key that is ambigous
105
-
106
- ---help
107
-
108
- Returns a help message
109
-
110
- RETURN VALUE
111
- * a String describing the option names, defualt values, and descriptions
112
-
113
- =end
114
-
115
- module NumRu
116
-
117
- class HelpMessagingException < StandardError
118
- end
119
-
120
- class KeywordOpt
121
- def initialize(*args)
122
- # USAGE:
123
- # KeywordOpt.new([key,val,description],[key,val,description],..)
124
- # where key is a String, and description can be omitted.
125
- @val=Hash.new
126
- @description=Hash.new
127
- @keys = []
128
- args.each{ |x|
129
- @keys.push(x[0])
130
- @val[x[0]]=x[1]
131
- @description[x[0]]= ( (x.length>=3) ? x[2] : '' )
132
- }
133
- @keys_sort = @keys.sort
134
- end
135
-
136
- def interpret(hash)
137
- return @val if !hash
138
- ##
139
- len = @val.length
140
- im = 0
141
- out = @val.dup
142
- hash.keys.sort.each do |key|
143
- rkey = /^#{key}/
144
- loop do
145
- if rkey =~ @keys_sort[im]
146
- if im<len-1 && rkey=~@keys_sort[im+1]
147
- raise "Ambiguous key specification '#{key}'."
148
- end
149
- out[@keys_sort[im]]=hash[key]
150
- break
151
- end
152
- im += 1
153
- raise "'#{key}' does not match any of the keys." if im==len
154
- end
155
- end
156
- out
157
- end
158
-
159
- def help
160
- "** Description of options **\n" +
161
- " option name => default value (description), ..:\n{" +
162
- @keys.collect{|k| " #{k.inspect} => #{@val[k].inspect} (#{@description[k]})"}.join(",\n") +
163
- '}'
164
- end
165
- end
166
-
167
- module DCL_Ext
168
-
169
- module_function
170
-
171
- #< def sgset sgstx udset udstx etc. >
172
-
173
- # USAGE EAXPLE: usset('lxinv'=>true, 'xfac'=>10, 'cxttl'=>'longitude')
174
-
175
- %w!gl sl sg sw uc ud ue ug ul um us uu uz!.each do |pkg|
176
- %w!set stx!.each do |set|
177
- eval <<-EOS
178
- def #{pkg}#{set}( hash )
179
- hash.each{|k,v|
180
- DCL.#{pkg}p#{set}(k,v)
181
- }
182
- end
183
- EOS
184
- end
185
- end
186
-
187
- # < contour/tone level handling >
188
-
189
- @@opt_levels = KeywordOpt.new(
190
- ['levels',nil, 'levels'],
191
- ['mjmn', nil, 'whether major or minor ex.[false,true,false,...]'],
192
- ['cmin', nil, 'minimum level'],
193
- ['cmax', nil, 'maximum level'],
194
- ['cint', nil, 'interval'],
195
- ['nlev', 10, 'number of levels'],
196
-
197
- ['help', nil, 'show help message']
198
- )
199
- def ud_set_levels(z,options=nil)
200
- # < interpret options >
201
- opt = @@opt_levels.interpret(options)
202
- if opt['help']
203
- puts @@opt_levels.help
204
- puts ' Current values='+opt.inspect
205
- return
206
- end
207
- if levels=opt['levels']
208
- icycle = DCL.udiget('icycle')
209
- indxmj = DCL.udiget('indxmj')
210
- indxmn = DCL.udiget('indxmn')
211
- idash = DCL.udiget('idash')
212
- ldash = DCL.udlget('ldash')
213
- label = DCL.udlget('label')
214
- isolid = DCL.udiget('isolid')
215
- rsizel = DCL.udrget('rsizel')
216
- nlev=levels.length
217
- if (mjmn=opt['mjmn'])
218
- if mjmn.length != levels.length
219
- raise ArgumentError,"lengths of levels and mjmn do not agree"
220
- end
221
- else
222
- if levels.include?(0)
223
- idx = levels.index(0)
224
- ioffset = icycle*idx - idx
225
- else
226
- ioffset = 1
227
- end
228
- mjmn = (0...nlev).collect{|x| ((x+ioffset)%icycle)==0}
229
- end
230
- indices = mjmn.collect{|x| (x ? indxmj : indxmn)}
231
- DCL.udiclv
232
- (0...nlev).each{ |i|
233
- lev = levels[i]
234
- clev = DCL.udlabl(lev)
235
- ityp = ( ldash && lev<0 ) ? idash : isolid
236
- ht = ( mjmn[i] && label ) ? rsizel : 0.0
237
- DCL.udsclv(lev,indices[i],ityp,clev,ht)
238
- }
239
- elsif opt['cmin'] || opt['cmax'] || opt['cint'] || opt['nlev']
240
- cmin=opt['cmin']
241
- cmax=opt['cmax']
242
- cint=opt['cint']
243
- nlev=opt['nlev']
244
- dx = ( cint || -nlev )
245
- if cmin || cmax
246
- # if one or two of [cmin,cmax] is/are defined:
247
- cmin = z.min if !cmin
248
- cmax = z.max if !cmax
249
- DCL.udgcla(cmin,cmax,dx)
250
- else
251
- DCL.udgclb(z,dx)
252
- end
253
- else
254
- levels = nil
255
- end
256
- end
257
- end
258
- end
259
-
260
- #################################################
261
- if $0 == __FILE__
262
- require "narray"
263
- require "numru/dcl"
264
- include NumRu
265
- include Math
266
-
267
- nx = 19
268
- ny = 19
269
- xmin = 0
270
- xmax = 360
271
- ymin = -90
272
- ymax = 90
273
- drad = PI/180
274
- dz = 0.05
275
- p = NArray.sfloat(nx, ny)
276
-
277
- #-- data ---
278
- for j in 0..ny-1
279
- for i in 0..nx-1
280
- alon = (xmin + (xmax-xmin)*i/(nx-1)) * drad
281
- alat = (ymin + (ymax-ymin)*j/(ny-1)) * drad
282
- slat = sin(alat)
283
- p[i,j] = cos(alon) * (1-slat**2) * sin(2*PI*slat) + dz
284
- end
285
- end
286
-
287
- #-- graph ---
288
- iws = (ARGV[0] || (puts ' WORKSTATION ID (I) ? ;'; DCL::sgpwsn; gets)).to_i
289
- DCL::gropn iws
290
-
291
- DCL::sldiv('y',2,1)
292
- DCL::grfrm
293
- DCL::grswnd(xmin, xmax, ymin, ymax)
294
- DCL::grsvpt(0.2, 0.8, 0.2, 0.8)
295
- DCL::grstrn(1)
296
- DCL::grstrf
297
- DCL::usdaxs
298
- DCL_Ext.udset('icycle'=>3,'idash'=>4)
299
- DCL_Ext.ud_set_levels(p, 'nlev'=>8, 'help'=>true)
300
- DCL_Ext.ud_set_levels(p,{'nlev'=>8, 'cmin'=>-0.2})
301
- DCL::udcntr(p)
302
-
303
- DCL::grfrm
304
- DCL::grswnd(xmin, xmax, ymin, ymax)
305
- DCL::grsvpt(0.2, 0.8, 0.2, 0.8)
306
- DCL::grstrn(1)
307
- DCL::grstrf
308
- DCL::usdaxs
309
- DCL_Ext.ud_set_levels(p,{'lev'=>[-0.3,-0.1,0,0.1,0.3]})
310
- DCL::udcntr(p)
311
- DCL::grcls
312
-
313
- end
@@ -1,36 +0,0 @@
1
- # coding: utf-8
2
- require "rubygems" unless defined?(Gem)
3
-
4
- lib = File.expand_path('../lib', __FILE__)
5
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
6
- require 'numru/dcl/version'
7
-
8
- genwrapper_extfile = Dir::glob('ext/**/*.c')
9
- genwrapper_libfile = Dir::glob('lib/**/*.rb')
10
- filelist = `git ls-files | egrep -v '^GenWrapper|^.git|^ToDo'`.split("\n")
11
- filelist.concat(genwrapper_extfile)
12
- filelist.concat(genwrapper_libfile)
13
- filelist.uniq!
14
-
15
- Gem::Specification.new do |spec|
16
- spec.name = "ruby-dcl-bigmem"
17
- spec.version = NumRu::DCL::VERSION
18
- spec.authors = ["T. Horinouchi", "K. Kuroi", "K. Goto"\
19
- ,"S. Nishizawa", "T. Koshiro",'GFD Dennou Club']
20
- spec.email = ["eriko@gfd-dennou.org"]
21
-
22
- spec.summary = %q{one-to-one interface to the DCL graphic library}
23
- spec.description = %q{RubyDCL is a ruby interface to the scientific graphic library DCL. It supports all the subroutines and functions in DCL on a one-to-one basis. }
24
- spec.homepage = 'http://www.gfd-dennou.org/arch/ruby/products/ruby-dcl/'
25
- spec.licenses = ["BSD-2-Clause"]
26
-
27
- spec.files = filelist
28
- spec.test_files = spec.files.grep(%r{^demo/})
29
- spec.require_paths = ["ext","lib"]
30
- spec.extensions << "ext/numru/extconf.rb"
31
-
32
- spec.required_ruby_version = Gem::Requirement.new(">= 1.6")
33
- spec.add_runtime_dependency(%q<narray-bigmem>)
34
- spec.add_runtime_dependency(%q<narray_miss-bigmem>, [">= 0"])
35
- spec.add_development_dependency(%q<gtk2>, [">= 0"])
36
- end