mobilize-base 1.25 → 1.26

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ce15c1af069e5c285df26cf613ce6cf378489f1f
4
- data.tar.gz: 5a4098bb5d320d6580ab5dbe695348015edd0949
3
+ metadata.gz: 589b56572a43097c84f63317ef02d681f7add21d
4
+ data.tar.gz: 660181a7039188861db41215c185fc1ec76244ba
5
5
  SHA512:
6
- metadata.gz: cca5b69d992e93bac4b7a738199993c81802534366f52bf12f2c6171ab88fe15c3f18735402c102d77d01e2224bedd93a97226ee996959a05cd77df5c2433d16
7
- data.tar.gz: d6d7de9e7516102527baeccb3d0198fc03d5aaccb47f1a702160ba4d4e25b0fea3e0232bacc4b22465dd360581c3560f75b53d69441cd7a21b97c61ba80473de
6
+ metadata.gz: eafc31651c0737c1b9788f109a6a34f7afdc3af235028892d98173b03d6279e6e867a85498b08b0f4700d24320ebc3ebe43d561f1809bf94a901ae8942c53b8d
7
+ data.tar.gz: 19508e09afba3af8aea6091a26c8481a9382b905ef07ba9af8288bdcb8829e296fb684b0800206ff89d7a99b25766b76ecd827a9325ec4c75b0d156a8119a925
@@ -1,6 +1,6 @@
1
1
  module GoogleDrive
2
2
  class Worksheet
3
- def to_tsv
3
+ def to_tsv(gsub_line_breaks="\n")
4
4
  sheet = self
5
5
  rows = sheet.rows
6
6
  header = rows.first
@@ -8,7 +8,12 @@ module GoogleDrive
8
8
  #look for blank cols to indicate end of row
9
9
  col_last_i = (header.index("") || header.length)-1
10
10
  #ignore user-entered line breaks for purposes of tsv reads
11
- out_tsv = rows.map{|r| r[0..col_last_i].join("\t").gsub("\n","")+"\n"}.join + "\n"
11
+ out_tsv = rows.map do |r|
12
+ row = r[0..col_last_i].join("\t")
13
+ row.gsub!("\n",gsub_line_breaks)
14
+ row = row + "\n"
15
+ row
16
+ end.join + "\n"
12
17
  out_tsv.tsv_convert_dates(Mobilize::Gsheet.config['sheet_date_format'],
13
18
  Mobilize::Gsheet.config['read_date_format'])
14
19
  end
@@ -1,6 +1,6 @@
1
1
  module Mobilize
2
2
  module Gfile
3
- def Gfile.path_to_dst(path,stage_path)
3
+ def Gfile.path_to_dst(path,stage_path,gdrive_slot)
4
4
  #don't need the ://
5
5
  path = path.split("://").last if path.index("://")
6
6
  if Gfile.find_by_path(path)
@@ -10,12 +10,10 @@ module Mobilize
10
10
  end
11
11
 
12
12
  # converts a source path or target path to a dst in the context of handler and stage
13
- def Gsheet.path_to_dst(path,stage_path)
13
+ def Gsheet.path_to_dst(path,stage_path,gdrive_slot)
14
14
  s = Stage.where(:path=>stage_path).first
15
15
  params = s.params
16
16
  target_path = params['target']
17
- #take random slot if one is not available
18
- gdrive_slot = Gdrive.slot_worker_by_path(stage_path) || Gdrive.worker_emails.sort_by{rand}.first
19
17
  #if this is the target, it doesn't have to exist already
20
18
  is_target = true if path == target_path
21
19
  #don't need the ://
@@ -46,9 +44,7 @@ module Mobilize
46
44
 
47
45
  def Gsheet.read_by_dataset_path(dst_path,user_name,*args)
48
46
  #expects gdrive slot as first arg, otherwise chooses random
49
- gdrive_slot = args
50
- worker_emails = Gdrive.worker_emails.sort_by{rand}
51
- gdrive_slot = worker_emails.first unless worker_emails.include?(gdrive_slot)
47
+ gdrive_slot = args.to_a.first
52
48
  sheet = Gsheet.find_by_path(dst_path,gdrive_slot)
53
49
  sheet.read(user_name) if sheet
54
50
  end
@@ -56,8 +52,6 @@ module Mobilize
56
52
  def Gsheet.write_by_dataset_path(dst_path,tsv,user_name,*args)
57
53
  #expects gdrive slot as first arg, otherwise chooses random
58
54
  gdrive_slot,crop = args
59
- worker_emails = Gdrive.worker_emails.sort_by{rand}
60
- gdrive_slot = worker_emails.first unless worker_emails.include?(gdrive_slot)
61
55
  crop ||= true
62
56
  Gsheet.write_target(dst_path,tsv,user_name,gdrive_slot,crop)
63
57
  end
@@ -134,7 +128,7 @@ module Mobilize
134
128
  crop = s.params['crop'] || true
135
129
  begin
136
130
  #get tsv to write from stage
137
- source = s.sources.first
131
+ source = s.sources(gdrive_slot).first
138
132
  raise "Need source for gsheet write" unless source
139
133
  tsv = source.read(u.name,gdrive_slot)
140
134
  raise "No data source found for #{source.url}" unless tsv
@@ -101,7 +101,8 @@ module Mobilize
101
101
 
102
102
  def read_gsheet(gdrive_slot)
103
103
  r = self
104
- gsheet_tsv = r.gsheet(gdrive_slot).read(Gdrive.owner_name)
104
+ #argument converts line breaks in cells to spaces
105
+ gsheet_tsv = r.gsheet(gdrive_slot).to_tsv(" ")
105
106
  #turn it into a hash array
106
107
  gsheet_jobs = gsheet_tsv.tsv_to_hash_array
107
108
  #go through each job, update relevant job with its params
@@ -212,14 +212,15 @@ module Mobilize
212
212
  raise "incompatible target handler #{handler} for #{s.handler} stage"
213
213
  else
214
214
  begin
215
- return "Mobilize::#{s.handler.downcase.capitalize}".constantize.path_to_dst(target_path,s.path)
215
+ #nil gdrive_slot for targets since there is no verification
216
+ return "Mobilize::#{s.handler.downcase.capitalize}".constantize.path_to_dst(target_path,s.path,nil)
216
217
  rescue => exc
217
218
  raise "Could not get #{target_path} with error: #{exc.to_s}"
218
219
  end
219
220
  end
220
221
  end
221
222
 
222
- def sources
223
+ def sources(gdrive_slot)
223
224
  #returns an array of Datasets corresponding to
224
225
  #items listed as sources in the stage params
225
226
  s = self
@@ -248,7 +249,7 @@ module Mobilize
248
249
  end
249
250
  begin
250
251
  stage_path = s.path
251
- dsts << "Mobilize::#{handler.downcase.capitalize}".constantize.path_to_dst(source_path,stage_path)
252
+ dsts << "Mobilize::#{handler.downcase.capitalize}".constantize.path_to_dst(source_path,stage_path,gdrive_slot)
252
253
  rescue => exc
253
254
  raise "Could not get #{source_path} with error: #{exc.to_s}"
254
255
  end
@@ -1,5 +1,5 @@
1
1
  module Mobilize
2
2
  module Base
3
- VERSION = "1.25"
3
+ VERSION = "1.26"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mobilize-base
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.25'
4
+ version: '1.26'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cassio Paes-Leme
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-03-24 00:00:00.000000000 Z
11
+ date: 2013-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake