gmt 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ext/gmt/extconf.rb +19 -3
- data/ext/gmt/gmt.c +27 -0
- data/ext/gmt/option.c +2 -2
- data/lib/gmt.rb +34 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 116cb71a63ceee278a6cd534b47283c5d90a49d2
|
4
|
+
data.tar.gz: 793f1e3ec6e3f1fbfdf1278fbf373bdb4627a67a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3ddc705150d74f92d57f92424a5ab70b323f1be9fd58f8b637b8b3d5935f596081ca531d40e795015d1e474803bc59ed30efe8459667bc8d6c78877f5c22a1fc
|
7
|
+
data.tar.gz: d1c2536387dfc8f7a76624cc6d3b1f041922a0de3e412815acdb6ae2af795b17494e0a51b60e0db005a7a8afc9cfba4727d24d7942f94e07b6ecc9a1eec2790a
|
data/ext/gmt/extconf.rb
CHANGED
@@ -23,17 +23,33 @@ LIB_DIRS = [
|
|
23
23
|
dir_config('gmt', HEADER_DIRS, LIB_DIRS)
|
24
24
|
|
25
25
|
abort 'missing gmt.h' unless find_header('gmt.h')
|
26
|
+
abort 'missing gmt_version.h' unless find_header('gmt_version.h')
|
26
27
|
|
27
|
-
|
28
|
+
FUNCS =
|
28
29
|
[
|
29
30
|
'GMT_Create_Session',
|
30
31
|
'GMT_Destroy_Session',
|
31
32
|
]
|
32
33
|
|
33
|
-
abort "libgmt is missing" unless find_library('gmt',
|
34
|
+
abort "libgmt is missing" unless find_library('gmt', FUNCS.first)
|
34
35
|
|
35
|
-
|
36
|
+
FUNCS.each do |func|
|
36
37
|
abort "missing #{func}()" unless have_func(func)
|
37
38
|
end
|
38
39
|
|
40
|
+
MACROS =
|
41
|
+
[
|
42
|
+
'GMT_MAJOR_VERSION',
|
43
|
+
'GMT_MINOR_VERSION',
|
44
|
+
'GMT_RELEASE_VERSION'
|
45
|
+
]
|
46
|
+
|
47
|
+
MACROS.each do |macro|
|
48
|
+
abort "missing #{macro}" unless have_macro(macro, 'gmt_version.h')
|
49
|
+
end
|
50
|
+
|
51
|
+
# remove a C90 specific warning
|
52
|
+
|
53
|
+
CONFIG['warnflags'].slice!(/ -Wdeclaration-after-statement/)
|
54
|
+
|
39
55
|
create_makefile 'gmt/gmt'
|
data/ext/gmt/gmt.c
CHANGED
@@ -1,8 +1,13 @@
|
|
1
1
|
#include <ruby.h>
|
2
2
|
#include <gmt.h>
|
3
|
+
#include <gmt_version.h>
|
3
4
|
|
4
5
|
#include "option.h"
|
5
6
|
|
7
|
+
#define API_VER(major, minor, release) (10000 * major + 100 * minor + release)
|
8
|
+
#define GMT_API_VER API_VER(GMT_MAJOR_VERSION, GMT_MINOR_VERSION, GMT_RELEASE_VERSION)
|
9
|
+
#define API_AT_LEAST(major, minor, release) (GMT_API_VER >= API_VER(major, minor, release))
|
10
|
+
|
6
11
|
typedef struct
|
7
12
|
{
|
8
13
|
void *session;
|
@@ -139,6 +144,14 @@ GMT_FUN(pswiggle)
|
|
139
144
|
GMT_FUN(psxy)
|
140
145
|
GMT_FUN(psxyz)
|
141
146
|
|
147
|
+
#if API_AT_LEAST(5, 3, 0)
|
148
|
+
GMT_FUN(pssolar)
|
149
|
+
#endif
|
150
|
+
|
151
|
+
#if API_AT_LEAST(5, 4, 0)
|
152
|
+
GMT_FUN(psternary)
|
153
|
+
#endif
|
154
|
+
|
142
155
|
/* Gridding of Data Tables */
|
143
156
|
|
144
157
|
GMT_FUN(greenspline)
|
@@ -261,6 +274,14 @@ void Init_gmt(void)
|
|
261
274
|
RB_DPM(psxy);
|
262
275
|
RB_DPM(psxyz);
|
263
276
|
|
277
|
+
#if API_AT_LEAST(5, 3, 0)
|
278
|
+
RB_DPM(pssolar);
|
279
|
+
#endif
|
280
|
+
|
281
|
+
#if API_AT_LEAST(5, 4, 0)
|
282
|
+
RB_DPM(psternary);
|
283
|
+
#endif
|
284
|
+
|
264
285
|
/* Gridding of Data Tables */
|
265
286
|
|
266
287
|
RB_DPM(greenspline);
|
@@ -340,6 +361,12 @@ void Init_gmt(void)
|
|
340
361
|
RB_DPM(gmt2kml);
|
341
362
|
RB_DPM(kml2gmt);
|
342
363
|
RB_DPM(psconvert);
|
364
|
+
|
365
|
+
/* version constants */
|
366
|
+
|
367
|
+
rb_define_const(cGMT, "VERSION_MAJOR", INT2NUM(GMT_MAJOR_VERSION));
|
368
|
+
rb_define_const(cGMT, "VERSION_MINOR", INT2NUM(GMT_MINOR_VERSION));
|
369
|
+
rb_define_const(cGMT, "VERSION_RELEASE", INT2NUM(GMT_RELEASE_VERSION));
|
343
370
|
}
|
344
371
|
|
345
372
|
#undef RB_DPM
|
data/ext/gmt/option.c
CHANGED
@@ -39,7 +39,7 @@ extern gmt_option_t* ruby_array_to_gmt_options(VALUE opts, void *session)
|
|
39
39
|
|
40
40
|
gmt_option_t *gmt_opts = NULL;
|
41
41
|
|
42
|
-
for (size_t i = 0 ; i < RARRAY_LEN(opts) ; i++)
|
42
|
+
for (size_t i = 0 ; i < (size_t)RARRAY_LEN(opts) ; i++)
|
43
43
|
{
|
44
44
|
VALUE opt = RARRAY_PTR(opts)[i];
|
45
45
|
|
@@ -81,7 +81,7 @@ extern gmt_option_t* append_inputs_to_gmt_options(VALUE files,
|
|
81
81
|
if (TYPE(files) != T_ARRAY)
|
82
82
|
rb_raise(rb_eArgError, "inputs should be an array");
|
83
83
|
|
84
|
-
for (size_t i = 0 ; i < RARRAY_LEN(files) ; i++)
|
84
|
+
for (size_t i = 0 ; i < (size_t)RARRAY_LEN(files) ; i++)
|
85
85
|
{
|
86
86
|
VALUE file = RARRAY_PTR(files)[i];
|
87
87
|
|
data/lib/gmt.rb
CHANGED
@@ -47,7 +47,7 @@
|
|
47
47
|
#
|
48
48
|
# Each GMT function is available as instance method, and each has the same
|
49
49
|
# signatures: several _arguments_, typically input files, followed by a
|
50
|
-
# single options hash. The options
|
50
|
+
# single options hash. The options hash corresponds to the command-line
|
51
51
|
# options of the GMT program; hence the shell command
|
52
52
|
#
|
53
53
|
# gmt makecpt -Cgebco depths.txt -i2 -Z -E24 > my_depths.cpt
|
@@ -91,8 +91,41 @@ class GMT
|
|
91
91
|
|
92
92
|
class << self
|
93
93
|
|
94
|
+
# @param [Integer] major The major version
|
95
|
+
# @param [Integer] minor The minor version
|
96
|
+
# @param [Integer] release The release version
|
97
|
+
# @return [Boolean] +true+ if the current API version is at least as requested
|
98
|
+
#
|
99
|
+
# @example If the current API version if 5.3.2, then
|
100
|
+
# GMT.version_at_least?(5) #=> true
|
101
|
+
# GMT.version_at_least?(5, 3, 1) #=> true
|
102
|
+
# GMT.version_at_least?(5, 3, 3) #=> false
|
103
|
+
def version_at_least?(major, minor=0, release=0)
|
104
|
+
if VERSION_MAJOR > major then
|
105
|
+
true
|
106
|
+
elsif VERSION_MAJOR < major then
|
107
|
+
false
|
108
|
+
else
|
109
|
+
version_at_least_minor?(minor, release)
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
94
113
|
private
|
95
114
|
|
115
|
+
def version_at_least_minor?(minor, release)
|
116
|
+
if VERSION_MINOR > minor then
|
117
|
+
true
|
118
|
+
elsif VERSION_MINOR < minor then
|
119
|
+
false
|
120
|
+
else
|
121
|
+
version_at_least_release?(release)
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
def version_at_least_release?(release)
|
126
|
+
VERSION_RELEASE >= release
|
127
|
+
end
|
128
|
+
|
96
129
|
# @macro [attach] wrapper_ps
|
97
130
|
#
|
98
131
|
# A PostScript function (accepts +:file+ and +:position+ options).
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gmt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- J.J. Green
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-08-
|
11
|
+
date: 2017-08-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0.9'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rubygems-tasks
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '2.4'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '2.4'
|
69
83
|
description: |
|
70
84
|
A Ruby extension for the Generic Mapping Tools (GMT5)
|
71
85
|
cartographic toolset.
|