ruby-gr 0.0.23 → 0.58.1.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.
- checksums.yaml +4 -4
- data/LICENSE.txt +2 -2
- data/README.md +65 -19
- data/lib/gr.rb +1117 -852
- data/lib/gr/ffi.rb +9 -2
- data/lib/gr/plot.rb +176 -85
- data/lib/gr3.rb +313 -238
- data/lib/gr3/ffi.rb +3 -1
- data/lib/gr_commons/define_methods.rb +5 -5
- data/lib/gr_commons/fiddley.rb +6 -6
- data/lib/gr_commons/gr_common_utils.rb +4 -4
- data/lib/gr_commons/gr_commons.rb +2 -2
- data/lib/gr_commons/gr_lib.rb +104 -0
- data/lib/gr_commons/gr_logger.rb +118 -0
- data/lib/gr_commons/jupyter_support.rb +7 -7
- data/lib/gr_commons/{extern.rb → try_extern.rb} +1 -1
- data/lib/gr_commons/version.rb +1 -1
- data/lib/grm.rb +21 -8
- data/lib/grm/ffi.rb +8 -4
- metadata +6 -20
- data/lib/gr/plot.rb.md +0 -172
- data/lib/gr_commons/search_shared_library.rb +0 -73
data/lib/grm/ffi.rb
CHANGED
@@ -15,7 +15,7 @@ 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.
|
@@ -28,6 +28,7 @@ module GRM
|
|
28
28
|
try_extern 'int grm_args_contains(const grm_args_t *args, const char *keyword)'
|
29
29
|
try_extern 'void grm_args_clear(grm_args_t *args)'
|
30
30
|
try_extern 'void grm_args_remove(grm_args_t *args, const char *key)'
|
31
|
+
typealias 'grm_args_ptr_t', 'void*'
|
31
32
|
try_extern 'grm_args_ptr_t grm_length(double value, const char *unit)'
|
32
33
|
|
33
34
|
# https://github.com/sciapp/gr/blob/master/lib/grm/dump.h
|
@@ -36,14 +37,17 @@ module GRM
|
|
36
37
|
try_extern 'char *grm_dump_json_str(void)'
|
37
38
|
|
38
39
|
# https://github.com/sciapp/gr/blob/master/lib/grm/event.h
|
40
|
+
typealias 'grm_event_type_t', 'int' # enum
|
41
|
+
typealias 'grm_event_callback_t', 'void*'
|
39
42
|
try_extern 'int grm_register(grm_event_type_t type, grm_event_callback_t callback)'
|
40
43
|
try_extern 'int grm_unregister(grm_event_type_t type)'
|
41
44
|
|
42
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
|
43
48
|
try_extern 'int grm_input(const grm_args_t *input_args)'
|
44
|
-
try_extern 'int grm_get_box(
|
45
|
-
try_extern '
|
46
|
-
try_extern 'grm_tooltip_info_t *grm_get_tooltip(const int, const int)'
|
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
|
47
51
|
|
48
52
|
# https://github.com/sciapp/gr/blob/master/lib/grm/net.h
|
49
53
|
try_extern 'void *grm_open(int is_receiver, const char *name, unsigned int id,
|
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.58.1.0
|
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-08-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: histogram
|
@@ -66,20 +66,6 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: fiddle
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
70
|
name: pry
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -162,19 +148,19 @@ files:
|
|
162
148
|
- lib/gr/ffi.rb
|
163
149
|
- lib/gr/grbase.rb
|
164
150
|
- lib/gr/plot.rb
|
165
|
-
- lib/gr/plot.rb.md
|
166
151
|
- lib/gr/version.rb
|
167
152
|
- lib/gr3.rb
|
168
153
|
- lib/gr3/ffi.rb
|
169
154
|
- lib/gr3/gr3base.rb
|
170
155
|
- lib/gr3/version.rb
|
171
156
|
- lib/gr_commons/define_methods.rb
|
172
|
-
- lib/gr_commons/extern.rb
|
173
157
|
- lib/gr_commons/fiddley.rb
|
174
158
|
- lib/gr_commons/gr_common_utils.rb
|
175
159
|
- lib/gr_commons/gr_commons.rb
|
160
|
+
- lib/gr_commons/gr_lib.rb
|
161
|
+
- lib/gr_commons/gr_logger.rb
|
176
162
|
- lib/gr_commons/jupyter_support.rb
|
177
|
-
- lib/gr_commons/
|
163
|
+
- lib/gr_commons/try_extern.rb
|
178
164
|
- lib/gr_commons/version.rb
|
179
165
|
- lib/grm.rb
|
180
166
|
- lib/grm/ffi.rb
|
@@ -200,7 +186,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
200
186
|
- !ruby/object:Gem::Version
|
201
187
|
version: '0'
|
202
188
|
requirements: []
|
203
|
-
rubygems_version: 3.
|
189
|
+
rubygems_version: 3.2.22
|
204
190
|
signing_key:
|
205
191
|
specification_version: 4
|
206
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
|
-
```
|
@@ -1,73 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'pkg-config'
|
4
|
-
|
5
|
-
module GRCommons
|
6
|
-
# This module helps GR, GR and GRM to search the shared library.
|
7
|
-
#
|
8
|
-
# The order of priority:
|
9
|
-
# 1. RubyInstaller ( for Windows only )
|
10
|
-
# 2. Environment variable GRDIR
|
11
|
-
# 3. pkg-config : https://github.com/ruby-gnome/pkg-config
|
12
|
-
# The following packages (should) support pkg-config.
|
13
|
-
# - Linux
|
14
|
-
# - Red Data Tools https://github.com/red-data-tools/packages.red-data-tools.org
|
15
|
-
# - libgr-dev
|
16
|
-
# - libgr3-dev
|
17
|
-
# - libgrm-dev
|
18
|
-
# - Mac
|
19
|
-
# - Homebrew https://github.com/Homebrew/homebrew-core
|
20
|
-
# - libgr
|
21
|
-
# - Windows
|
22
|
-
# - MinGW https://github.com/msys2/MINGW-packages
|
23
|
-
# - mingw-w64-gr
|
24
|
-
module SearchSharedLibrary
|
25
|
-
# Search the shared library.
|
26
|
-
# @note This method does not detect the Operating System.
|
27
|
-
#
|
28
|
-
# @param gr_lib_name [String] The actual file name of the shared library.
|
29
|
-
# @param pkg_name [String] The package name to be used when searching with pkg-configg
|
30
|
-
def search_shared_library(gr_lib_name, pkg_name)
|
31
|
-
# Windows + RubyInstaller
|
32
|
-
if Object.const_defined?(:RubyInstaller)
|
33
|
-
ENV['GRDIR'] ||= [
|
34
|
-
RubyInstaller::Runtime.msys2_installation.msys_path,
|
35
|
-
RubyInstaller::Runtime.msys2_installation.mingwarch
|
36
|
-
].join(File::ALT_SEPARATOR)
|
37
|
-
recursive_search(gr_lib_name, ENV['GRDIR']).tap do |path|
|
38
|
-
RubyInstaller::Runtime.add_dll_directory(File.dirname(path))
|
39
|
-
end
|
40
|
-
# ENV['GRDIR'] (Linux, Mac, Windows)
|
41
|
-
elsif ENV['GRDIR']
|
42
|
-
begin
|
43
|
-
recursive_search(gr_lib_name, ENV['GRDIR'])
|
44
|
-
rescue StandardError => e
|
45
|
-
warn "\nWhile searching for #{gr_lib_name} in the directory specified " \
|
46
|
-
"in the GRDIR environment variable, ENV['GRDIR']=#{ENV['GRDIR']}, " \
|
47
|
-
"the following error occurred : #{e.message}"
|
48
|
-
pkg_config_search(gr_lib_name, pkg_name)
|
49
|
-
end
|
50
|
-
else
|
51
|
-
pkg_config_search(gr_lib_name, pkg_name)
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
def recursive_search(name, base_dir)
|
56
|
-
Dir.chdir(base_dir) do
|
57
|
-
if path = Dir["**/#{name}"].first # FIXME
|
58
|
-
File.expand_path(path)
|
59
|
-
else
|
60
|
-
raise StandardError "#{name} not found in #{base_dir}"
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
def pkg_config_search(gr_lib_name, pkg_name)
|
66
|
-
PKGConfig.variable(pkg_name, 'sopath')
|
67
|
-
rescue PackageConfig::NotFoundError => e
|
68
|
-
raise "#{e.message} Cannot find #{gr_lib_name}. " \
|
69
|
-
"Please Make sure that GR is installed and the environment ” \
|
70
|
-
”variable GRDIR is set correctly."
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|