plplot 0.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.
- data/README +115 -0
- data/examples/x01.rb +284 -0
- data/examples/x02.rb +134 -0
- data/examples/x03.rb +81 -0
- data/examples/x04.rb +98 -0
- data/examples/x05.rb +33 -0
- data/examples/x06.rb +62 -0
- data/examples/x07.rb +69 -0
- data/examples/x08.rb +179 -0
- data/examples/x09.rb +371 -0
- data/examples/x10.rb +29 -0
- data/examples/x11.rb +151 -0
- data/examples/x12.rb +65 -0
- data/examples/x13.rb +86 -0
- data/examples/x14.rb +391 -0
- data/examples/x15.rb +266 -0
- data/examples/x16.rb +349 -0
- data/examples/x18.rb +146 -0
- data/examples/x20.rb +360 -0
- data/examples/x21.rb +280 -0
- data/examples/x22.rb +242 -0
- data/examples/x23.rb +361 -0
- data/examples/x24.rb +126 -0
- data/examples/x25.rb +114 -0
- data/examples/x26.rb +180 -0
- data/examples/x27.rb +124 -0
- data/examples/x28.rb +369 -0
- data/examples/x30.rb +141 -0
- data/examples/x31.rb +238 -0
- data/examples/x32.rb +159 -0
- data/ext/depend +1 -0
- data/ext/extconf.rb +75 -0
- data/ext/rbplplot.c +4982 -0
- data/lib/plplot.rb +101 -0
- metadata +115 -0
data/lib/plplot.rb
ADDED
@@ -0,0 +1,101 @@
|
|
1
|
+
# This is the Ruby wrapper for PLplot.
|
2
|
+
|
3
|
+
# Symbols from the narray shared library must be available before the rbplplot
|
4
|
+
# shared library can be loaded. Normally this is done by linking the
|
5
|
+
# rbplplot shared library with the narray shared library. This does not always
|
6
|
+
# work on Macs because sometimes (always?) the narray shared library is a
|
7
|
+
# so-called "bundle" which cannot be links against statically. Therefore, we
|
8
|
+
# must ensure that the narray shared library (i.e. narray.bundle on Macs) is
|
9
|
+
# loaded *before* trying to load the rbplplot shared library.
|
10
|
+
|
11
|
+
require 'rbconfig'
|
12
|
+
require 'optparse'
|
13
|
+
require 'narray'
|
14
|
+
|
15
|
+
# Require the rbplplot shared library
|
16
|
+
rbplplot_shared_lib = 'rbplplot.' + Config::CONFIG['DLEXT']
|
17
|
+
require rbplplot_shared_lib
|
18
|
+
require 'plplot_gem' if false # Fake out RDoc
|
19
|
+
|
20
|
+
# The PLOptionParser is an OptionParser subclass for use with PLplot. It adds
|
21
|
+
# long and short options, <tt>--help</tt> and <tt>-h</tt>, for displaying the
|
22
|
+
# OptionParser help text and long and short options, <tt>--plopt</tt> and
|
23
|
+
# <tt>-P</tt> for setting PLplot options. The short option for setting PLplot
|
24
|
+
# options can be changed from the default (see #new for details).
|
25
|
+
|
26
|
+
class PLOptionParser < OptionParser
|
27
|
+
def separator_tail(s='') # :nodoc:
|
28
|
+
base.append(s, nil, nil)
|
29
|
+
end
|
30
|
+
|
31
|
+
# call-seq:
|
32
|
+
# new(banner = nil, width = 32, indent = ' ' * 4[, opts]) {|self if block_given?| ...}
|
33
|
+
#
|
34
|
+
# Initializes the instance and yields itself if called with a block. If last
|
35
|
+
# arument is a +Hash+, it provides options for this instance (see below).
|
36
|
+
# Remaining arguments are passed to <tt>OptionParser#new</tt>:
|
37
|
+
#
|
38
|
+
# +banner+:: Banner message.
|
39
|
+
# +width+:: Summary width.
|
40
|
+
# +indent+:: Summary indent.
|
41
|
+
#
|
42
|
+
# The following key is recognized in the +opts+ +Hash+ (if given):
|
43
|
+
#
|
44
|
+
# <tt>:short_plopt</tt>:: Short version of <tt>--plopt</tt>
|
45
|
+
# Defaults to <tt>-P</tt>
|
46
|
+
# Set to +nil+ or +false+ to have no short version
|
47
|
+
#
|
48
|
+
# If #new is invoked with a block, the help text for the <tt>--help</tt> and
|
49
|
+
# <tt>--plopt</tt> options will be at the end of the help text, otherwise
|
50
|
+
# they will be at the beginning.
|
51
|
+
|
52
|
+
def initialize(*args)
|
53
|
+
opts = {
|
54
|
+
:short_plopt => '-P',
|
55
|
+
}
|
56
|
+
opts.merge!(args.pop) if Hash === args[-1]
|
57
|
+
|
58
|
+
# Set banner if not given. This differs slightly from OptionParser's
|
59
|
+
# default banner in that any extension on $0 is preserved.
|
60
|
+
args[0] ||= "Usage: #{File.basename($0)} [options]"
|
61
|
+
|
62
|
+
super(*args) do |op|
|
63
|
+
program_name = File.basename($0)
|
64
|
+
separator = :separator
|
65
|
+
on = :on
|
66
|
+
|
67
|
+
if block_given?
|
68
|
+
yield op
|
69
|
+
separator = :separator_tail
|
70
|
+
on = :on_tail
|
71
|
+
end
|
72
|
+
|
73
|
+
op.send(separator, '')
|
74
|
+
op.send(separator, 'PLplot options:')
|
75
|
+
op.send(on, '-h', '--help', 'Print out this message') do
|
76
|
+
puts op.help
|
77
|
+
exit
|
78
|
+
end
|
79
|
+
op.send(on, opts[:short_plopt]||true, '--plopt OPT[=ARG][,...]',
|
80
|
+
'Set PLplot options',
|
81
|
+
%Q{For short help use: "#{opts[:short_plopt]||'--plopt '}-"},
|
82
|
+
%Q{For long help use: "#{opts[:short_plopt]||'--plopt '}h"}
|
83
|
+
) do |o|
|
84
|
+
o.gsub!('\,', "\e")
|
85
|
+
plopts = o.split(/,(?=\D)/).map! do |kv|
|
86
|
+
kv.gsub!("\e", ',')
|
87
|
+
kv.split('=', 2)
|
88
|
+
end
|
89
|
+
plopts.flatten!
|
90
|
+
plopts.compact!
|
91
|
+
PLplot.plsetopt(plopts, true)
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
# For scripts using PLplot, but no custom options, PLOptionParser.parse! will
|
97
|
+
# create an instance of PLOptionParser and call its #parse! method.
|
98
|
+
def self.parse!
|
99
|
+
PLOptionParser.new.parse!
|
100
|
+
end
|
101
|
+
end
|
metadata
ADDED
@@ -0,0 +1,115 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: plplot
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
version: 0.0.0
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- David MacMahon
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
|
17
|
+
date: 2010-03-16 00:00:00 -07:00
|
18
|
+
default_executable:
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: narray
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 0
|
29
|
+
- 5
|
30
|
+
- 9
|
31
|
+
version: 0.5.9
|
32
|
+
type: :runtime
|
33
|
+
version_requirements: *id001
|
34
|
+
description: |
|
35
|
+
Provides PLplot functions in a Ruby module. PLplot is a
|
36
|
+
cross-platform software package for creating scientific plots.
|
37
|
+
|
38
|
+
email: davidm@astro.berkeley.edu
|
39
|
+
executables: []
|
40
|
+
|
41
|
+
extensions:
|
42
|
+
- ext/extconf.rb
|
43
|
+
extra_rdoc_files:
|
44
|
+
- README
|
45
|
+
- ext/rbplplot.c
|
46
|
+
files:
|
47
|
+
- README
|
48
|
+
- lib/plplot.rb
|
49
|
+
- examples/x01.rb
|
50
|
+
- examples/x02.rb
|
51
|
+
- examples/x03.rb
|
52
|
+
- examples/x04.rb
|
53
|
+
- examples/x05.rb
|
54
|
+
- examples/x06.rb
|
55
|
+
- examples/x07.rb
|
56
|
+
- examples/x08.rb
|
57
|
+
- examples/x09.rb
|
58
|
+
- examples/x10.rb
|
59
|
+
- examples/x11.rb
|
60
|
+
- examples/x12.rb
|
61
|
+
- examples/x13.rb
|
62
|
+
- examples/x14.rb
|
63
|
+
- examples/x15.rb
|
64
|
+
- examples/x16.rb
|
65
|
+
- examples/x18.rb
|
66
|
+
- examples/x20.rb
|
67
|
+
- examples/x21.rb
|
68
|
+
- examples/x22.rb
|
69
|
+
- examples/x23.rb
|
70
|
+
- examples/x24.rb
|
71
|
+
- examples/x25.rb
|
72
|
+
- examples/x26.rb
|
73
|
+
- examples/x27.rb
|
74
|
+
- examples/x28.rb
|
75
|
+
- examples/x30.rb
|
76
|
+
- examples/x31.rb
|
77
|
+
- examples/x32.rb
|
78
|
+
- ext/depend
|
79
|
+
- ext/extconf.rb
|
80
|
+
- ext/rbplplot.c
|
81
|
+
has_rdoc: true
|
82
|
+
homepage: http://plplot.rubyforge.org/
|
83
|
+
licenses: []
|
84
|
+
|
85
|
+
post_install_message:
|
86
|
+
rdoc_options:
|
87
|
+
- -m
|
88
|
+
- README
|
89
|
+
require_paths:
|
90
|
+
- lib
|
91
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
segments:
|
96
|
+
- 1
|
97
|
+
- 8
|
98
|
+
- 1
|
99
|
+
version: 1.8.1
|
100
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
segments:
|
105
|
+
- 0
|
106
|
+
version: "0"
|
107
|
+
requirements:
|
108
|
+
- PLplot version 5.9.5 with plf2ops patch (http://plplot.sourceforge.net/)
|
109
|
+
rubyforge_project: plplot
|
110
|
+
rubygems_version: 1.3.6
|
111
|
+
signing_key:
|
112
|
+
specification_version: 3
|
113
|
+
summary: Ruby interface to PLplot
|
114
|
+
test_files: []
|
115
|
+
|