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.
- checksums.yaml +4 -4
- data/ChangeLog +1090 -0
- data/LICENSE.txt +1 -1
- data/demo/gokuraku/hop/hop.rb +0 -1
- data/demo/gokuraku/jump/jump1.rb +0 -1
- data/demo/gokuraku/jump/jump2.rb +0 -1
- data/demo/gokuraku/layout/lay1.rb +0 -1
- data/demo/gokuraku/layout/lay2.rb +0 -1
- data/demo/gokuraku/step/step0.rb +0 -1
- data/demo/gokuraku/step/step1.rb +0 -1
- data/demo/gokuraku/step/step2.rb +0 -1
- data/demo/gokuraku/u1d/u1d1.rb +0 -1
- data/demo/gokuraku/u1d/u1d2.rb +0 -1
- data/demo/gokuraku/u2d/u2d1.rb +0 -1
- data/demo/gokuraku/u2d/u2d2.rb +0 -1
- data/demo/gokuraku/u2d/u2d3.rb +0 -1
- data/demo/gokuraku/u2d/u2d4.rb +0 -1
- data/demo/grph1/scpack/scpkt2.rb +0 -1
- data/demo/grph1/scpack/scpkt3.rb +0 -1
- data/demo/grph1/scpack/scpkt6.rb +0 -1
- data/demo/grph1/scpack/scpkt7.rb +0 -1
- data/demo/grph1/scpack/scpkt8.rb +0 -1
- data/demo/grph1/sgpack/sgfont.rb +0 -1
- data/demo/grph1/sgpack/sgfonz.rb +0 -1
- data/demo/grph1/sgpack/sgksx1.rb +0 -1
- data/demo/grph1/sgpack/sgksx2.rb +0 -1
- data/demo/grph1/sgpack/sgksx3.rb +0 -1
- data/demo/grph1/sgpack/sglidx.rb +0 -1
- data/demo/grph1/sgpack/sgltyp.rb +0 -1
- data/demo/grph1/sgpack/sgpk01.rb +0 -1
- data/demo/grph1/sgpack/sgpk02.rb +0 -1
- data/demo/grph1/sgpack/sgpk03.rb +0 -1
- data/demo/grph1/sgpack/sgpk04.rb +0 -1
- data/demo/grph1/sgpack/sgpk05.rb +0 -1
- data/demo/grph1/sgpack/sgpk06.rb +0 -1
- data/demo/grph1/sgpack/sgpk07.rb +0 -1
- data/demo/grph1/sgpack/sgpk08.rb +0 -1
- data/demo/grph1/sgpack/sgpk09.rb +0 -1
- data/demo/grph1/sgpack/sgpk10.rb +0 -1
- data/demo/grph1/sgpack/sgtclr.rb +0 -1
- data/demo/grph1/sgpack/sgtone.rb +0 -1
- data/demo/grph1/sgpack/sgtonz.rb +0 -1
- data/demo/grph1/slpack/slpk01.rb +0 -1
- data/demo/grph1/slpack/slpk02.rb +0 -1
- data/demo/grph1/slpack/slpk03.rb +0 -1
- data/demo/grph1/slpack/slpk04.rb +0 -1
- data/demo/grph2/grpack/grpk01.rb +0 -1
- data/demo/grph2/ucpack/ucpk01.rb +0 -1
- data/demo/grph2/ucpack/ucpk02.rb +0 -1
- data/demo/grph2/udegpk/u2df01.rb +0 -1
- data/demo/grph2/udegpk/u2df02.rb +0 -1
- data/demo/grph2/udegpk/u2df03.rb +0 -1
- data/demo/grph2/udegpk/u2df04.rb +0 -1
- data/demo/grph2/udegpk/u2df05.rb +0 -1
- data/demo/grph2/udegpk/u2df06.rb +0 -1
- data/demo/grph2/udegpk/u2df07.rb +0 -1
- data/demo/grph2/udegpk/u2df08.rb +0 -1
- data/demo/grph2/udegpk/u2df09b.rb +0 -1
- data/demo/grph2/udegpk/u2df09c.rb +0 -1
- data/demo/grph2/udegpk/u2df09e.rb +0 -1
- data/demo/grph2/udegpk/u2df09f.rb +0 -1
- data/demo/grph2/uipack/uipk01.rb +0 -1
- data/demo/grph2/uipack/uipk02.rb +25 -17
- data/demo/grph2/uipack/uipk03.rb +50 -0
- data/demo/grph2/ulpack/ulpk01.rb +0 -1
- data/demo/grph2/ulpack/ulpk01n.rb +0 -1
- data/demo/grph2/ulpack/ulpk02.rb +0 -1
- data/demo/grph2/ulpack/ulpk02n.rb +0 -1
- data/demo/grph2/umpack/test01.rb +0 -1
- data/demo/grph2/umpack/test02.rb +0 -1
- data/demo/grph2/umpack/test03.rb +0 -1
- data/demo/grph2/umpack/test04.rb +0 -1
- data/demo/grph2/umpack/test05.rb +0 -1
- data/demo/grph2/umpack/test06.rb +0 -1
- data/demo/grph2/umpack/test07.rb +0 -1
- data/demo/grph2/umpack/test08.rb +0 -1
- data/demo/grph2/umpack/test10.rb +0 -1
- data/demo/grph2/umpack/umpk01.rb +0 -1
- data/demo/grph2/umpack/umpk02.rb +0 -1
- data/demo/grph2/umpack/umpk03.rb +0 -1
- data/demo/grph2/umpack/umpk04.rb +0 -1
- data/demo/grph2/umpack/umpk05.rb +0 -1
- data/demo/grph2/uspack/uspk01.rb +0 -1
- data/demo/grph2/uspack/uspk02.rb +0 -1
- data/demo/grph2/uspack/uspk03.rb +0 -1
- data/demo/grph2/uspack/uspk04.rb +0 -1
- data/demo/grph2/uspack/uspk05.rb +0 -1
- data/demo/grph2/uspack/uspk06.rb +0 -1
- data/demo/grph2/uspack/uspk07.rb +0 -1
- data/demo/grph2/uspack/uspk08.rb +0 -1
- data/demo/grph2/uspack/uspk09.rb +0 -1
- data/demo/grph2/uspack/uspk10.rb +0 -1
- data/demo/grph2/uspack/uspk11.rb +0 -1
- data/demo/grph2/uspack/uspk12.rb +0 -1
- data/demo/grph2/uupack/uupk01.rb +0 -1
- data/demo/grph2/uupack/uupk02.rb +0 -1
- data/demo/grph2/uupack/uupk03.rb +0 -1
- data/demo/grph2/uupack/uupk04.rb +0 -1
- data/demo/grph2/uupack/uupk05.rb +0 -1
- data/demo/grph2/uupack/uupk06.rb +0 -1
- data/demo/grph2/uupack/uupk07.rb +0 -1
- data/demo/grph2/uxyzpk/uxyz01.rb +0 -1
- data/demo/grph2/uxyzpk/uxyz02.rb +0 -1
- data/demo/grph2/uxyzpk/uxyz03.rb +0 -1
- data/demo/grph2/uxyzpk/uxyz04.rb +0 -1
- data/demo/grph2/uxyzpk/uxyz05.rb +0 -1
- data/demo/grph2/uxyzpk/uxyz06.rb +0 -1
- data/demo/grph2/uxyzpk/uxyz07.rb +0 -1
- data/demo/grph2/uxyzpk/uxyz08.rb +0 -1
- data/demo/grph2/uxyzpk/uxyz09.rb +0 -1
- data/demo/grph2/uxyzpk/uxyz10.rb +0 -1
- data/demo/grph2/ximage/ximg01.rb +0 -1
- data/demo/math1/clsplib/cslb01.rb +0 -1
- data/demo/math2/fftlib/fftl01.rb +0 -1
- data/demo/math2/fftlib/fftl02.rb +0 -1
- data/demo/math2/intrlib/intr01.rb +0 -1
- data/demo/math2/rnmlib/rnml01.rb +0 -1
- data/demo/math2/vstlib/vstl01.rb +0 -1
- data/demo/math2/vstlib/vstl02.rb +0 -1
- data/demo/rakuraku/color/color1.rb +0 -1
- data/demo/rakuraku/color/color2.rb +0 -1
- data/demo/rakuraku/color/color3.rb +0 -1
- data/demo/rakuraku/kihon/kihon1.rb +0 -1
- data/demo/rakuraku/kihon/kihon2.rb +0 -1
- data/demo/rakuraku/kihon/kihon3.rb +0 -1
- data/demo/rakuraku/kihon/kihon4.rb +0 -1
- data/demo/rakuraku/kihon/kihon5.rb +0 -1
- data/demo/rakuraku/kihon/kihon6.rb +0 -1
- data/demo/rakuraku/kihon/kihon7.rb +0 -1
- data/demo/rakuraku/kihon/kihon8.rb +0 -1
- data/demo/rakuraku/kihon/kihon9.rb +0 -1
- data/demo/rakuraku/kihon/kihona.rb +0 -1
- data/demo/rakuraku/kihon/kihonb.rb +0 -1
- data/demo/rakuraku/kihon/kihonc.rb +0 -1
- data/demo/rakuraku/layout/lay1.rb +0 -1
- data/demo/rakuraku/layout/lay2.rb +0 -1
- data/demo/rakuraku/layout/lay3.rb +0 -1
- data/demo/rakuraku/map3d/map3d1.rb +0 -1
- data/demo/rakuraku/map3d/map3d2.rb +0 -1
- data/demo/rakuraku/map3d/map3d3.rb +0 -1
- data/demo/rakuraku/map3d/map3d4.rb +0 -1
- data/demo/rakuraku/map3d/map3d5.rb +0 -1
- data/demo/rakuraku/map3d/map3d6.rb +0 -1
- data/demo/rakuraku/map3d/map3d7.rb +0 -1
- data/demo/rakuraku/miss/miss1.rb +0 -1
- data/demo/rakuraku/miss/miss2.rb +0 -1
- data/demo/rakuraku/quick/quick1.rb +0 -1
- data/demo/rakuraku/quick/quick2.rb +0 -1
- data/demo/rakuraku/quick/quick3.rb +0 -1
- data/demo/rakuraku/quick/quick4.rb +0 -1
- data/demo/rakuraku/quick/quick5.rb +0 -1
- data/demo/rakuraku/u2d/u2d1.rb +0 -1
- data/demo/rakuraku/u2d/u2d2.rb +0 -1
- data/demo/rakuraku/u2d/u2d3.rb +0 -1
- data/demo/rakuraku/u2d/u2d4.rb +0 -1
- data/demo/rakuraku/u2d/u2d5.rb +0 -1
- data/demo/rakuraku/u2d/u2d6.rb +0 -1
- data/demo/rakuraku/u2d/u2d7.rb +0 -1
- data/demo/rakuraku/uspack/uspac1.rb +0 -1
- data/demo/rakuraku/uspack/uspac2.rb +0 -1
- data/demo/rakuraku/uspack/uspac3.rb +0 -1
- data/demo/rakuraku/uspack/uspac4.rb +0 -1
- data/demo/rakuraku/uxyz/uxyz1.rb +0 -1
- data/demo/rakuraku/uxyz/uxyz2.rb +0 -1
- data/demo/rakuraku/uxyz/uxyz3.rb +0 -1
- data/demo/rakuraku/uxyz/uxyz4.rb +0 -1
- data/demo/rakuraku/uxyz/uxyz5.rb +0 -1
- data/demo/rakuraku/uxyz/uxyz6.rb +0 -1
- data/demo/rakuraku/uxyz/uxyz7.rb +0 -1
- data/demo/rakuraku/uxyz/uxyz8.rb +0 -1
- data/demo/rubydcloriginal/uemrkz1.rb +0 -1
- data/ext/numru/extconf.rb +47 -12
- data/ext/numru/init.c.default +0 -6
- data/lib/numru/dcl/dcl.rb +15 -2
- data/lib/numru/dcl/version.rb +1 -1
- data/ruby-dcl.gemspec +8 -5
- metadata +5 -11
- data/.ChangeLog.until20150318 +0 -389
- data/README +0 -29
- data/demo/grph2/ximage/MEMO +0 -23
- data/ext/numru/init.c +0 -202
- data/obsolete/README +0 -2
- data/obsolete/dcl_ext.html +0 -112
- data/obsolete/dcl_ext.rb +0 -313
- data/ruby-dcl-bigmem.gemspec +0 -36
data/obsolete/README
DELETED
data/obsolete/dcl_ext.html
DELETED
@@ -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'=>true, 'number'=>10} )</pre>
|
47
|
-
<p>Or equivalently,</p>
|
48
|
-
<pre>foo.hoge( x, y, 'flag'=>true, 'number'=>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'=>true )</pre>
|
52
|
-
<p>Tails of options names can be shortened as long as unambiguous:</p>
|
53
|
-
<pre>foo.hoge( x, y, 'fla'=>true, 'num'=>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 => default value (description), ..:
|
57
|
-
{ "flag" => false (whether or not ...),
|
58
|
-
"number" => 1 (number of ...),
|
59
|
-
"help" => false (show help message)}
|
60
|
-
Current values={"help"=>true, "number"=>1, "flag"=>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>
|
data/obsolete/dcl_ext.rb
DELETED
@@ -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
|
data/ruby-dcl-bigmem.gemspec
DELETED
@@ -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
|