ruby-netcdf 0.7.2 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
data/test/test.rb CHANGED
@@ -1,192 +1,199 @@
1
- require 'numru/netcdf'
2
- ## // to test before make install -->
3
- #require 'narray'
4
- #require '../netcdfraw'
5
- #require '../lib/netcdf'
6
- ## <-- to test before make install //
7
-
1
+ require 'test/unit'
2
+ require 'numru/netcdf'
8
3
  include NumRu
9
4
 
10
- filename = "test.nc"
11
- print "creating ",filename,"...\n"
12
- file=NetCDF.create(filename,false,false)
13
-
14
- dimx=file.def_dim("x",15)
15
- dimy=file.def_dim("y",10)
16
- dimz=file.def_dim("z",10)
17
-
18
- batt = file.put_att("type_byte",5,"byte")
19
- file.put_att("type_short",[222,333,444],"sint")
20
- file.put_att("type_int",[2222,3333,4444])
21
- file.put_att("type_float",[2.22,3.33,4.44],"sfloat")
22
- file.put_att("type_double",[2.222,3.333,4.444])
23
- string = file.put_attraw("string","netCDF for Ruby","string")
24
- batt.put(6,"byte")
25
-
26
- sint_var=file.def_var("test_sint","sint",["x"])
27
- byte_var=file.def_var("test_byte","byte",["y"])
28
- byte_var2=file.def_var("test_byte2","byte",[dimy,dimz])
29
- int_var=file.def_var("test_int","int",["y"])
30
- sfloat_var=file.def_var("test_sfloat","sfloat",["z"])
31
- float_var=file.def_var("test_float","float",["y"])
32
-
33
- a=NArray.sint(10).indgen
34
- b=NArray.sint(10).fill(7)
35
- c=NArray.byte(10).indgen
36
- d=NArray.int(10).indgen
37
- e=NArray.sfloat(10).fill(1.111)
38
- f=NArray.float(10).fill(5.5555555)
39
- file.enddef
40
- file2 = file
41
- (file2 == file)
42
-
43
- byte_var.put_var_byte(c)
44
- int_var.put_var_int(d)
45
- sfloat_var.put_var_sfloat(e)
46
- float_var.put_var_float(f)
47
-
48
- file.redef
49
- byte_vara=file.def_var("test_byte_vara","byte",[dimy,dimz]);
50
- sint_vara=file.def_var("test_sint_vara","sint",["y","z"]);
51
- int_vara=file.def_var("test_int_vara","int",["y","z"]);
52
- sfloat_vara=file.def_var("test_sfloat_vara","sfloat",["y","z"]);
53
- float_vara=file.def_var("test_float_vara","float",["y","z"]);
54
- file.enddef
55
-
56
- byte_vara2 = byte_vara
57
- (byte_vara2 == byte_vara)
58
-
59
- g=NArray.byte(10,10).indgen
60
- h=NArray.byte(2,3).indgen
61
- gh=NArray.byte(1,1).fill(33)
62
- k=NArray.sint(10,10).indgen
63
- l=NArray.sint(2,3).indgen
64
- kl=NArray.sint(1,1).fill(44)
65
- m=NArray.int(10,10).indgen
66
- n=NArray.int(2,3).indgen
67
- mn=NArray.int(1,1).fill(55)
68
- o=NArray.sfloat(10,10).fill(1.234567)
69
- p=NArray.sfloat(2,3).fill(2.345678)
70
- op=NArray.int(1,1).fill(3.4)
71
- q=NArray.float(10,10).fill(1.234)
72
- r=NArray.float(2,3).fill(2.345)
73
- qr=NArray.float(1,1).fill(4.5)
74
- s=NArray.float(2,2).fill(10.0)
75
-
76
-
77
- byte_vara.put(g)
78
- byte_vara.put(h,{"start"=>[3,5]})
79
- byte_vara.put(g,{"start"=>[0,0],"end"=>[9,9]})
80
- byte_vara.put(h,{"start"=>[-8,2]})
81
- byte_vara.put(h,{"start"=>[0,0],"stride"=>[2,3]})
82
- byte_vara.put(h,{'start'=>[1,1],"end"=>[3,7],"stride"=>[2,3]})
83
- byte_vara.put(gh,{"index"=>[4,7]})
84
-
85
- sint_vara.put(k)
86
- sint_vara.put(l,{"start"=>[3,5]})
87
- sint_vara.put(k,{"start"=>[0,0],"end"=>[9,9]})
88
- sint_vara.put(l,{"start"=>[-8,2]})
89
- sint_vara.put(l,{"start"=>[0,0],"stride"=>[2,3]})
90
- sint_vara.put(l,{"start"=>[1,1],"end"=>[3,7],"stride"=>[2,3]})
91
- sint_vara.put(kl,{"index"=>[4,7]})
92
-
93
- int_vara.put(m)
94
- int_vara.put(n,{"start"=>[3,5]})
95
- int_vara.put(m,{"start"=>[0,0],"end"=>[9,9]})
96
- int_vara.put(n,{"start"=>[-8,2]})
97
- int_vara.put(n,{"start"=>[0,0],"stride"=>[2,3]})
98
- int_vara.put(n,{"start"=>[1,1],"end"=>[3,7],"stride"=>[2,3]})
99
- int_vara.put(mn,{"index"=>[4,7]})
100
-
101
- sfloat_vara.put(o)
102
- sfloat_vara.put(p,{"start"=>[3,5]})
103
- sfloat_vara.put(o,{"start"=>[0,0],"end"=>[9,9]})
104
- sfloat_vara.put(p,{"start"=>[-8,2]})
105
- sfloat_vara.put(p,{"start"=>[0,0],"stride"=>[2,3]})
106
- sfloat_vara.put(p,{"start"=>[1,1],"end"=>[3,7],"stride"=>[2,3]})
107
- sfloat_vara.put(op,{"index"=>[4,7]})
108
-
109
- float_vara.put(q)
110
- float_vara.put(r,{"start"=>[3,5]})
111
- float_vara.put(q,{"start"=>[0,0],"end"=>[9,9]})
112
- float_vara.put(r,{"start"=>[-8,2]})
113
- float_vara.put(r,{"start"=>[0,0],"stride"=>[2,3]})
114
- float_vara.put(r,{"start"=>[1,1],"end"=>[3,7],"stride"=>[2,3]})
115
- float_vara.put(qr,{"index"=>[4,7]})
116
-
117
- float_vara.dim_names
118
-
119
- na_aaa=byte_vara.get({"start"=>[3,5]})
120
- na_aab=byte_vara.get({"start"=>[0,0],"end"=>[9,9]})
121
- na_aac=byte_vara.get({"start"=>[-8,2]})
122
- na_aad=byte_vara.get({"start"=>[0,0],"stride"=>[2,3]})
123
- na_aae=byte_vara.get({'start'=>[1,1],"end"=>[3,7],"stride"=>[2,3]})
124
- na_aaf=byte_vara.get({"index"=>[4,7]})
125
- na_aag=byte_vara.get
126
-
127
- na_bba=sint_vara.get({"start"=>[3,5]})
128
- na_bbb=sint_vara.get({"start"=>[0,0],"end"=>[9,9]})
129
- na_bbc=sint_vara.get({"start"=>[-8,2]})
130
- na_bbd=sint_vara.get({"start"=>[0,0],"stride"=>[2,3]})
131
- na_bbf=sint_vara.get({"start"=>[1,1],"end"=>[3,7],"stride"=>[2,3]})
132
- na_bbg=sint_vara.get({"index"=>[4,7]})
133
- na_bbh=sint_vara.get
134
-
135
- na_cca=int_vara.get({"start"=>[3,5]})
136
- na_ccb=int_vara.get({"start"=>[0,0],"end"=>[9,9]})
137
- na_ccc=int_vara.get({"start"=>[-8,2]})
138
- na_ccd=int_vara.get({"start"=>[0,0],"stride"=>[2,3]})
139
- na_cce=int_vara.get({"start"=>[1,1],"end"=>[3,7],"stride"=>[2,3]})
140
- na_ccf=int_vara.get({"index"=>[4,7]})
141
- na_ccg=int_vara.get
142
-
143
- na_dda=sfloat_vara.get({"start"=>[3,5]})
144
- na_ddb=sfloat_vara.get({"start"=>[0,0],"end"=>[9,9]})
145
- na_ddc=sfloat_vara.get({"start"=>[-8,2]})
146
- na_ddd=sfloat_vara.get({"start"=>[0,0],"stride"=>[2,3]})
147
- na_dde=sfloat_vara.get({"start"=>[1,1],"end"=>[3,7],"stride"=>[2,3]})
148
- na_ddf=sfloat_vara.get({"index"=>[4,7]})
149
- na_ddg=sfloat_vara.get
150
-
151
- na_eea=float_vara.get({"start"=>[3,5]})
152
- na_eeb=float_vara.get({"start"=>[0,0],"end"=>[9,9]})
153
- na_eec=float_vara.get({"start"=>[-8,2]})
154
- na_eed=float_vara.get({"start"=>[0,0],"stride"=>[2,3]})
155
- na_eee=float_vara.get({"start"=>[1,1],"end"=>[3,7],"stride"=>[2,3]})
156
- na_eef=float_vara.get({"index"=>[4,7]})
157
- na_eeg=float_vara.get
158
-
159
- file.redef
160
-
161
- copy_byte = string.copy(byte_vara)
162
- copy_byte.put([0,20],"byte")
163
- copy_byte.name="new_name"
164
-
165
- copy_byte2 = copy_byte
166
- (copy_byte2 == copy_byte)
167
-
168
- copy_sint = string.copy(sint_vara)
169
- copy_sint.put("%%%%%")
170
- copy_int = string.copy(int_vara)
171
- copy_int.put([0,60],"int")
172
- copy_sfloat = string.copy(sfloat_vara)
173
- copy_sfloat.put([0.01,5.5],"sfloat")
174
- copy_float = string.copy(float_vara)
175
- copy_float.put([0.0001,5.5555],"float")
176
- file.enddef
177
- nm = copy_byte.name
178
- att0 = string.get
179
- att1 = copy_byte.get
180
- att2 = copy_sint.get
181
- att3 = copy_int.get
182
- att4 = copy_sfloat.get
183
- att5 = copy_float.get
184
- file.fill(true)
185
- file.fill(false)
186
-
187
- float_vara.dim_names
188
- float_vara.att_names
189
-
190
- file.close
191
- exit(0)
192
-
5
+ # What checked?
6
+
7
+ class TestCreate < Test::Unit::TestCase
8
+
9
+ def test_create_netcdf_file
10
+ @filename = "test.nc"
11
+ file=NetCDF.create(@filename,false,false)
12
+ assert dimx=file.def_dim("x",15)
13
+ assert dimy=file.def_dim("y",10)
14
+ assert dimz=file.def_dim("z",10)
15
+ batt = file.put_att("type_byte",5,"byte")
16
+ file.put_att("type_short",[222,333,444],"sint")
17
+ file.put_att("type_int",[2222,3333,4444])
18
+ file.put_att("type_float",[2.22,3.33,4.44],"sfloat")
19
+ file.put_att("type_double",[2.222,3.333,4.444])
20
+ string = file.put_attraw("string","netCDF for Ruby","string")
21
+ batt.put(6,"byte")
22
+
23
+ assert sint_var=file.def_var("test_sint","sint",["x"])
24
+ assert byte_var=file.def_var("test_byte","byte",["y"])
25
+ assert byte_var2=file.def_var("test_byte2","byte",[dimy,dimz])
26
+ assert int_var=file.def_var("test_int","int",["y"])
27
+ assert sfloat_var=file.def_var("test_sfloat","sfloat",["z"])
28
+ assert float_var=file.def_var("test_float","float",["y"])
29
+
30
+ assert a=NArray.sint(10).indgen
31
+ assert b=NArray.sint(10).fill(7)
32
+ assert c=NArray.byte(10).indgen
33
+ assert d=NArray.int(10).indgen
34
+ assert e=NArray.sfloat(10).fill(1.111)
35
+ assert f=NArray.float(10).fill(5.5555555)
36
+ file.enddef
37
+ file2 = file
38
+ assert_equal file2, file
39
+
40
+ assert_nil byte_var.put_var_byte(c)
41
+ assert_nil int_var.put_var_int(d)
42
+ assert_nil sfloat_var.put_var_sfloat(e)
43
+ assert_nil float_var.put_var_float(f)
44
+
45
+ file.redef
46
+ byte_vara=file.def_var("test_byte_vara","byte",[dimy,dimz]);
47
+ sint_vara=file.def_var("test_sint_vara","sint",["y","z"]);
48
+ int_vara=file.def_var("test_int_vara","int",["y","z"]);
49
+ sfloat_vara=file.def_var("test_sfloat_vara","sfloat",["y","z"]);
50
+ float_vara=file.def_var("test_float_vara","float",["y","z"]);
51
+ file.enddef
52
+
53
+ byte_vara2 = byte_vara
54
+ assert_equal byte_vara2, byte_vara
55
+
56
+ assert g=NArray.byte(10,10).indgen
57
+ assert h=NArray.byte(2,3).indgen
58
+ assert gh=NArray.byte(1,1).fill(33)
59
+ assert k=NArray.sint(10,10).indgen
60
+ assert l=NArray.sint(2,3).indgen
61
+ assert kl=NArray.sint(1,1).fill(44)
62
+ assert m=NArray.int(10,10).indgen
63
+ assert n=NArray.int(2,3).indgen
64
+ assert mn=NArray.int(1,1).fill(55)
65
+ assert o=NArray.sfloat(10,10).fill(1.234567)
66
+ assert p=NArray.sfloat(2,3).fill(2.345678)
67
+ assert op=NArray.int(1,1).fill(3.4)
68
+ assert q=NArray.float(10,10).fill(1.234)
69
+ assert r=NArray.float(2,3).fill(2.345)
70
+ assert qr=NArray.float(1,1).fill(4.5)
71
+ assert s=NArray.float(2,2).fill(10.0)
72
+
73
+ assert_nil byte_vara.put(g)
74
+ assert_nil byte_vara.put(h,{"start"=>[3,5]})
75
+ assert_nil byte_vara.put(g,{"start"=>[0,0],"end"=>[9,9]})
76
+ assert_nil byte_vara.put(h,{"start"=>[-8,2]})
77
+ assert_nil byte_vara.put(h,{"start"=>[0,0],"stride"=>[2,3]})
78
+ assert_nil byte_vara.put(h,{'start'=>[1,1],"end"=>[3,7],"stride"=>[2,3]})
79
+ assert_nil byte_vara.put(gh,{"index"=>[4,7]})
80
+
81
+ sint_vara.put(k)
82
+ sint_vara.put(l,{"start"=>[3,5]})
83
+ sint_vara.put(k,{"start"=>[0,0],"end"=>[9,9]})
84
+ sint_vara.put(l,{"start"=>[-8,2]})
85
+ sint_vara.put(l,{"start"=>[0,0],"stride"=>[2,3]})
86
+ sint_vara.put(l,{"start"=>[1,1],"end"=>[3,7],"stride"=>[2,3]})
87
+ sint_vara.put(kl,{"index"=>[4,7]})
88
+
89
+ int_vara.put(m)
90
+ int_vara.put(n,{"start"=>[3,5]})
91
+ int_vara.put(m,{"start"=>[0,0],"end"=>[9,9]})
92
+ int_vara.put(n,{"start"=>[-8,2]})
93
+ int_vara.put(n,{"start"=>[0,0],"stride"=>[2,3]})
94
+ int_vara.put(n,{"start"=>[1,1],"end"=>[3,7],"stride"=>[2,3]})
95
+ int_vara.put(mn,{"index"=>[4,7]})
96
+
97
+ sfloat_vara.put(o)
98
+ sfloat_vara.put(p,{"start"=>[3,5]})
99
+ sfloat_vara.put(o,{"start"=>[0,0],"end"=>[9,9]})
100
+ sfloat_vara.put(p,{"start"=>[-8,2]})
101
+ sfloat_vara.put(p,{"start"=>[0,0],"stride"=>[2,3]})
102
+ sfloat_vara.put(p,{"start"=>[1,1],"end"=>[3,7],"stride"=>[2,3]})
103
+ sfloat_vara.put(op,{"index"=>[4,7]})
104
+
105
+ float_vara.put(q)
106
+ float_vara.put(r,{"start"=>[3,5]})
107
+ float_vara.put(q,{"start"=>[0,0],"end"=>[9,9]})
108
+ float_vara.put(r,{"start"=>[-8,2]})
109
+ float_vara.put(r,{"start"=>[0,0],"stride"=>[2,3]})
110
+ float_vara.put(r,{"start"=>[1,1],"end"=>[3,7],"stride"=>[2,3]})
111
+ float_vara.put(qr,{"index"=>[4,7]})
112
+
113
+ float_vara.dim_names
114
+
115
+ assert na_aaa=byte_vara.get({"start"=>[3,5]})
116
+ assert na_aab=byte_vara.get({"start"=>[0,0],"end"=>[9,9]})
117
+ assert na_aac=byte_vara.get({"start"=>[-8,2]})
118
+ assert na_aad=byte_vara.get({"start"=>[0,0],"stride"=>[2,3]})
119
+ assert na_aae=byte_vara.get({'start'=>[1,1],"end"=>[3,7],"stride"=>[2,3]})
120
+ assert na_aaf=byte_vara.get({"index"=>[4,7]})
121
+ assert na_aag=byte_vara.get
122
+
123
+ assert na_bba=sint_vara.get({"start"=>[3,5]})
124
+ assert na_bbb=sint_vara.get({"start"=>[0,0],"end"=>[9,9]})
125
+ assert na_bbc=sint_vara.get({"start"=>[-8,2]})
126
+ assert na_bbd=sint_vara.get({"start"=>[0,0],"stride"=>[2,3]})
127
+ assert na_bbf=sint_vara.get({"start"=>[1,1],"end"=>[3,7],"stride"=>[2,3]})
128
+ assert na_bbg=sint_vara.get({"index"=>[4,7]})
129
+ assert na_bbh=sint_vara.get
130
+
131
+ assert na_cca=int_vara.get({"start"=>[3,5]})
132
+ assert na_ccb=int_vara.get({"start"=>[0,0],"end"=>[9,9]})
133
+ assert na_ccc=int_vara.get({"start"=>[-8,2]})
134
+ assert na_ccd=int_vara.get({"start"=>[0,0],"stride"=>[2,3]})
135
+ assert na_cce=int_vara.get({"start"=>[1,1],"end"=>[3,7],"stride"=>[2,3]})
136
+ assert na_ccf=int_vara.get({"index"=>[4,7]})
137
+ assert na_ccg=int_vara.get
138
+
139
+ assert na_dda=sfloat_vara.get({"start"=>[3,5]})
140
+ assert na_ddb=sfloat_vara.get({"start"=>[0,0],"end"=>[9,9]})
141
+ assert na_ddc=sfloat_vara.get({"start"=>[-8,2]})
142
+ assert na_ddd=sfloat_vara.get({"start"=>[0,0],"stride"=>[2,3]})
143
+ assert na_dde=sfloat_vara.get({"start"=>[1,1],"end"=>[3,7],"stride"=>[2,3]})
144
+ assert na_ddf=sfloat_vara.get({"index"=>[4,7]})
145
+ assert na_ddg=sfloat_vara.get
146
+
147
+ assert na_eea=float_vara.get({"start"=>[3,5]})
148
+ assert na_eeb=float_vara.get({"start"=>[0,0],"end"=>[9,9]})
149
+ assert na_eec=float_vara.get({"start"=>[-8,2]})
150
+ assert na_eed=float_vara.get({"start"=>[0,0],"stride"=>[2,3]})
151
+ assert na_eee=float_vara.get({"start"=>[1,1],"end"=>[3,7],"stride"=>[2,3]})
152
+ assert na_eef=float_vara.get({"index"=>[4,7]})
153
+ assert na_eeg=float_vara.get
154
+
155
+ file.redef
156
+
157
+ copy_byte = string.copy(byte_vara)
158
+ copy_byte.put([0,20],"byte")
159
+ copy_byte.name="new_name"
160
+
161
+ copy_byte2 = copy_byte
162
+ assert_equal copy_byte2, copy_byte
163
+
164
+ copy_sint = string.copy(sint_vara)
165
+ copy_sint.put("%%%%%")
166
+ copy_int = string.copy(int_vara)
167
+ copy_int.put([0,60],"int")
168
+ copy_sfloat = string.copy(sfloat_vara)
169
+ copy_sfloat.put([0.01,5.5],"sfloat")
170
+ copy_float = string.copy(float_vara)
171
+ copy_float.put([0.0001,5.5555],"float")
172
+ file.enddef
173
+ assert nm = copy_byte.name
174
+ assert att0 = string.get
175
+ assert att1 = copy_byte.get
176
+ assert att2 = copy_sint.get
177
+ assert att3 = copy_int.get
178
+ assert att4 = copy_sfloat.get
179
+ assert att5 = copy_float.get
180
+ file.fill(true)
181
+ file.fill(false)
182
+
183
+ float_vara.dim_names
184
+ float_vara.att_names
185
+
186
+ file.close
187
+ end
188
+
189
+ def teardown
190
+ if File.exist?(@filename)
191
+ begin
192
+ File.delete(@filename)
193
+ rescue
194
+ p $!
195
+ end
196
+ end
197
+ end
198
+
199
+ end
data/test/type.rb CHANGED
@@ -1,13 +1,29 @@
1
+ require 'test/unit'
1
2
  require 'numru/netcdf'
2
3
  include NumRu
3
- s = 'tmp.nc'
4
- f = NetCDF.create(s)
5
- d = f.def_dim('x',2)
6
- v = f.def_var('x','sfloat',[d])
7
- p v.vartype, v.ntype
8
- v = f.def_var('x1','sint',[d])
9
- p v.vartype, v.ntype
10
- v = f.def_var('x2','byte',[d])
11
- p v.vartype, v.ntype
12
-
13
- f.close
4
+ class TestType < Test::Unit::TestCase
5
+ def test_type
6
+ @s = 'tmp.nc'
7
+ f = NetCDF.create(@s)
8
+ d = f.def_dim('x',2)
9
+ v = f.def_var('x','sfloat',[d])
10
+ assert_equal v.vartype,
11
+ v.ntype
12
+ v = f.def_var('x1','sint',[d])
13
+ assert_equal v.vartype,
14
+ v.ntype
15
+ v = f.def_var('x2','byte',[d])
16
+ assert_equal v.vartype,
17
+ v.ntype
18
+ f.close
19
+ end
20
+ def teardown
21
+ if File.exist?(@s)
22
+ begin
23
+ File.delete(@s)
24
+ rescue
25
+ p $!
26
+ end
27
+ end
28
+ end
29
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-netcdf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.2
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Takeshi Horinouchi
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2016-09-26 00:00:00.000000000 Z
15
+ date: 2022-03-21 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: narray
@@ -42,6 +42,20 @@ dependencies:
42
42
  - - ">="
43
43
  - !ruby/object:Gem::Version
44
44
  version: '0'
45
+ - !ruby/object:Gem::Dependency
46
+ name: test-unit
47
+ requirement: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - ">="
50
+ - !ruby/object:Gem::Version
51
+ version: '0'
52
+ type: :development
53
+ prerelease: false
54
+ version_requirements: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ version: '0'
45
59
  description: RubyNetCDF is the Ruby interface to the NetCDF library built on the NArray
46
60
  library, which is an efficient multi-dimensional numeric array class for Ruby. This
47
61
  version works with Ruby2.0.
@@ -54,6 +68,7 @@ extra_rdoc_files: []
54
68
  files:
55
69
  - ".ChangeLog.until20150117"
56
70
  - ".gitignore"
71
+ - ChangeLog
57
72
  - Gemfile
58
73
  - INSTALL
59
74
  - LICENSE.txt
@@ -110,8 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
110
125
  - !ruby/object:Gem::Version
111
126
  version: '0'
112
127
  requirements: []
113
- rubyforge_project:
114
- rubygems_version: 2.2.2
128
+ rubygems_version: 3.2.5
115
129
  signing_key:
116
130
  specification_version: 4
117
131
  summary: Ruby interface to NetCDF