rb-grib 0.2.2 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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