filegdb 0.0.1 → 0.0.2
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 +8 -8
- data/ext/filegdb/extconf.rb +46 -0
- data/ext/filegdb/field_info.cpp +116 -0
- data/ext/filegdb/field_info.hpp +32 -0
- data/ext/filegdb/filegdb.cpp +4 -0
- data/ext/filegdb/spatial_reference.cpp +61 -0
- data/ext/filegdb/spatial_reference.hpp +30 -0
- data/ext/filegdb/table.cpp +65 -0
- data/ext/filegdb/table.hpp +5 -0
- data/lib/filegdb/version.rb +1 -1
- data/spec/field_info_spec.rb +37 -0
- data/spec/spatial_reference_spec.rb +26 -0
- data/spec/table_spec.rb +32 -0
- metadata +12 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NDQ3ODRmZTVmYmQ1NjI1Mjc5OGJlZWQwNDkzNjg2ZWIwYmU0NzNlYw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YTA1Y2FiMjIzMTBhYWNiYTI5NTllOWZhNTQ2OWNhYzkzYzc1NjdmNw==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
OTUxMjlkMjM0MjNiYTkxZjkyNTVlZGZhNThhZjhhN2IwZTFjMTc5MzdlN2Zj
|
10
|
+
Yjc4N2EwN2IxMmQ3NDJhMWFiOWQxMzIwNzY2Nzk0YTc4ZWE2NDMyNjA4ZmFi
|
11
|
+
YWU5Y2VlYmVkNTc1N2ZmNDAxZjM2MTkwYTRjZDZkN2RjNzQ0MGM=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
N2EyOWM2ZTE2MTdlYTY5ODljMDY0NTRlYzU5ZTFlZGQ2ZmUwOTgxMDg4Njkx
|
14
|
+
OWRjYzk5NmY2ZTg1M2RiODg1OTA0MjZkNWQ2NDRlNTQ3MWQ0ODRiYzQ0NGY1
|
15
|
+
Y2QwNGMxNWFkMWQwOWJlMzlmNjVlOTRmYjY0NTFmZDkzMjY4ZTc=
|
data/ext/filegdb/extconf.rb
CHANGED
@@ -10,4 +10,50 @@ $libs = append_library $libs, 'FileGDBAPI'
|
|
10
10
|
|
11
11
|
$LDFLAGS << " -Wl,-rpath,#{File.join(filegdb_path, 'lib')}"
|
12
12
|
|
13
|
+
if RUBY_PLATFORM =~ /darwin12/
|
14
|
+
# libFileGDBAPI requires GCC compilation because its C++ symbols are incompatible with LLVM 5.0
|
15
|
+
#
|
16
|
+
# To install GCC on OSX:
|
17
|
+
#
|
18
|
+
# $ brew tap homebrew/versions
|
19
|
+
# $ brew install --enable-cxx gcc49
|
20
|
+
#
|
21
|
+
|
22
|
+
msg = <<-GCC
|
23
|
+
|
24
|
+
|
25
|
+
\e[31m
|
26
|
+
===========================================================================================================================
|
27
|
+
===========================================================================================================================
|
28
|
+
|
29
|
+
The filegdb gem requires GCC on OSX Mavericks because the C++ symbols in libFileGDBAPI.dylib are incompatible with LLVM 5.0
|
30
|
+
|
31
|
+
To install GCC on OSX:
|
32
|
+
|
33
|
+
$ brew tap homebrew/versions
|
34
|
+
$ brew install --enable-cxx gcc49
|
35
|
+
|
36
|
+
Note: Installing GCC through homebrew is safe and will not interfere with your Xcode installation.
|
37
|
+
|
38
|
+
Report installation bugs here: https://github.com/spatialnetworks/filegdb-ruby
|
39
|
+
|
40
|
+
===========================================================================================================================
|
41
|
+
===========================================================================================================================
|
42
|
+
\e[0m
|
43
|
+
|
44
|
+
GCC
|
45
|
+
|
46
|
+
if `which gcc-4.9`.strip.length == 0
|
47
|
+
puts msg
|
48
|
+
exit
|
49
|
+
end
|
50
|
+
|
51
|
+
require 'rbconfig'
|
52
|
+
RbConfig::MAKEFILE_CONFIG['CC'] = 'gcc-4.9'
|
53
|
+
RbConfig::MAKEFILE_CONFIG['CXX'] = 'gcc-4.9'
|
54
|
+
|
55
|
+
# remove -Wshorten-64-to-32 since it's incompatible with GCC
|
56
|
+
$warnflags = $warnflags.gsub(/-Wshorten-64-to-32/, '')
|
57
|
+
end
|
58
|
+
|
13
59
|
create_makefile 'filegdb/filegdb'
|
@@ -0,0 +1,116 @@
|
|
1
|
+
|
2
|
+
#include "field_info.hpp"
|
3
|
+
|
4
|
+
namespace filegdb {
|
5
|
+
|
6
|
+
VALUE field_info::_klass = Qnil;
|
7
|
+
|
8
|
+
VALUE field_info::klass() {
|
9
|
+
return field_info::_klass;
|
10
|
+
}
|
11
|
+
|
12
|
+
field_info::~field_info() {
|
13
|
+
if (_fieldInfo) {
|
14
|
+
delete _fieldInfo;
|
15
|
+
_fieldInfo = NULL;
|
16
|
+
}
|
17
|
+
}
|
18
|
+
|
19
|
+
VALUE field_info::get_field_count(VALUE self) {
|
20
|
+
filegdb::field_info *info = unwrap(self);
|
21
|
+
|
22
|
+
int fieldCount = -1;
|
23
|
+
|
24
|
+
fgdbError hr = info->value().GetFieldCount(fieldCount);
|
25
|
+
|
26
|
+
if (FGDB_IS_FAILURE(hr)) {
|
27
|
+
FGDB_RAISE_ERROR(hr);
|
28
|
+
return Qnil;
|
29
|
+
}
|
30
|
+
|
31
|
+
return INT2FIX(fieldCount);
|
32
|
+
}
|
33
|
+
|
34
|
+
VALUE field_info::get_field_name(VALUE self, VALUE fieldIndex) {
|
35
|
+
CHECK_ARGUMENT_FIXNUM(fieldIndex);
|
36
|
+
|
37
|
+
filegdb::field_info *info = unwrap(self);
|
38
|
+
|
39
|
+
std::wstring fieldName;
|
40
|
+
|
41
|
+
fgdbError hr = info->value().GetFieldName(FIX2INT(fieldIndex), fieldName);
|
42
|
+
|
43
|
+
if (FGDB_IS_FAILURE(hr)) {
|
44
|
+
FGDB_RAISE_ERROR(hr);
|
45
|
+
return Qnil;
|
46
|
+
}
|
47
|
+
|
48
|
+
return rb_str_new2(to_char_array(fieldName));
|
49
|
+
}
|
50
|
+
|
51
|
+
VALUE field_info::get_field_type(VALUE self, VALUE fieldIndex) {
|
52
|
+
CHECK_ARGUMENT_FIXNUM(fieldIndex);
|
53
|
+
|
54
|
+
filegdb::field_info *info = unwrap(self);
|
55
|
+
|
56
|
+
FieldType type;
|
57
|
+
|
58
|
+
fgdbError hr = info->value().GetFieldType(FIX2INT(fieldIndex), type);
|
59
|
+
|
60
|
+
if (FGDB_IS_FAILURE(hr)) {
|
61
|
+
FGDB_RAISE_ERROR(hr);
|
62
|
+
return Qnil;
|
63
|
+
}
|
64
|
+
|
65
|
+
return INT2FIX((int)type);
|
66
|
+
}
|
67
|
+
|
68
|
+
VALUE field_info::get_field_length(VALUE self, VALUE fieldIndex) {
|
69
|
+
CHECK_ARGUMENT_FIXNUM(fieldIndex);
|
70
|
+
|
71
|
+
filegdb::field_info *info = unwrap(self);
|
72
|
+
|
73
|
+
int length;
|
74
|
+
|
75
|
+
fgdbError hr = info->value().GetFieldLength(FIX2INT(fieldIndex), length);
|
76
|
+
|
77
|
+
if (FGDB_IS_FAILURE(hr)) {
|
78
|
+
FGDB_RAISE_ERROR(hr);
|
79
|
+
return Qnil;
|
80
|
+
}
|
81
|
+
|
82
|
+
return INT2FIX(length);
|
83
|
+
}
|
84
|
+
|
85
|
+
VALUE field_info::get_field_is_nullable(VALUE self, VALUE fieldIndex) {
|
86
|
+
CHECK_ARGUMENT_FIXNUM(fieldIndex);
|
87
|
+
|
88
|
+
filegdb::field_info *info = unwrap(self);
|
89
|
+
|
90
|
+
bool isNullable = false;
|
91
|
+
|
92
|
+
fgdbError hr = info->value().GetFieldIsNullable(FIX2INT(fieldIndex), isNullable);
|
93
|
+
|
94
|
+
if (FGDB_IS_FAILURE(hr)) {
|
95
|
+
FGDB_RAISE_ERROR(hr);
|
96
|
+
return Qnil;
|
97
|
+
}
|
98
|
+
|
99
|
+
return isNullable ? Qtrue : Qfalse;
|
100
|
+
}
|
101
|
+
|
102
|
+
void field_info::define(VALUE module)
|
103
|
+
{
|
104
|
+
field_info::_klass = rb_define_class_under(module, "FieldInfo", rb_cObject);
|
105
|
+
base::define(field_info::_klass, false);
|
106
|
+
rb_define_method(field_info::_klass, "get_field_count", FGDB_METHOD(field_info::get_field_count), 0);
|
107
|
+
rb_define_method(field_info::_klass, "get_field_name", FGDB_METHOD(field_info::get_field_name), 1);
|
108
|
+
rb_define_method(field_info::_klass, "get_field_type", FGDB_METHOD(field_info::get_field_type), 1);
|
109
|
+
rb_define_method(field_info::_klass, "get_field_length", FGDB_METHOD(field_info::get_field_length), 1);
|
110
|
+
rb_define_method(field_info::_klass, "get_field_is_nullable", FGDB_METHOD(field_info::get_field_is_nullable), 1);
|
111
|
+
}
|
112
|
+
|
113
|
+
}
|
114
|
+
|
115
|
+
|
116
|
+
|
@@ -0,0 +1,32 @@
|
|
1
|
+
#ifndef __FGDB_FIELD_INFO_HPP__
|
2
|
+
#define __FGDB_FIELD_INFO_HPP__
|
3
|
+
|
4
|
+
#include "filegdb.hpp"
|
5
|
+
#include "base.hpp"
|
6
|
+
|
7
|
+
namespace filegdb {
|
8
|
+
class field_info : public base<field_info> {
|
9
|
+
public:
|
10
|
+
field_info() : base<field_info>(), _fieldInfo(new FieldInfo) {};
|
11
|
+
static void define(VALUE module);
|
12
|
+
|
13
|
+
static VALUE get_field_count(VALUE self);
|
14
|
+
static VALUE get_field_name(VALUE self, VALUE fieldIndex);
|
15
|
+
static VALUE get_field_type(VALUE self, VALUE fieldIndex);
|
16
|
+
static VALUE get_field_length(VALUE self, VALUE fieldIndex);
|
17
|
+
static VALUE get_field_is_nullable(VALUE self, VALUE fieldIndex);
|
18
|
+
|
19
|
+
virtual VALUE klass();
|
20
|
+
static VALUE _klass;
|
21
|
+
|
22
|
+
FieldInfo &value() { return *_fieldInfo; }
|
23
|
+
|
24
|
+
virtual ~field_info();
|
25
|
+
|
26
|
+
private:
|
27
|
+
FieldInfo *_fieldInfo;
|
28
|
+
};
|
29
|
+
}
|
30
|
+
|
31
|
+
#endif
|
32
|
+
|
data/ext/filegdb/filegdb.cpp
CHANGED
@@ -10,6 +10,8 @@
|
|
10
10
|
#include "point_shape_buffer.hpp"
|
11
11
|
#include "multi_point_shape_buffer.hpp"
|
12
12
|
#include "point.hpp"
|
13
|
+
#include "field_info.hpp"
|
14
|
+
#include "spatial_reference.hpp"
|
13
15
|
|
14
16
|
VALUE cFileGDB;
|
15
17
|
|
@@ -23,5 +25,7 @@ extern "C" {
|
|
23
25
|
filegdb::shape_buffer::define(cFileGDB);
|
24
26
|
filegdb::point_shape_buffer::define(cFileGDB);
|
25
27
|
filegdb::multi_point_shape_buffer::define(cFileGDB);
|
28
|
+
filegdb::field_info::define(cFileGDB);
|
29
|
+
filegdb::spatial_reference::define(cFileGDB);
|
26
30
|
}
|
27
31
|
}
|
@@ -0,0 +1,61 @@
|
|
1
|
+
|
2
|
+
#include "spatial_reference.hpp"
|
3
|
+
|
4
|
+
namespace filegdb {
|
5
|
+
|
6
|
+
VALUE spatial_reference::_klass = Qnil;
|
7
|
+
|
8
|
+
VALUE spatial_reference::klass() {
|
9
|
+
return spatial_reference::_klass;
|
10
|
+
}
|
11
|
+
|
12
|
+
spatial_reference::~spatial_reference() {
|
13
|
+
if (_spatialReference) {
|
14
|
+
delete _spatialReference;
|
15
|
+
_spatialReference = NULL;
|
16
|
+
}
|
17
|
+
}
|
18
|
+
|
19
|
+
VALUE spatial_reference::get_spatial_reference_text(VALUE self) {
|
20
|
+
filegdb::spatial_reference *srs = unwrap(self);
|
21
|
+
|
22
|
+
std::wstring text;
|
23
|
+
|
24
|
+
fgdbError hr = srs->value().GetSpatialReferenceText(text);
|
25
|
+
|
26
|
+
if (FGDB_IS_FAILURE(hr)) {
|
27
|
+
FGDB_RAISE_ERROR(hr);
|
28
|
+
return Qnil;
|
29
|
+
}
|
30
|
+
|
31
|
+
return rb_str_new2(to_char_array(text));
|
32
|
+
}
|
33
|
+
|
34
|
+
VALUE spatial_reference::set_spatial_reference_text(VALUE self, VALUE srs) {
|
35
|
+
CHECK_ARGUMENT_STRING(srs);
|
36
|
+
|
37
|
+
filegdb::spatial_reference *reference = unwrap(self);
|
38
|
+
|
39
|
+
fgdbError hr = reference->value().SetSpatialReferenceText(to_wstring(RSTRING_PTR(srs)));
|
40
|
+
|
41
|
+
if (FGDB_IS_FAILURE(hr)) {
|
42
|
+
FGDB_RAISE_ERROR(hr);
|
43
|
+
return Qnil;
|
44
|
+
}
|
45
|
+
|
46
|
+
return Qnil;
|
47
|
+
}
|
48
|
+
|
49
|
+
void spatial_reference::define(VALUE module)
|
50
|
+
{
|
51
|
+
spatial_reference::_klass = rb_define_class_under(module, "SpatialReference", rb_cObject);
|
52
|
+
base::define(spatial_reference::_klass, true);
|
53
|
+
rb_define_method(spatial_reference::_klass, "get_spatial_reference_text", FGDB_METHOD(spatial_reference::get_spatial_reference_text), 0);
|
54
|
+
rb_define_method(spatial_reference::_klass, "set_spatial_reference_text", FGDB_METHOD(spatial_reference::set_spatial_reference_text), 1);
|
55
|
+
}
|
56
|
+
|
57
|
+
}
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
|
@@ -0,0 +1,30 @@
|
|
1
|
+
#ifndef __FGDB_SPATIAL_REFERENCE_HPP__
|
2
|
+
#define __FGDB_SPATIAL_REFERENCE_HPP__
|
3
|
+
|
4
|
+
#include "filegdb.hpp"
|
5
|
+
#include "base.hpp"
|
6
|
+
|
7
|
+
namespace filegdb {
|
8
|
+
class spatial_reference : public base<spatial_reference> {
|
9
|
+
public:
|
10
|
+
spatial_reference() : base<spatial_reference>(), _spatialReference(new SpatialReference) {};
|
11
|
+
static void define(VALUE module);
|
12
|
+
|
13
|
+
static VALUE get_spatial_reference_text(VALUE self);
|
14
|
+
static VALUE set_spatial_reference_text(VALUE self, VALUE srs);
|
15
|
+
|
16
|
+
virtual VALUE klass();
|
17
|
+
static VALUE _klass;
|
18
|
+
|
19
|
+
SpatialReference &value() { return *_spatialReference; }
|
20
|
+
|
21
|
+
virtual ~spatial_reference();
|
22
|
+
|
23
|
+
private:
|
24
|
+
SpatialReference *_spatialReference;
|
25
|
+
};
|
26
|
+
}
|
27
|
+
|
28
|
+
#endif
|
29
|
+
|
30
|
+
|
data/ext/filegdb/table.cpp
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
|
2
2
|
#include "table.hpp"
|
3
3
|
#include "row.hpp"
|
4
|
+
#include "field_info.hpp"
|
4
5
|
|
5
6
|
namespace filegdb {
|
6
7
|
|
@@ -52,12 +53,76 @@ VALUE table::insert(VALUE self, VALUE row) {
|
|
52
53
|
return self;
|
53
54
|
}
|
54
55
|
|
56
|
+
VALUE table::get_definition(VALUE self) {
|
57
|
+
filegdb::table *table = unwrap(self);
|
58
|
+
|
59
|
+
std::string definition;
|
60
|
+
|
61
|
+
fgdbError hr = table->value().GetDefinition(definition);
|
62
|
+
|
63
|
+
if (FGDB_IS_FAILURE(hr)) {
|
64
|
+
FGDB_RAISE_ERROR(hr);
|
65
|
+
return Qnil;
|
66
|
+
}
|
67
|
+
|
68
|
+
return rb_str_new2(definition.c_str());
|
69
|
+
}
|
70
|
+
|
71
|
+
VALUE table::get_documentation(VALUE self) {
|
72
|
+
filegdb::table *table = unwrap(self);
|
73
|
+
|
74
|
+
std::string documentation;
|
75
|
+
|
76
|
+
fgdbError hr = table->value().GetDocumentation(documentation);
|
77
|
+
|
78
|
+
if (FGDB_IS_FAILURE(hr)) {
|
79
|
+
FGDB_RAISE_ERROR(hr);
|
80
|
+
return Qnil;
|
81
|
+
}
|
82
|
+
|
83
|
+
return rb_str_new2(documentation.c_str());
|
84
|
+
}
|
85
|
+
|
86
|
+
VALUE table::set_documentation(VALUE self, VALUE documentation) {
|
87
|
+
CHECK_ARGUMENT_STRING(documentation);
|
88
|
+
|
89
|
+
filegdb::table *table = unwrap(self);
|
90
|
+
|
91
|
+
fgdbError hr = table->value().SetDocumentation(std::string(RSTRING_PTR(documentation)));
|
92
|
+
|
93
|
+
if (FGDB_IS_FAILURE(hr)) {
|
94
|
+
FGDB_RAISE_ERROR(hr);
|
95
|
+
return Qnil;
|
96
|
+
}
|
97
|
+
|
98
|
+
return Qnil;
|
99
|
+
}
|
100
|
+
|
101
|
+
VALUE table::get_field_information(VALUE self) {
|
102
|
+
filegdb::table *table = unwrap(self);
|
103
|
+
|
104
|
+
filegdb::field_info *info = new filegdb::field_info();
|
105
|
+
|
106
|
+
fgdbError hr = table->value().GetFieldInformation(info->value());
|
107
|
+
|
108
|
+
if (FGDB_IS_FAILURE(hr)) {
|
109
|
+
FGDB_RAISE_ERROR(hr);
|
110
|
+
return Qnil;
|
111
|
+
}
|
112
|
+
|
113
|
+
return info->wrapped();
|
114
|
+
}
|
115
|
+
|
55
116
|
void table::define(VALUE module)
|
56
117
|
{
|
57
118
|
table::_klass = rb_define_class_under(module, "Table", rb_cObject);
|
58
119
|
base::define(table::_klass, false);
|
59
120
|
rb_define_method(table::_klass, "create_row_object", FGDB_METHOD(table::create_row_object), 0);
|
60
121
|
rb_define_method(table::_klass, "insert", FGDB_METHOD(table::insert), 1);
|
122
|
+
rb_define_method(table::_klass, "get_definition", FGDB_METHOD(table::get_definition), 0);
|
123
|
+
rb_define_method(table::_klass, "get_documentation", FGDB_METHOD(table::get_documentation), 0);
|
124
|
+
rb_define_method(table::_klass, "set_documentation", FGDB_METHOD(table::set_documentation), 1);
|
125
|
+
rb_define_method(table::_klass, "get_field_information", FGDB_METHOD(table::get_field_information), 0);
|
61
126
|
}
|
62
127
|
|
63
128
|
}
|
data/ext/filegdb/table.hpp
CHANGED
@@ -13,6 +13,11 @@ namespace filegdb {
|
|
13
13
|
static VALUE insert(VALUE self, VALUE row);
|
14
14
|
static void define(VALUE module);
|
15
15
|
|
16
|
+
static VALUE get_definition(VALUE self);
|
17
|
+
static VALUE get_documentation(VALUE self);
|
18
|
+
static VALUE set_documentation(VALUE self, VALUE documentation);
|
19
|
+
static VALUE get_field_information(VALUE self);
|
20
|
+
|
16
21
|
virtual VALUE klass();
|
17
22
|
static VALUE _klass;
|
18
23
|
|
data/lib/filegdb/version.rb
CHANGED
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'FieldInfo' do
|
4
|
+
before(:each) do
|
5
|
+
delete_database rescue nil
|
6
|
+
@db = create_database
|
7
|
+
@table = @db.create_table('', table_definition)
|
8
|
+
@info = @table.get_field_information
|
9
|
+
end
|
10
|
+
|
11
|
+
after(:each) do
|
12
|
+
@db.close if @db
|
13
|
+
delete_database
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'gets the field count' do
|
17
|
+
@info.get_field_count.should eq(3)
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'gets the field name' do
|
21
|
+
@info.get_field_name(2).should eq('string_field')
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'gets the field type' do
|
25
|
+
@info.get_field_type(2).should eq(4)
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'gets the field length' do
|
29
|
+
@info.get_field_length(2).should eq(4000)
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'gets the field nullability' do
|
33
|
+
@info.get_field_is_nullable(2).should eq(true)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'SpatialReference' do
|
4
|
+
before(:each) do
|
5
|
+
delete_database rescue nil
|
6
|
+
@db = create_database
|
7
|
+
@table = @db.create_table('', table_definition)
|
8
|
+
@info = @table.get_field_information
|
9
|
+
@srs = FileGDB::SpatialReference.new
|
10
|
+
@valid_srs = 'GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]'
|
11
|
+
end
|
12
|
+
|
13
|
+
after(:each) do
|
14
|
+
@db.close if @db
|
15
|
+
delete_database
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'gets the spatial reference text' do
|
19
|
+
@srs.get_spatial_reference_text.should eq('')
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'sets the spatial reference text' do
|
23
|
+
lambda { @srs.set_spatial_reference_text(@valid_srs) }.should_not raise_error
|
24
|
+
@srs.get_spatial_reference_text.should eq(@valid_srs)
|
25
|
+
end
|
26
|
+
end
|
data/spec/table_spec.rb
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'Table' 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 'gets the definition' do
|
16
|
+
@table.get_definition.should_not be_nil
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'gets the documentation' do
|
20
|
+
@table.get_documentation.should eq('')
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'sets the documentation' do
|
24
|
+
@table.set_documentation('Table Documentation')
|
25
|
+
@table.get_documentation.should eq('Table Documentation')
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'gets the field information' do
|
29
|
+
@table.get_field_information.should_not be_nil
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: filegdb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Zac McCormick
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-10-
|
11
|
+
date: 2013-10-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -69,6 +69,8 @@ files:
|
|
69
69
|
- Rakefile
|
70
70
|
- ext/filegdb/base.hpp
|
71
71
|
- ext/filegdb/extconf.rb
|
72
|
+
- ext/filegdb/field_info.cpp
|
73
|
+
- ext/filegdb/field_info.hpp
|
72
74
|
- ext/filegdb/filegdb.cpp
|
73
75
|
- ext/filegdb/filegdb.hpp
|
74
76
|
- ext/filegdb/filegdb/include/FileGDBAPI.h
|
@@ -97,6 +99,8 @@ files:
|
|
97
99
|
- ext/filegdb/shape_buffer.cpp
|
98
100
|
- ext/filegdb/shape_buffer.hpp
|
99
101
|
- ext/filegdb/shape_buffer_base.hpp
|
102
|
+
- ext/filegdb/spatial_reference.cpp
|
103
|
+
- ext/filegdb/spatial_reference.hpp
|
100
104
|
- ext/filegdb/table.cpp
|
101
105
|
- ext/filegdb/table.hpp
|
102
106
|
- ext/filegdb/util.cpp
|
@@ -107,12 +111,15 @@ files:
|
|
107
111
|
- spec/data/domain_definition_altered.xml
|
108
112
|
- spec/data/feature_dataset_definition.xml
|
109
113
|
- spec/data/table_definition.xml
|
114
|
+
- spec/field_info_spec.rb
|
110
115
|
- spec/filegdb_spec.rb
|
111
116
|
- spec/geodatabase_spec.rb
|
112
117
|
- spec/multi_point_shape_buffer_spec.rb
|
113
118
|
- spec/point_shape_buffer_spec.rb
|
114
119
|
- spec/row_spec.rb
|
120
|
+
- spec/spatial_reference_spec.rb
|
115
121
|
- spec/spec_helper.rb
|
122
|
+
- spec/table_spec.rb
|
116
123
|
homepage: https://github.com/spatialnetworks/filegdb-ruby
|
117
124
|
licenses:
|
118
125
|
- BSD
|
@@ -144,10 +151,13 @@ test_files:
|
|
144
151
|
- spec/data/domain_definition_altered.xml
|
145
152
|
- spec/data/feature_dataset_definition.xml
|
146
153
|
- spec/data/table_definition.xml
|
154
|
+
- spec/field_info_spec.rb
|
147
155
|
- spec/filegdb_spec.rb
|
148
156
|
- spec/geodatabase_spec.rb
|
149
157
|
- spec/multi_point_shape_buffer_spec.rb
|
150
158
|
- spec/point_shape_buffer_spec.rb
|
151
159
|
- spec/row_spec.rb
|
160
|
+
- spec/spatial_reference_spec.rb
|
152
161
|
- spec/spec_helper.rb
|
162
|
+
- spec/table_spec.rb
|
153
163
|
has_rdoc:
|