ruby-gr 0.0.20 → 0.0.25
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/LICENSE.txt +2 -2
- data/README.md +44 -36
- data/lib/gr.rb +1022 -843
- data/lib/gr/ffi.rb +5 -2
- data/lib/gr/plot.rb +93 -41
- data/lib/gr3.rb +305 -246
- data/lib/gr3/ffi.rb +1 -1
- data/lib/gr_commons/define_methods.rb +5 -5
- data/lib/gr_commons/fiddley.rb +7 -7
- data/lib/gr_commons/gr_common_utils.rb +4 -4
- data/lib/gr_commons/gr_commons.rb +5 -1
- data/lib/gr_commons/gr_lib.rb +83 -0
- data/lib/gr_commons/gr_logger.rb +106 -0
- data/lib/gr_commons/jupyter_support.rb +5 -5
- data/lib/gr_commons/{extern.rb → try_extern.rb} +1 -1
- data/lib/gr_commons/version.rb +1 -1
- data/lib/grm.rb +34 -17
- data/lib/grm/ffi.rb +28 -14
- metadata +21 -6
- data/lib/gr/plot.rb.md +0 -172
data/lib/grm/ffi.rb
CHANGED
@@ -15,21 +15,21 @@ module GRM
|
|
15
15
|
raise LoadError, 'Could not find GR Framework'
|
16
16
|
end
|
17
17
|
|
18
|
-
extend GRCommons::
|
18
|
+
extend GRCommons::TryExtern
|
19
19
|
|
20
20
|
# Currently, the declarations of GRM functions are distributed in several
|
21
21
|
# header files.
|
22
22
|
|
23
23
|
# https://github.com/sciapp/gr/blob/master/lib/grm/args.h
|
24
|
-
|
25
24
|
try_extern 'grm_args_t *grm_args_new(void)'
|
26
25
|
try_extern 'void grm_args_delete(grm_args_t *args)'
|
27
|
-
# Fiddle does not currently support variable-length arguments in C.
|
28
26
|
try_extern 'int grm_args_push(grm_args_t *args, const char *key, const char *value_format, ...)'
|
29
27
|
try_extern 'int grm_args_push_buf(grm_args_t *args, const char *key, const char *value_format, const void *buffer, int apply_padding)'
|
30
28
|
try_extern 'int grm_args_contains(const grm_args_t *args, const char *keyword)'
|
31
29
|
try_extern 'void grm_args_clear(grm_args_t *args)'
|
32
30
|
try_extern 'void grm_args_remove(grm_args_t *args, const char *key)'
|
31
|
+
typealias 'grm_args_ptr_t', 'void*'
|
32
|
+
try_extern 'grm_args_ptr_t grm_length(double value, const char *unit)'
|
33
33
|
|
34
34
|
# https://github.com/sciapp/gr/blob/master/lib/grm/dump.h
|
35
35
|
try_extern 'void grm_dump(const grm_args_t *args, FILE *f)'
|
@@ -37,27 +37,41 @@ module GRM
|
|
37
37
|
try_extern 'char *grm_dump_json_str(void)'
|
38
38
|
|
39
39
|
# https://github.com/sciapp/gr/blob/master/lib/grm/event.h
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
# try_extern 'int grm_unregister(grm_event_type_t type)'
|
40
|
+
typealias 'grm_event_type_t', 'int' # enum
|
41
|
+
typealias 'grm_event_callback_t', 'void*'
|
42
|
+
try_extern 'int grm_register(grm_event_type_t type, grm_event_callback_t callback)'
|
43
|
+
try_extern 'int grm_unregister(grm_event_type_t type)'
|
45
44
|
|
46
45
|
# https://github.com/sciapp/gr/blob/master/lib/grm/interaction.h
|
46
|
+
# FIXME: https://github.com/ruby/fiddle/issues/68
|
47
|
+
typealias 'const_int', 'int' # FIXME
|
47
48
|
try_extern 'int grm_input(const grm_args_t *input_args)'
|
48
|
-
|
49
|
-
|
49
|
+
try_extern 'int grm_get_box(const_int x1, const_int y1, const_int x2, const_int y2, const_int keep_aspect_ratio, int *x, int *y, int *w, int *h)' # FIXME
|
50
|
+
try_extern 'grm_tooltip_info_t *grm_get_tooltip(const_int, const_int)' # FIXME
|
50
51
|
|
51
52
|
# https://github.com/sciapp/gr/blob/master/lib/grm/net.h
|
52
|
-
|
53
|
-
|
54
|
-
|
53
|
+
try_extern 'void *grm_open(int is_receiver, const char *name, unsigned int id,
|
54
|
+
const char *(*custom_recv)(const char *, unsigned int),
|
55
|
+
int (*custom_send)(const char *, unsigned int, const char *))'
|
55
56
|
try_extern 'grm_args_t *grm_recv(const void *p, grm_args_t *args)'
|
56
|
-
# Fiddle does not currently support variable-length arguments in C.
|
57
57
|
try_extern 'int grm_send(const void *p, const char *data_desc, ...)'
|
58
58
|
try_extern 'int grm_send_buf(const void *p, const char *data_desc, const void *buffer, int apply_padding)'
|
59
59
|
try_extern 'int grm_send_ref(const void *p, const char *key, char format, const void *ref, int len)'
|
60
60
|
try_extern 'int grm_send_args(const void *p, const grm_args_t *args)'
|
61
61
|
try_extern 'void grm_close(const void *p)'
|
62
|
+
|
63
|
+
# https://github.com/sciapp/gr/blob/master/lib/grm/plot.h
|
64
|
+
try_extern 'void grm_finalize(void)'
|
65
|
+
try_extern 'int grm_clear(void)'
|
66
|
+
try_extern 'unsigned int grm_max_plotid(void)'
|
67
|
+
try_extern 'int grm_merge(const grm_args_t *args)'
|
68
|
+
try_extern 'int grm_merge_extended(const grm_args_t *args, int hold, const char *identificator)'
|
69
|
+
try_extern 'int grm_merge_hold(const grm_args_t *args)'
|
70
|
+
try_extern 'int grm_merge_named(const grm_args_t *args, const char *identificator)'
|
71
|
+
try_extern 'int grm_plot(const grm_args_t *args)'
|
72
|
+
try_extern 'int grm_switch(unsigned int id)'
|
73
|
+
|
74
|
+
# https://github.com/sciapp/gr/blob/master/lib/grm/util.h
|
75
|
+
try_extern 'FILE *grm_get_stdout(void)'
|
62
76
|
end
|
63
77
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-gr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.25
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kojix2
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-02-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: histogram
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: pkg-config
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: bundler
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -134,18 +148,19 @@ files:
|
|
134
148
|
- lib/gr/ffi.rb
|
135
149
|
- lib/gr/grbase.rb
|
136
150
|
- lib/gr/plot.rb
|
137
|
-
- lib/gr/plot.rb.md
|
138
151
|
- lib/gr/version.rb
|
139
152
|
- lib/gr3.rb
|
140
153
|
- lib/gr3/ffi.rb
|
141
154
|
- lib/gr3/gr3base.rb
|
142
155
|
- lib/gr3/version.rb
|
143
156
|
- lib/gr_commons/define_methods.rb
|
144
|
-
- lib/gr_commons/extern.rb
|
145
157
|
- lib/gr_commons/fiddley.rb
|
146
158
|
- lib/gr_commons/gr_common_utils.rb
|
147
159
|
- lib/gr_commons/gr_commons.rb
|
160
|
+
- lib/gr_commons/gr_lib.rb
|
161
|
+
- lib/gr_commons/gr_logger.rb
|
148
162
|
- lib/gr_commons/jupyter_support.rb
|
163
|
+
- lib/gr_commons/try_extern.rb
|
149
164
|
- lib/gr_commons/version.rb
|
150
165
|
- lib/grm.rb
|
151
166
|
- lib/grm/ffi.rb
|
@@ -164,14 +179,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
164
179
|
requirements:
|
165
180
|
- - ">="
|
166
181
|
- !ruby/object:Gem::Version
|
167
|
-
version: '2.
|
182
|
+
version: '2.5'
|
168
183
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
169
184
|
requirements:
|
170
185
|
- - ">="
|
171
186
|
- !ruby/object:Gem::Version
|
172
187
|
version: '0'
|
173
188
|
requirements: []
|
174
|
-
rubygems_version: 3.
|
189
|
+
rubygems_version: 3.2.3
|
175
190
|
signing_key:
|
176
191
|
specification_version: 4
|
177
192
|
summary: GR for Ruby
|
data/lib/gr/plot.rb.md
DELETED
@@ -1,172 +0,0 @@
|
|
1
|
-
This is a memo to think about the structure of Plot/Figure.
|
2
|
-
|
3
|
-
````ruby
|
4
|
-
|
5
|
-
module GR
|
6
|
-
# object oriented way
|
7
|
-
class PlotBase
|
8
|
-
end
|
9
|
-
|
10
|
-
class Line < PlotBase
|
11
|
-
end
|
12
|
-
|
13
|
-
class << self
|
14
|
-
def set_viewport; end
|
15
|
-
|
16
|
-
def minmax; end
|
17
|
-
|
18
|
-
def set_window; end
|
19
|
-
|
20
|
-
def draw_axes; end
|
21
|
-
|
22
|
-
def draw_polar_axes; end
|
23
|
-
|
24
|
-
def _inqtext; end
|
25
|
-
|
26
|
-
def _text; end
|
27
|
-
|
28
|
-
def draw_legend; end
|
29
|
-
|
30
|
-
def draw_colorbar; end
|
31
|
-
|
32
|
-
def colormap; end
|
33
|
-
|
34
|
-
def to_rgba; end
|
35
|
-
|
36
|
-
# Ruby is object-oriented language.
|
37
|
-
# Julia is more functional...
|
38
|
-
# def create_context
|
39
|
-
# end
|
40
|
-
# def restore_context
|
41
|
-
# end
|
42
|
-
# def figure
|
43
|
-
# end
|
44
|
-
|
45
|
-
# def hold
|
46
|
-
# end
|
47
|
-
# def usecolorscheme
|
48
|
-
# end
|
49
|
-
|
50
|
-
# Set current subplot index.
|
51
|
-
def subplot; end
|
52
|
-
|
53
|
-
# draw_grid
|
54
|
-
|
55
|
-
# xticks
|
56
|
-
# yticks
|
57
|
-
# zticks
|
58
|
-
|
59
|
-
# xticklabels
|
60
|
-
# yticklabels
|
61
|
-
|
62
|
-
def plot_img; end # should be private?
|
63
|
-
|
64
|
-
def plot_iso; end # should be private?
|
65
|
-
|
66
|
-
def plot_polar; end # should be private?
|
67
|
-
|
68
|
-
# send_meta
|
69
|
-
|
70
|
-
def plot_data; end # should be private?
|
71
|
-
|
72
|
-
def plot_args; end # should be private?
|
73
|
-
|
74
|
-
# Draw one or more line plots.
|
75
|
-
def plot; end
|
76
|
-
|
77
|
-
# def plot_line_over oplot_line ?
|
78
|
-
|
79
|
-
# Draw one or more step or staircase plots.
|
80
|
-
def step; end
|
81
|
-
|
82
|
-
# Draw one or more scatter plots.
|
83
|
-
def scatter; end
|
84
|
-
|
85
|
-
# Draw a stem plot.
|
86
|
-
def stem; end
|
87
|
-
|
88
|
-
# Draw a bar plot.
|
89
|
-
def barplot; end
|
90
|
-
|
91
|
-
def hist; end # should be private?
|
92
|
-
|
93
|
-
# Draw a histogram.
|
94
|
-
def histgram; end
|
95
|
-
|
96
|
-
# Draw a polar histogram.
|
97
|
-
def polarhistogram; end
|
98
|
-
|
99
|
-
# Draw a contour plot.
|
100
|
-
def contour; end
|
101
|
-
# GR.contour is already defined in GR::FFI class.
|
102
|
-
|
103
|
-
# Draw a filled contour plot.
|
104
|
-
def contourf; end
|
105
|
-
# GR.contourf is already defined in GR::FFI class.
|
106
|
-
|
107
|
-
# Draw a hexagon binning plot.
|
108
|
-
def hexbin; end
|
109
|
-
# GR.hexbin is already defined in GR::FFI class.
|
110
|
-
|
111
|
-
# Draw a heatmap.
|
112
|
-
def heatmap; end
|
113
|
-
|
114
|
-
def polarheatmap; end
|
115
|
-
|
116
|
-
# Draw a three-dimensional wireframe plot.
|
117
|
-
def wireframe; end
|
118
|
-
|
119
|
-
# Draw a three-dimensional surface plot.
|
120
|
-
def surface; end
|
121
|
-
|
122
|
-
def volume; end
|
123
|
-
|
124
|
-
# Draw one or more three-dimensional line plots.
|
125
|
-
def plot3; end
|
126
|
-
|
127
|
-
# Draw one or more three-dimensional scatter plots.
|
128
|
-
def scatter3; end
|
129
|
-
|
130
|
-
def redraw; end
|
131
|
-
|
132
|
-
def title; end
|
133
|
-
|
134
|
-
def xlabel; end
|
135
|
-
|
136
|
-
def ylabel; end
|
137
|
-
|
138
|
-
def legend; end
|
139
|
-
|
140
|
-
def xlim; end
|
141
|
-
|
142
|
-
def ylim; end
|
143
|
-
|
144
|
-
def savefig; end
|
145
|
-
|
146
|
-
def meshgrid; end # should be private ?
|
147
|
-
|
148
|
-
def peaks; end # should be private ?
|
149
|
-
|
150
|
-
def imshow; end
|
151
|
-
|
152
|
-
# Draw an isosurface.
|
153
|
-
def isosurface; end
|
154
|
-
|
155
|
-
# Draw one or more polar plots.
|
156
|
-
def polar; end
|
157
|
-
|
158
|
-
# Draw a triangular surface plot.
|
159
|
-
def trisurf; end
|
160
|
-
|
161
|
-
# Draw a triangular contour plot.
|
162
|
-
def tricont; end
|
163
|
-
|
164
|
-
def shade; end
|
165
|
-
|
166
|
-
# def set_panzoom ?
|
167
|
-
|
168
|
-
# mainloop
|
169
|
-
end
|
170
|
-
end
|
171
|
-
|
172
|
-
```
|