rb-grib 0.2.2 → 0.3.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: f8f3d0dfbd8bcdf02783485139224e0e0c151071
4
+ data.tar.gz: 6fc49fc43aa1af1fd981803253b40281d2850350
5
+ SHA512:
6
+ metadata.gz: 5c1a614dd1264329f35793a828cb074d7f5e4603ee21ee22ef5014a73a695b14871e4e3fb750693a5014820b380a31dd4603316fdebcd0d46c350bddd1773092
7
+ data.tar.gz: c1d07b21d120b59563f2bce553676a8448d4179de0b90f7c8a5cdf3db59f9efd7613140978ccd64d062469a969f04b31fa4d1c707f4237b2cc92df85c7e8e111
data/BSDL CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (C) 2011 Seiya Nishizawa and GFD Dennou Club. All rights reserved.
1
+ Copyright (C) 2011-2016 Seiya Nishizawa and GFD Dennou Club. All rights reserved.
2
2
 
3
3
  Redistribution and use in source and binary forms, with or without
4
4
  modification, are permitted provided that the following conditions
@@ -12,7 +12,7 @@ The URL of the rb-GRIB home-page is:
12
12
  = Requires
13
13
 
14
14
  * Ruby (http://www.ruby-lang.org/)
15
- * NArray (http://narray.rubyforge.org/index.html.en)
15
+ * NumRu-NArray (https://github.com/seiya/numru-narray) or NArray (https://masa16.github.io/narray/index.html)
16
16
  * NArrayMiss (http://ruby.gfd-dennou.org/products/narray_miss/)
17
17
  * GRIB API (http://www.ecmwf.int/products/data/software/grib_api.html)
18
18
 
@@ -2,13 +2,23 @@ require "mkmf"
2
2
 
3
3
  begin
4
4
  require "rubygems"
5
- paths = Gem.find_files("narray.h").map{|d| File.dirname(d)}
5
+ if Gem::Specification.respond_to?(:find_by_name)
6
+ if spec = ( Gem::Specification.find_by_name("numru-narray") || Gem::Specification.find_by_name("narray") )
7
+ gem_path = spec.full_gem_path
8
+ end
9
+ else
10
+ if (spec = (Gem.source_index.find_name("numru-narray") || Gem.source_index.find_name("narray")) ).any?
11
+ gem_path = spec.full_gem_path
12
+ end
13
+ end
14
+ gem_path = File.join(gem_path, "ext", "numru", "narray")
6
15
  rescue LoadError
7
- paths = []
16
+ dir_config("narray", RbConfig::CONFIG["sitearchdir"])
17
+ end
18
+
19
+ unless find_header("narray.h", gem_path)
20
+ find_header("narray.h", File.join(gem_path,"src"))
8
21
  end
9
- paths += [$archdir, $sitearchdir, $vendorarchdir]
10
- dir_config("narray")
11
- find_header("narray.h", *paths)
12
22
 
13
23
  dir_config("grib_api")
14
24
  if have_header("grib_api.h") && have_library("grib_api")
data/ext/grib.c CHANGED
@@ -4,6 +4,9 @@
4
4
  #include "grib_api.h"
5
5
  #include "narray.h"
6
6
 
7
+ #ifndef NARRAY_BIGMEM
8
+ typedef int na_shape_t;
9
+ #endif
7
10
 
8
11
  #define MAX_VALUE_LENGTH 1024
9
12
 
@@ -11,7 +14,7 @@
11
14
  static void
12
15
  check_error(int code)
13
16
  {
14
- if (code) rb_raise(rb_eRuntimeError, grib_get_error_message(code));
17
+ if (code) rb_raise(rb_eRuntimeError, "%s", grib_get_error_message(code));
15
18
  };
16
19
 
17
20
 
@@ -681,7 +684,7 @@ rg_message_get_value(int argc, VALUE *argv, VALUE self)
681
684
  ret = LONG2NUM(l);
682
685
  }
683
686
  } else {
684
- int shape[1];
687
+ na_shape_t shape[1];
685
688
  struct NARRAY *nary;
686
689
  shape[0] = len;
687
690
  VALUE rnary = na_make_object(NA_LINT, 1, shape, cNArray);
@@ -698,7 +701,7 @@ rg_message_get_value(int argc, VALUE *argv, VALUE self)
698
701
  if (grib_get_double(message->handle, name, &value) == GRIB_SUCCESS)
699
702
  ret = rb_float_new(value);
700
703
  } else {
701
- int shape[1];
704
+ na_shape_t shape[1];
702
705
  struct NARRAY *nary;
703
706
  shape[0] = len;
704
707
  VALUE rnary = na_make_object(NA_DFLOAT, 1, shape, cNArray);
@@ -730,7 +733,7 @@ rg_message_get_data(VALUE self)
730
733
  double *lon, *lat, *value;
731
734
  VALUE na_lon, na_lat, na_value;
732
735
  struct NARRAY *nary;
733
- int shape[1];
736
+ na_shape_t shape[1];
734
737
  shape[0] = np;
735
738
  na_lon = na_make_object(NA_DFLOAT, 1, shape, cNArray);
736
739
  GetNArray(na_lon, nary);
@@ -757,7 +760,7 @@ rg_message_get_data(VALUE self)
757
760
 
758
761
  void Init_grib()
759
762
  {
760
- rb_require("narray");
763
+ // rb_require("narray");
761
764
 
762
765
  id_init = rb_intern("init");
763
766
 
@@ -4,7 +4,15 @@ if File.exist?(def_path)
4
4
  if gdp = ENV[env_name]
5
5
  ENV[env_name] = "#{gdp}:#{def_path}"
6
6
  else
7
- path = `grib_info -d`.strip
7
+ begin
8
+ path = `grib_info -d`.strip
9
+ rescue
10
+ $stderr.print <<-EOM
11
+ The 'grib_info' command cannot be found.
12
+ If you have the command, please set the PATH environment variable.
13
+ EOM
14
+ exit(-1)
15
+ end
8
16
  if File.exist?(path)
9
17
  ENV[env_name] = "#{path}:#{def_path}"
10
18
  end
@@ -1,5 +1,5 @@
1
1
  module NumRu
2
2
  class Grib
3
- VERSION = "0.2.2"
3
+ VERSION = "0.3.0"
4
4
  end
5
5
  end
@@ -21,6 +21,6 @@ Gem::Specification.new do |s|
21
21
 
22
22
  # specify any dependencies here; for example:
23
23
  s.add_development_dependency "rspec"
24
- s.add_runtime_dependency "narray"
24
+ s.add_runtime_dependency "numru-narray"
25
25
  s.add_runtime_dependency "narray_miss"
26
26
  end
@@ -1,4 +1,5 @@
1
1
  require File.expand_path(File.join('.','spec_helper'), File.dirname(__FILE__))
2
+ include NumRu
2
3
 
3
4
  dir = File.expand_path(File.join('..','data'), File.dirname(__FILE__))
4
5
  GribData = {
@@ -48,7 +49,7 @@ describe NumRu::Grib do
48
49
  describe 'Grib.is_a_Grib?' do
49
50
  it 'returns whether the specific file is a GRIB1/2 file' do
50
51
  GribData.each do |fname, hash|
51
- NumRu::Grib.is_a_Grib?(fname).should be_true
52
+ expect(NumRu::Grib.is_a_Grib?(fname)).to eq true
52
53
  end
53
54
  end
54
55
  end
@@ -59,12 +60,12 @@ describe NumRu::Grib do
59
60
  it 'returns Grib object' do
60
61
  GribData.each do |fname, hash|
61
62
  file = NumRu::Grib.open(fname)
62
- file.should be_a_kind_of(NumRu::Grib)
63
+ expect(file).to be_instance_of(NumRu::Grib)
63
64
  @files.push file
64
65
  end
65
66
  end
66
67
  it 'raise exception when file name which does not exist is given' do
67
- proc { NumRu::Grib.open(fname_not_exist)}.should raise_error
68
+ expect { NumRu::Grib.open(fname_not_exist) }.to raise_error(RuntimeError)
68
69
  end
69
70
  end
70
71
 
@@ -75,7 +76,7 @@ describe NumRu::Grib do
75
76
  end
76
77
  it do
77
78
  @files.each do |file|
78
- proc {file.close}.should_not raise_error
79
+ expect {file.close}.not_to raise_error
79
80
  end
80
81
  end
81
82
  end
@@ -89,15 +90,19 @@ describe NumRu::Grib do
89
90
  @files.each{|fname,file| file.close}
90
91
  end
91
92
  it '#path returns path' do
92
- @files.each {|fname,file| file.path.should == fname}
93
+ @files.each do |fname,file|
94
+ expect( file.path ).to eq fname
95
+ end
93
96
  end
94
97
  it '#var_names returns Array of variable names' do
95
- @files.each {|fname, file| file.var_names.should == GribData[fname].keys}
98
+ @files.each do |fname, file|
99
+ expect( file.var_names ).to eq GribData[fname].keys
100
+ end
96
101
  end
97
102
  it '#var returns GribVar object' do
98
103
  @files.each do |fname, file|
99
104
  GribData[fname].each do |vname, hash|
100
- file.var(vname).should be_a_kind_of NumRu::GribVar
105
+ expect( file.var(vname) ).to be_instance_of NumRu::GribVar
101
106
  end
102
107
  end
103
108
  end
@@ -116,41 +121,41 @@ describe NumRu::GribVar do
116
121
  end
117
122
  after { @files.each{|file| file.close}}
118
123
  it '#rank returns rank' do
119
- @vars.each{|var,hash| var.rank.should == hash[:shape].length}
124
+ @vars.each{|var,hash| expect(var.rank).to eq hash[:shape].length}
120
125
  end
121
126
  it '#total returns total length' do
122
- @vars.each{|var,hash| var.total.should == hash[:shape].inject(1,:*)}
127
+ @vars.each{|var,hash| expect(var.total).to eq hash[:shape].inject(1,:*)}
123
128
  end
124
129
  it '#dim_names returns Array of dimension names' do
125
- @vars.each{|var,hash| var.dim_names.should == hash[:dims]}
130
+ @vars.each{|var,hash| expect(var.dim_names).to eq hash[:dims]}
126
131
  end
127
132
  it '#shape returns Array of shape' do
128
- @vars.each{|var,hash| var.shape.should == hash[:shape]}
133
+ @vars.each{|var,hash| expect(var.shape).to eq hash[:shape]}
129
134
  end
130
135
  it '#dim returns GribDim' do
131
136
  @vars.each do |var,hash|
132
- hash[:dims].each{|dname| var.dim(dname).should be_a_kind_of NumRu::GribDim}
137
+ hash[:dims].each{|dname| expect(var.dim(dname)).to be_instance_of NumRu::GribDim}
133
138
  end
134
139
  end
135
140
  it '#att_names returns Array of attribute names' do
136
- @vars.each{|var,hash| var.att_names.should be_a_kind_of Array}
141
+ @vars.each{|var,hash| expect(var.att_names).to be_instance_of Array}
137
142
  end
138
143
  it '#att returns attribute value' do
139
144
  @vars.each do |var,hash|
140
- var.att_names.each{|aname| var.att(aname).should_not == nil }
145
+ var.att_names.each{|aname| expect(var.att(aname)).to_not eq nil }
141
146
  end
142
147
  end
143
148
  it '#typecode returns type code' do
144
- @vars.each{|var,hash| var.typecode.should be_a_kind_of Fixnum}
149
+ @vars.each{|var,hash| expect(var.typecode).to be_instance_of Fixnum}
145
150
  end
146
151
  it '#missing_value returns missing value' do
147
- @vars.each{|var,hash| var.missing_value.should be_a_kind_of Numeric}
152
+ @vars.each{|var,hash| expect(var.missing_value).to be_kind_of Numeric}
148
153
  end
149
154
  it '#get returns value' do
150
155
  @vars.each do |var,hash|
151
156
  hash[:val].each do |idx,val|
152
157
  v = var.get[*idx]
153
- ((v-val).abs/((v+val)/2)).should < 1e-10
158
+ expect((v-val).abs/((v+val)/2)).to be < 1e-10
154
159
  end
155
160
  end
156
161
  end
@@ -175,23 +180,23 @@ describe NumRu::GribDim do
175
180
  @files.each{|file| file.close}
176
181
  end
177
182
  it '#length returns length' do
178
- @dims.each{|dim,len| dim.length.should == len}
183
+ @dims.each{|dim,len| expect(dim.length).to eq len}
179
184
  end
180
185
  it '#val returns value' do
181
186
  @dims.each do |dim,len|
182
- dim.val.should be_a_kind_of NArray
183
- dim.val.length.should == len
187
+ expect(dim.val).to be_instance_of NArray
188
+ expect(dim.val.length).to eq len
184
189
  end
185
190
  end
186
191
  it '#typecode returns typecode' do
187
- @dims.each{|dim,len| dim.typecode.should be_a_kind_of Fixnum}
192
+ @dims.each{|dim,len| expect(dim.typecode).to be_instance_of Fixnum}
188
193
  end
189
194
  it '#att_names returns Array of attribute names' do
190
- @dims.each{|dim,len| dim.att_names.should be_a_kind_of Array}
195
+ @dims.each{|dim,len| expect(dim.att_names).to be_instance_of Array}
191
196
  end
192
197
  it '#att returns attributes value' do
193
198
  @dims.each do |dim,len|
194
- dim.att_names.each{|aname| dim.att(aname).should_not == nil }
199
+ dim.att_names.each{|aname| expect(dim.att(aname)).to_not eq nil }
195
200
  end
196
201
  end
197
202
 
metadata CHANGED
@@ -1,75 +1,66 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rb-grib
3
- version: !ruby/object:Gem::Version
4
- hash: 19
5
- prerelease:
6
- segments:
7
- - 0
8
- - 2
9
- - 2
10
- version: 0.2.2
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.0
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Seiya Nishizawa
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2012-03-09 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
11
+ date: 2016-02-22 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
21
14
  name: rspec
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
26
17
  - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 3
29
- segments:
30
- - 0
31
- version: "0"
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
32
20
  type: :development
33
- version_requirements: *id001
34
- - !ruby/object:Gem::Dependency
35
- name: narray
36
21
  prerelease: false
37
- requirement: &id002 !ruby/object:Gem::Requirement
38
- none: false
39
- requirements:
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: numru-narray
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
40
31
  - - ">="
41
- - !ruby/object:Gem::Version
42
- hash: 3
43
- segments:
44
- - 0
45
- version: "0"
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
46
34
  type: :runtime
47
- version_requirements: *id002
48
- - !ruby/object:Gem::Dependency
49
- name: narray_miss
50
35
  prerelease: false
51
- requirement: &id003 !ruby/object:Gem::Requirement
52
- none: false
53
- requirements:
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
54
38
  - - ">="
55
- - !ruby/object:Gem::Version
56
- hash: 3
57
- segments:
58
- - 0
59
- version: "0"
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: narray_miss
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
60
48
  type: :runtime
61
- version_requirements: *id003
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
62
55
  description: This class library enable you to handle GRIB file.
63
- email:
56
+ email:
64
57
  - seiya@gfd-dennou.org
65
58
  executables: []
66
-
67
- extensions:
59
+ extensions:
68
60
  - ext/extconf.rb
69
61
  extra_rdoc_files: []
70
-
71
- files:
72
- - .gitignore
62
+ files:
63
+ - ".gitignore"
73
64
  - BSDL
74
65
  - Gemfile
75
66
  - LICENSE.txt
@@ -108,37 +99,27 @@ files:
108
99
  - spec/spec_helper.rb
109
100
  homepage: http://ruby.gfd-dennou.org/products/rb-grib/
110
101
  licenses: []
111
-
102
+ metadata: {}
112
103
  post_install_message:
113
104
  rdoc_options: []
114
-
115
- require_paths:
105
+ require_paths:
116
106
  - lib
117
- required_ruby_version: !ruby/object:Gem::Requirement
118
- none: false
119
- requirements:
107
+ required_ruby_version: !ruby/object:Gem::Requirement
108
+ requirements:
120
109
  - - ">="
121
- - !ruby/object:Gem::Version
122
- hash: 3
123
- segments:
124
- - 0
125
- version: "0"
126
- required_rubygems_version: !ruby/object:Gem::Requirement
127
- none: false
128
- requirements:
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ required_rubygems_version: !ruby/object:Gem::Requirement
113
+ requirements:
129
114
  - - ">="
130
- - !ruby/object:Gem::Version
131
- hash: 3
132
- segments:
133
- - 0
134
- version: "0"
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
135
117
  requirements: []
136
-
137
118
  rubyforge_project: rb-grib
138
- rubygems_version: 1.8.11
119
+ rubygems_version: 2.4.8
139
120
  signing_key:
140
- specification_version: 3
121
+ specification_version: 4
141
122
  summary: Ruby class library to hanlde GRIB file
142
- test_files:
123
+ test_files:
143
124
  - spec/grib_read_spec.rb
144
125
  - spec/spec_helper.rb