tofulcrum 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/lib/tofulcrum.rb +33 -12
- data/lib/tofulcrum/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MGFiOTNkNTQ2YmJmYzQ4OTQ4YzI4NDdkNWRiM2EwNTk0ZDgyZjFlOA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
Y2E2NjE2MmZhNjM4NTM0OTgyMDZlYzYzODU4ZjZjMTdjM2M1OThhYg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NzZkNjlkOTJiYWIxYThhNTVlZGVkMDkwZDg0ZjFmMGIyNjQzMmE2ZWMxMmY1
|
10
|
+
OWUxNjI1ZTkxYWI0NWM2NGEyNzU1MzM0ZGNhZGJkYTJjOGQwYzUyZTNjMmJl
|
11
|
+
MTMwOTg3NmViYWU3NmM2ZDEyZGJkYTBjMTIyMDYxN2E4ZWU2NzQ=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MDU3ZGZlMjNmMDg5NDJkMzZlNGVjZjdkOTcyMGZjMmMxYWNiNzkzZTc4NDVl
|
14
|
+
MjJhNGYyMWRiMTIyM2QyMDBjMjc4MDQ2MGI5MTRmMGZiNmY3N2QzZjU2NWU4
|
15
|
+
MzBkYjZlYTVjMmM2NDg5MThjMmU4M2QwNWU2Yjk2MTAxMDI0MDg=
|
data/lib/tofulcrum.rb
CHANGED
@@ -16,25 +16,20 @@ module Tofulcrum
|
|
16
16
|
row_index = 0
|
17
17
|
upload_index = 0
|
18
18
|
|
19
|
-
lat_index = nil
|
20
|
-
lon_index = nil
|
21
19
|
column_mapping = []
|
22
20
|
records = []
|
21
|
+
system_columns = {}
|
23
22
|
|
24
23
|
CSV.foreach(file) do |row|
|
25
24
|
is_header = row_index == 0
|
26
25
|
|
27
26
|
if is_header
|
28
|
-
|
29
|
-
raise 'Unable to find latitude/longitude columns' unless
|
27
|
+
system_columns = find_system_columns(row)
|
28
|
+
raise 'Unable to find latitude/longitude columns' unless system_columns[:latitude] && system_columns[:longitude]
|
30
29
|
|
31
|
-
|
32
|
-
lon_name = row[lon_index]
|
30
|
+
user_cols = user_columns(row, system_columns)
|
33
31
|
|
34
|
-
|
35
|
-
headers.delete_if {|v| [lat_name, lon_name].include?(v)}
|
36
|
-
|
37
|
-
column_mapping = find_mapping_columns(form_id, headers, row, mapping)
|
32
|
+
column_mapping = find_mapping_columns(form_id, user_cols, row, mapping)
|
38
33
|
else
|
39
34
|
form_values = {}
|
40
35
|
|
@@ -54,12 +49,14 @@ module Tofulcrum
|
|
54
49
|
record = {
|
55
50
|
record: {
|
56
51
|
form_id: form_id,
|
57
|
-
latitude: row[lat_index].to_f,
|
58
|
-
longitude: row[lon_index].to_f,
|
59
52
|
form_values: form_values
|
60
53
|
}
|
61
54
|
}
|
62
55
|
|
56
|
+
system_columns.each do |attr, index|
|
57
|
+
record[:record][attr] = row[index]
|
58
|
+
end
|
59
|
+
|
63
60
|
records << record
|
64
61
|
end
|
65
62
|
|
@@ -116,6 +113,30 @@ module Tofulcrum
|
|
116
113
|
end
|
117
114
|
end
|
118
115
|
|
116
|
+
def user_columns(row, system_columns)
|
117
|
+
system_column_names = system_columns.keys.map {|k| row[system_columns[k]]}
|
118
|
+
|
119
|
+
row.clone.tap do |user_columns|
|
120
|
+
system_columns.each do |column, index|
|
121
|
+
user_columns.delete_if {|v| system_column_names.include?(v)}
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
def find_system_columns(headers)
|
127
|
+
lat_columns = ['lat', 'latitude', 'y']
|
128
|
+
lon_columns = ['lon', 'long', 'longitude', 'x']
|
129
|
+
|
130
|
+
{
|
131
|
+
latitude: headers.index {|h| lat_columns.include?(h.downcase) },
|
132
|
+
longitude: headers.index {|h| lon_columns.include?(h.downcase) },
|
133
|
+
project: headers.index {|h| h == 'project' },
|
134
|
+
status: headers.index {|h| h == 'status' },
|
135
|
+
client_created_at: headers.index {|h| h == 'created_at' },
|
136
|
+
client_updated_at: headers.index {|h| h == 'updated_at' },
|
137
|
+
}.delete_if {|k, v| v.nil?}
|
138
|
+
end
|
139
|
+
|
119
140
|
def find_geo_columns(headers)
|
120
141
|
lat_columns = ['lat', 'latitude', 'y']
|
121
142
|
lon_columns = ['lon', 'long', 'longitude', 'x']
|
data/lib/tofulcrum/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tofulcrum
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
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-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|