filegdb 0.0.1
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 +15 -0
- data/.gitignore +18 -0
- data/.travis.yml +4 -0
- data/Gemfile +3 -0
- data/LICENSE +28 -0
- data/Makefile +12 -0
- data/README.md +27 -0
- data/Rakefile +24 -0
- data/ext/filegdb/base.hpp +126 -0
- data/ext/filegdb/extconf.rb +13 -0
- data/ext/filegdb/filegdb.cpp +27 -0
- data/ext/filegdb/filegdb.hpp +44 -0
- data/ext/filegdb/filegdb/include/FileGDBAPI.h +30 -0
- data/ext/filegdb/filegdb/include/FileGDBCore.h +226 -0
- data/ext/filegdb/filegdb/include/Geodatabase.h +291 -0
- data/ext/filegdb/filegdb/include/GeodatabaseManagement.h +79 -0
- data/ext/filegdb/filegdb/include/Raster.h +101 -0
- data/ext/filegdb/filegdb/include/Row.h +336 -0
- data/ext/filegdb/filegdb/include/Table.h +296 -0
- data/ext/filegdb/filegdb/include/Util.h +936 -0
- data/ext/filegdb/filegdb/include/make.include +98 -0
- data/ext/filegdb/filegdb/lib/libFileGDBAPI.dylib +0 -0
- data/ext/filegdb/filegdb/lib/libFileGDBAPI.so +0 -0
- data/ext/filegdb/filegdb/lib/libfgdbunixrtl.dylib +0 -0
- data/ext/filegdb/filegdb/lib/libfgdbunixrtl.so +0 -0
- data/ext/filegdb/geodatabase.cpp +529 -0
- data/ext/filegdb/geodatabase.hpp +53 -0
- data/ext/filegdb/multi_point_shape_buffer.cpp +254 -0
- data/ext/filegdb/multi_point_shape_buffer.hpp +35 -0
- data/ext/filegdb/point.cpp +44 -0
- data/ext/filegdb/point.hpp +31 -0
- data/ext/filegdb/point_shape_buffer.cpp +162 -0
- data/ext/filegdb/point_shape_buffer.hpp +32 -0
- data/ext/filegdb/row.cpp +222 -0
- data/ext/filegdb/row.hpp +37 -0
- data/ext/filegdb/shape_buffer.cpp +19 -0
- data/ext/filegdb/shape_buffer.hpp +20 -0
- data/ext/filegdb/shape_buffer_base.hpp +33 -0
- data/ext/filegdb/table.cpp +65 -0
- data/ext/filegdb/table.hpp +29 -0
- data/ext/filegdb/util.cpp +16 -0
- data/filegdb.gemspec +23 -0
- data/lib/filegdb.rb +2 -0
- data/lib/filegdb/version.rb +3 -0
- data/spec/data/domain_definition.xml +22 -0
- data/spec/data/domain_definition_altered.xml +26 -0
- data/spec/data/feature_dataset_definition.xml +25 -0
- data/spec/data/table_definition.xml +177 -0
- data/spec/filegdb_spec.rb +36 -0
- data/spec/geodatabase_spec.rb +107 -0
- data/spec/multi_point_shape_buffer_spec.rb +58 -0
- data/spec/point_shape_buffer_spec.rb +39 -0
- data/spec/row_spec.rb +76 -0
- data/spec/spec_helper.rb +41 -0
- metadata +153 -0
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
NUM_POINTS = 3
|
4
|
+
|
5
|
+
describe 'MultiPointShapeBuffer' do
|
6
|
+
before(:each) do
|
7
|
+
@shape = FileGDB::MultiPointShapeBuffer.new
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'sets up the geometry' do
|
11
|
+
lambda { @shape.setup(8, NUM_POINTS) }.should_not raise_error
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'gets the number of points' do
|
15
|
+
@shape.setup(8, NUM_POINTS)
|
16
|
+
@shape.get_num_points.should eq(NUM_POINTS)
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'gets the points' do
|
20
|
+
@shape.setup(8, NUM_POINTS)
|
21
|
+
@shape.get_points.should have(3).items
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'gets the z values' do
|
25
|
+
@shape.setup(18, NUM_POINTS)
|
26
|
+
@shape.z.should have(3).items
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'gets the m values' do
|
30
|
+
@shape.setup(18, NUM_POINTS)
|
31
|
+
@shape.m.should have(3).items
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'gets the id values' do
|
35
|
+
@shape.setup(18, NUM_POINTS)
|
36
|
+
lambda { @shape.id }.should raise_error
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'gets the extent' do
|
40
|
+
@shape.setup(18, NUM_POINTS)
|
41
|
+
@shape.get_extent.should eq([0, 0, 0, 0])
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'gets the z extent' do
|
45
|
+
@shape.setup(18, NUM_POINTS)
|
46
|
+
@shape.get_z_extent.should eq([0, 0])
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'gets the m extent' do
|
50
|
+
@shape.setup(18, NUM_POINTS)
|
51
|
+
@shape.get_m_extent.should eq([0, 0])
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'calculates the extent' do
|
55
|
+
@shape.setup(18, NUM_POINTS)
|
56
|
+
lambda { @shape.calculate_extent }.should_not raise_error
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'PointShapeBuffer' do
|
4
|
+
before(:each) do
|
5
|
+
@shape = FileGDB::PointShapeBuffer.new
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'gets the z value' do
|
9
|
+
@shape.setup(9)
|
10
|
+
@shape.z.should eq(0.0)
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'sets the z value' do
|
14
|
+
@shape.setup(9)
|
15
|
+
@shape.z = 10.0
|
16
|
+
@shape.z.should eq(10.0)
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'gets the m value' do
|
20
|
+
@shape.setup(11)
|
21
|
+
@shape.m.should eq(0.0)
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'sets the m value' do
|
25
|
+
@shape.setup(11)
|
26
|
+
@shape.m = 10.0
|
27
|
+
@shape.m.should eq(10.0)
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'gets the id value' do
|
31
|
+
@shape.setup(11)
|
32
|
+
lambda { @shape.id }.should raise_error
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'sets the id value' do
|
36
|
+
@shape.setup(11)
|
37
|
+
lambda { @shape.id = 1 }.should raise_error
|
38
|
+
end
|
39
|
+
end
|
data/spec/row_spec.rb
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'Row' do
|
4
|
+
before(:each) do
|
5
|
+
delete_database rescue nil
|
6
|
+
@db = create_database
|
7
|
+
@table = @db.create_table('', table_definition)
|
8
|
+
end
|
9
|
+
|
10
|
+
after(:each) do
|
11
|
+
@db.close if @db
|
12
|
+
delete_database
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'creates a row object' do
|
16
|
+
row = @table.create_row_object
|
17
|
+
row.should_not be_nil
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'sets a string attribute on a row' do
|
21
|
+
row = @table.create_row_object
|
22
|
+
lambda { row.set_string('string_field', 'a string value') }.should_not raise_error
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'throws an error when setting a field that does not exist' do
|
26
|
+
row = @table.create_row_object
|
27
|
+
lambda { row.set_string('string_field_that_doesnt_exist', 'a string value') }.should raise_error
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'retrieves a string field' do
|
31
|
+
row = @table.create_row_object
|
32
|
+
row.set_string('string_field', 'a string value')
|
33
|
+
row.get_string('string_field').should eq('a string value')
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'throws an error when retrieving a string field that does not exist' do
|
37
|
+
row = @table.create_row_object
|
38
|
+
row.set_string('string_field', 'a string value')
|
39
|
+
lambda { row.get_string('string_field_that_doesnt_exist') }.should raise_error
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'creates a point shape buffer using #new' do
|
43
|
+
FileGDB::PointShapeBuffer.new.should_not be_nil
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'can setup a geometry' do
|
47
|
+
shape = FileGDB::PointShapeBuffer.new
|
48
|
+
lambda { shape.setup(1) }.should_not raise_error
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'throws an exception when setting up a point shape incorrectly' do
|
52
|
+
shape = FileGDB::PointShapeBuffer.new
|
53
|
+
lambda { shape.setup(2) }.should raise_error
|
54
|
+
end
|
55
|
+
|
56
|
+
it 'fetches the point object after setting it up' do
|
57
|
+
shape = FileGDB::PointShapeBuffer.new
|
58
|
+
shape.setup(1)
|
59
|
+
shape.get_point.should be_instance_of(FileGDB::Point)
|
60
|
+
end
|
61
|
+
|
62
|
+
it 'sets the geometry of a point' do
|
63
|
+
row = @table.create_row_object
|
64
|
+
shape = FileGDB::PointShapeBuffer.new
|
65
|
+
shape.setup(1)
|
66
|
+
point = shape.get_point
|
67
|
+
point.x = -82.23233;
|
68
|
+
point.y = 27.457347347;
|
69
|
+
lambda { row.set_geometry(shape) }.should_not raise_error
|
70
|
+
end
|
71
|
+
|
72
|
+
it 'throws an exception when setting up the geometry incorrectly' do
|
73
|
+
row = @table.create_row_object
|
74
|
+
lambda { row.set_geometry(nil) }.should raise_error
|
75
|
+
end
|
76
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'filegdb'
|
2
|
+
|
3
|
+
RSpec.configure do |config|
|
4
|
+
config.color_enabled = true
|
5
|
+
config.tty = true
|
6
|
+
config.formatter = :documentation
|
7
|
+
end
|
8
|
+
|
9
|
+
TEST_FILE_NAME = 'testfile.gdb'
|
10
|
+
|
11
|
+
def data_directory
|
12
|
+
File.join(File.dirname(__FILE__), 'data')
|
13
|
+
end
|
14
|
+
|
15
|
+
def table_definition
|
16
|
+
File.read(File.join(data_directory, 'table_definition.xml'))
|
17
|
+
end
|
18
|
+
|
19
|
+
def feature_dataset_definition
|
20
|
+
File.read(File.join(data_directory, 'feature_dataset_definition.xml'))
|
21
|
+
end
|
22
|
+
|
23
|
+
def domain_definition
|
24
|
+
File.read(File.join(data_directory, 'domain_definition.xml'))
|
25
|
+
end
|
26
|
+
|
27
|
+
def domain_definition_altered
|
28
|
+
File.read(File.join(data_directory, 'domain_definition_altered.xml'))
|
29
|
+
end
|
30
|
+
|
31
|
+
def create_database
|
32
|
+
FileGDB::Geodatabase.create(TEST_FILE_NAME)
|
33
|
+
end
|
34
|
+
|
35
|
+
def open_database
|
36
|
+
FileGDB::Geodatabase.open(TEST_FILE_NAME)
|
37
|
+
end
|
38
|
+
|
39
|
+
def delete_database
|
40
|
+
FileGDB::Geodatabase.delete(TEST_FILE_NAME)
|
41
|
+
end
|
metadata
ADDED
@@ -0,0 +1,153 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: filegdb
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Zac McCormick
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-10-16 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rake
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ! '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
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: rake-compiler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ! '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ! '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
description: ESRI FileGDB bindings for ruby
|
56
|
+
email:
|
57
|
+
- zac.mccormick@gmail.com
|
58
|
+
executables: []
|
59
|
+
extensions:
|
60
|
+
- ext/filegdb/extconf.rb
|
61
|
+
extra_rdoc_files: []
|
62
|
+
files:
|
63
|
+
- .gitignore
|
64
|
+
- .travis.yml
|
65
|
+
- Gemfile
|
66
|
+
- LICENSE
|
67
|
+
- Makefile
|
68
|
+
- README.md
|
69
|
+
- Rakefile
|
70
|
+
- ext/filegdb/base.hpp
|
71
|
+
- ext/filegdb/extconf.rb
|
72
|
+
- ext/filegdb/filegdb.cpp
|
73
|
+
- ext/filegdb/filegdb.hpp
|
74
|
+
- ext/filegdb/filegdb/include/FileGDBAPI.h
|
75
|
+
- ext/filegdb/filegdb/include/FileGDBCore.h
|
76
|
+
- ext/filegdb/filegdb/include/Geodatabase.h
|
77
|
+
- ext/filegdb/filegdb/include/GeodatabaseManagement.h
|
78
|
+
- ext/filegdb/filegdb/include/Raster.h
|
79
|
+
- ext/filegdb/filegdb/include/Row.h
|
80
|
+
- ext/filegdb/filegdb/include/Table.h
|
81
|
+
- ext/filegdb/filegdb/include/Util.h
|
82
|
+
- ext/filegdb/filegdb/include/make.include
|
83
|
+
- ext/filegdb/filegdb/lib/libFileGDBAPI.dylib
|
84
|
+
- ext/filegdb/filegdb/lib/libFileGDBAPI.so
|
85
|
+
- ext/filegdb/filegdb/lib/libfgdbunixrtl.dylib
|
86
|
+
- ext/filegdb/filegdb/lib/libfgdbunixrtl.so
|
87
|
+
- ext/filegdb/geodatabase.cpp
|
88
|
+
- ext/filegdb/geodatabase.hpp
|
89
|
+
- ext/filegdb/multi_point_shape_buffer.cpp
|
90
|
+
- ext/filegdb/multi_point_shape_buffer.hpp
|
91
|
+
- ext/filegdb/point.cpp
|
92
|
+
- ext/filegdb/point.hpp
|
93
|
+
- ext/filegdb/point_shape_buffer.cpp
|
94
|
+
- ext/filegdb/point_shape_buffer.hpp
|
95
|
+
- ext/filegdb/row.cpp
|
96
|
+
- ext/filegdb/row.hpp
|
97
|
+
- ext/filegdb/shape_buffer.cpp
|
98
|
+
- ext/filegdb/shape_buffer.hpp
|
99
|
+
- ext/filegdb/shape_buffer_base.hpp
|
100
|
+
- ext/filegdb/table.cpp
|
101
|
+
- ext/filegdb/table.hpp
|
102
|
+
- ext/filegdb/util.cpp
|
103
|
+
- filegdb.gemspec
|
104
|
+
- lib/filegdb.rb
|
105
|
+
- lib/filegdb/version.rb
|
106
|
+
- spec/data/domain_definition.xml
|
107
|
+
- spec/data/domain_definition_altered.xml
|
108
|
+
- spec/data/feature_dataset_definition.xml
|
109
|
+
- spec/data/table_definition.xml
|
110
|
+
- spec/filegdb_spec.rb
|
111
|
+
- spec/geodatabase_spec.rb
|
112
|
+
- spec/multi_point_shape_buffer_spec.rb
|
113
|
+
- spec/point_shape_buffer_spec.rb
|
114
|
+
- spec/row_spec.rb
|
115
|
+
- spec/spec_helper.rb
|
116
|
+
homepage: https://github.com/spatialnetworks/filegdb-ruby
|
117
|
+
licenses:
|
118
|
+
- BSD
|
119
|
+
metadata: {}
|
120
|
+
post_install_message:
|
121
|
+
rdoc_options: []
|
122
|
+
require_paths:
|
123
|
+
- lib
|
124
|
+
- ext
|
125
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
126
|
+
requirements:
|
127
|
+
- - ! '>='
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
version: '0'
|
130
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
131
|
+
requirements:
|
132
|
+
- - ! '>='
|
133
|
+
- !ruby/object:Gem::Version
|
134
|
+
version: '0'
|
135
|
+
requirements: []
|
136
|
+
rubyforge_project:
|
137
|
+
rubygems_version: 2.1.5
|
138
|
+
signing_key:
|
139
|
+
specification_version: 4
|
140
|
+
summary: ESRI FileGDB bindings for ruby. Currently contains native extensions for
|
141
|
+
FileGDB API 1.3
|
142
|
+
test_files:
|
143
|
+
- spec/data/domain_definition.xml
|
144
|
+
- spec/data/domain_definition_altered.xml
|
145
|
+
- spec/data/feature_dataset_definition.xml
|
146
|
+
- spec/data/table_definition.xml
|
147
|
+
- spec/filegdb_spec.rb
|
148
|
+
- spec/geodatabase_spec.rb
|
149
|
+
- spec/multi_point_shape_buffer_spec.rb
|
150
|
+
- spec/point_shape_buffer_spec.rb
|
151
|
+
- spec/row_spec.rb
|
152
|
+
- spec/spec_helper.rb
|
153
|
+
has_rdoc:
|