cartodb-importer 0.2.17 → 0.2.18

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.
@@ -1,4 +1,11 @@
1
1
  # coding: UTF-8
2
+ #
3
+ def get_temporal_filename (prefix)
4
+ tf = Tempfile.new(prefix)
5
+ tempname = tf.path
6
+ tf.close!
7
+ return tempname
8
+ end
2
9
 
3
10
  module CartoDB
4
11
  class Importer
@@ -131,6 +138,39 @@ module CartoDB
131
138
  @ext = '.csv'
132
139
  path = @import_from_file.path
133
140
  end
141
+
142
+ # if the file is a gpx file import the track points with all associated data
143
+ # A GPX file generates 3 tables so it would be good to have the option to create
144
+ # and import all of them
145
+ if %W{ .gpx }.include?(@ext)
146
+ # generate a temporally file
147
+ shp_file = get_temporal_filename(path)
148
+
149
+ # extract the 3 shp files (and associated dbf and so on)
150
+ # it will create a folder
151
+ ogr2ogr_bin_path = `which ogr2ogr`.strip
152
+ # ogr2ogr does not manage well datetime fields in gpx to transform it to string in
153
+ # order to import correctly
154
+ ogr2ogr_command = %Q{#{ogr2ogr_bin_path} -fieldTypeToString DateTime -f "ESRI Shapefile" #{shp_file} #{path}}
155
+ out = `#{ogr2ogr_command}`
156
+
157
+ track_points = "#{shp_file}/track_points.shp"
158
+ runlog.stdout << track_points
159
+ # then choose the track_points file to import
160
+ if Dir.exists?(shp_file) and File.file?(track_points)
161
+ # add all files to entries to be removed
162
+ # add the path too in order to remove it
163
+ entries = Dir["#{shp_file}/*"]
164
+ entries << shp_file
165
+
166
+ path = track_points
167
+ # get the file to import and set extension to shp
168
+ @ext = '.shp'
169
+ else
170
+ runlog.err << "failed to create shp file from GPX"
171
+ end
172
+
173
+ end
134
174
 
135
175
  if %W{ .kmz .kml .json .js }.include?(@ext)
136
176
  ogr2ogr_bin_path = `which ogr2ogr`.strip
@@ -1,6 +1,6 @@
1
1
  module CartoDB
2
2
  class Importer
3
- VERSION = "0.2.17"
3
+ VERSION = "0.2.18"
4
4
  end
5
5
  end
6
-
6
+
data/spec/import_spec.rb CHANGED
@@ -322,6 +322,21 @@ describe CartoDB::Importer do
322
322
  result.import_type.should == '.shp'
323
323
  end
324
324
  end
325
+
326
+
327
+
328
+ describe "import GPX file" do
329
+ it "should import GPX file" do
330
+ importer = CartoDB::Importer.new :import_from_file => File.expand_path("../support/data/route2.gpx", __FILE__),
331
+ :database => "cartodb_importer_test", :username => 'postgres', :password => '',
332
+ :host => 'localhost', :port => 5432
333
+ result = importer.import!
334
+ result.should_not == nil
335
+ result.name.should == 'route2'
336
+ #result.rows_imported.should == 29
337
+ result.import_type.should == '.gpx'
338
+ end
339
+ end
325
340
 
326
341
  describe "Import from Simon file" do
327
342
  it "should import a shapefile from Simon" do
metadata CHANGED
@@ -1,10 +1,10 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: cartodb-importer
3
- version: !ruby/object:Gem::Version
4
- version: 0.2.17
3
+ version: !ruby/object:Gem::Version
5
4
  prerelease:
5
+ version: 0.2.18
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Fernando Blat
9
9
  - Andrew Hill
10
10
  - Javier de la Torre
@@ -12,147 +12,152 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2011-10-06 00:00:00.000000000Z
16
- dependencies:
17
- - !ruby/object:Gem::Dependency
15
+
16
+ date: 2011-10-18 00:00:00 +02:00
17
+ default_executable:
18
+ dependencies:
19
+ - !ruby/object:Gem::Dependency
18
20
  name: pg
19
- requirement: &70363733332580 !ruby/object:Gem::Requirement
21
+ prerelease: false
22
+ requirement: &id001 !ruby/object:Gem::Requirement
20
23
  none: false
21
- requirements:
24
+ requirements:
22
25
  - - ~>
23
- - !ruby/object:Gem::Version
24
- version: '0.11'
26
+ - !ruby/object:Gem::Version
27
+ version: "0.11"
25
28
  type: :runtime
26
- prerelease: false
27
- version_requirements: *70363733332580
28
- - !ruby/object:Gem::Dependency
29
+ version_requirements: *id001
30
+ - !ruby/object:Gem::Dependency
29
31
  name: sequel
30
- requirement: &70363733331740 !ruby/object:Gem::Requirement
32
+ prerelease: false
33
+ requirement: &id002 !ruby/object:Gem::Requirement
31
34
  none: false
32
- requirements:
35
+ requirements:
33
36
  - - ~>
34
- - !ruby/object:Gem::Version
37
+ - !ruby/object:Gem::Version
35
38
  version: 3.28.0
36
39
  type: :runtime
37
- prerelease: false
38
- version_requirements: *70363733331740
39
- - !ruby/object:Gem::Dependency
40
+ version_requirements: *id002
41
+ - !ruby/object:Gem::Dependency
40
42
  name: roo
41
- requirement: &70363733331020 !ruby/object:Gem::Requirement
43
+ prerelease: false
44
+ requirement: &id003 !ruby/object:Gem::Requirement
42
45
  none: false
43
- requirements:
46
+ requirements:
44
47
  - - ~>
45
- - !ruby/object:Gem::Version
48
+ - !ruby/object:Gem::Version
46
49
  version: 1.9.7
47
50
  type: :runtime
48
- prerelease: false
49
- version_requirements: *70363733331020
50
- - !ruby/object:Gem::Dependency
51
+ version_requirements: *id003
52
+ - !ruby/object:Gem::Dependency
51
53
  name: spreadsheet
52
- requirement: &70363733330320 !ruby/object:Gem::Requirement
54
+ prerelease: false
55
+ requirement: &id004 !ruby/object:Gem::Requirement
53
56
  none: false
54
- requirements:
57
+ requirements:
55
58
  - - ~>
56
- - !ruby/object:Gem::Version
59
+ - !ruby/object:Gem::Version
57
60
  version: 0.6.5.9
58
61
  type: :runtime
59
- prerelease: false
60
- version_requirements: *70363733330320
61
- - !ruby/object:Gem::Dependency
62
+ version_requirements: *id004
63
+ - !ruby/object:Gem::Dependency
62
64
  name: google-spreadsheet-ruby
63
- requirement: &70363733329560 !ruby/object:Gem::Requirement
65
+ prerelease: false
66
+ requirement: &id005 !ruby/object:Gem::Requirement
64
67
  none: false
65
- requirements:
68
+ requirements:
66
69
  - - ~>
67
- - !ruby/object:Gem::Version
70
+ - !ruby/object:Gem::Version
68
71
  version: 0.1.5
69
72
  type: :runtime
70
- prerelease: false
71
- version_requirements: *70363733329560
72
- - !ruby/object:Gem::Dependency
73
+ version_requirements: *id005
74
+ - !ruby/object:Gem::Dependency
73
75
  name: rubyzip
74
- requirement: &70363733328960 !ruby/object:Gem::Requirement
76
+ prerelease: false
77
+ requirement: &id006 !ruby/object:Gem::Requirement
75
78
  none: false
76
- requirements:
79
+ requirements:
77
80
  - - ~>
78
- - !ruby/object:Gem::Version
81
+ - !ruby/object:Gem::Version
79
82
  version: 0.9.4
80
83
  type: :runtime
81
- prerelease: false
82
- version_requirements: *70363733328960
83
- - !ruby/object:Gem::Dependency
84
+ version_requirements: *id006
85
+ - !ruby/object:Gem::Dependency
84
86
  name: builder
85
- requirement: &70363733328360 !ruby/object:Gem::Requirement
87
+ prerelease: false
88
+ requirement: &id007 !ruby/object:Gem::Requirement
86
89
  none: false
87
- requirements:
88
- - - ! '>='
89
- - !ruby/object:Gem::Version
90
- version: '0'
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: "0"
91
94
  type: :runtime
92
- prerelease: false
93
- version_requirements: *70363733328360
94
- - !ruby/object:Gem::Dependency
95
+ version_requirements: *id007
96
+ - !ruby/object:Gem::Dependency
95
97
  name: rgeo
96
- requirement: &70363733327540 !ruby/object:Gem::Requirement
98
+ prerelease: false
99
+ requirement: &id008 !ruby/object:Gem::Requirement
97
100
  none: false
98
- requirements:
101
+ requirements:
99
102
  - - ~>
100
- - !ruby/object:Gem::Version
103
+ - !ruby/object:Gem::Version
101
104
  version: 0.3.2
102
105
  type: :runtime
103
- prerelease: false
104
- version_requirements: *70363733327540
105
- - !ruby/object:Gem::Dependency
106
+ version_requirements: *id008
107
+ - !ruby/object:Gem::Dependency
106
108
  name: rgeo-geojson
107
- requirement: &70363733326760 !ruby/object:Gem::Requirement
109
+ prerelease: false
110
+ requirement: &id009 !ruby/object:Gem::Requirement
108
111
  none: false
109
- requirements:
112
+ requirements:
110
113
  - - ~>
111
- - !ruby/object:Gem::Version
114
+ - !ruby/object:Gem::Version
112
115
  version: 0.2.1
113
116
  type: :runtime
114
- prerelease: false
115
- version_requirements: *70363733326760
116
- - !ruby/object:Gem::Dependency
117
+ version_requirements: *id009
118
+ - !ruby/object:Gem::Dependency
117
119
  name: rspec
118
- requirement: &70363733326080 !ruby/object:Gem::Requirement
120
+ prerelease: false
121
+ requirement: &id010 !ruby/object:Gem::Requirement
119
122
  none: false
120
- requirements:
123
+ requirements:
121
124
  - - ~>
122
- - !ruby/object:Gem::Version
125
+ - !ruby/object:Gem::Version
123
126
  version: 2.6.0
124
127
  type: :development
125
- prerelease: false
126
- version_requirements: *70363733326080
127
- - !ruby/object:Gem::Dependency
128
+ version_requirements: *id010
129
+ - !ruby/object:Gem::Dependency
128
130
  name: mocha
129
- requirement: &70363733325400 !ruby/object:Gem::Requirement
131
+ prerelease: false
132
+ requirement: &id011 !ruby/object:Gem::Requirement
130
133
  none: false
131
- requirements:
134
+ requirements:
132
135
  - - ~>
133
- - !ruby/object:Gem::Version
136
+ - !ruby/object:Gem::Version
134
137
  version: 0.10.0
135
138
  type: :development
136
- prerelease: false
137
- version_requirements: *70363733325400
138
- - !ruby/object:Gem::Dependency
139
+ version_requirements: *id011
140
+ - !ruby/object:Gem::Dependency
139
141
  name: ruby-debug19
140
- requirement: &70363733324700 !ruby/object:Gem::Requirement
142
+ prerelease: false
143
+ requirement: &id012 !ruby/object:Gem::Requirement
141
144
  none: false
142
- requirements:
145
+ requirements:
143
146
  - - ~>
144
- - !ruby/object:Gem::Version
147
+ - !ruby/object:Gem::Version
145
148
  version: 0.11.6
146
149
  type: :development
147
- prerelease: false
148
- version_requirements: *70363733324700
150
+ version_requirements: *id012
149
151
  description: Import CSV, SHP, and other files with data into a PostgreSQL table
150
- email:
152
+ email:
151
153
  - andrew@vizzuality.com
152
154
  executables: []
155
+
153
156
  extensions: []
157
+
154
158
  extra_rdoc_files: []
155
- files:
159
+
160
+ files:
156
161
  - .gitignore
157
162
  - .rvmrc
158
163
  - Gemfile
@@ -177,31 +182,35 @@ files:
177
182
  - spec/export_spec.rb
178
183
  - spec/import_spec.rb
179
184
  - spec/spec_helper.rb
180
- homepage: ''
185
+ has_rdoc: true
186
+ homepage: ""
181
187
  licenses: []
188
+
182
189
  post_install_message:
183
190
  rdoc_options: []
184
- require_paths:
191
+
192
+ require_paths:
185
193
  - lib
186
- required_ruby_version: !ruby/object:Gem::Requirement
194
+ required_ruby_version: !ruby/object:Gem::Requirement
187
195
  none: false
188
- requirements:
189
- - - ! '>='
190
- - !ruby/object:Gem::Version
191
- version: '0'
192
- required_rubygems_version: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - ">="
198
+ - !ruby/object:Gem::Version
199
+ version: "0"
200
+ required_rubygems_version: !ruby/object:Gem::Requirement
193
201
  none: false
194
- requirements:
195
- - - ! '>='
196
- - !ruby/object:Gem::Version
197
- version: '0'
202
+ requirements:
203
+ - - ">="
204
+ - !ruby/object:Gem::Version
205
+ version: "0"
198
206
  requirements: []
207
+
199
208
  rubyforge_project: cartodb-importer
200
- rubygems_version: 1.8.10
209
+ rubygems_version: 1.6.2
201
210
  signing_key:
202
211
  specification_version: 3
203
212
  summary: Import CSV, SHP, and other files with data into a PostgreSQL table
204
- test_files:
213
+ test_files:
205
214
  - spec/export_spec.rb
206
215
  - spec/import_spec.rb
207
216
  - spec/spec_helper.rb