module Mobilize::Gdrive
Public Class Methods
admin_group_name()
click to toggle source
# File lib/mobilize-base/handlers/google/gdrive.rb, line 63 def Gdrive.admin_group_name Gdrive.config['admin_group_name'] end
admins()
click to toggle source
# File lib/mobilize-base/handlers/google/gdrive.rb, line 40 def Gdrive.admins Gdrive.config['admins'] end
books(gdrive_slot=nil,params={})
click to toggle source
# File lib/mobilize-base/handlers/google/gdrive.rb, line 103 def Gdrive.books(gdrive_slot=nil,params={}) Gdrive.files(gdrive_slot,params).select{|f| f.class==GoogleDrive::Spreadsheet} end
config()
click to toggle source
# File lib/mobilize-base/handlers/google/gdrive.rb, line 3 def Gdrive.config Base.config('gdrive') end
domain()
click to toggle source
# File lib/mobilize-base/handlers/google/gdrive.rb, line 7 def Gdrive.domain Gdrive.config['domain'] end
file_write_retry_delay()
click to toggle source
# File lib/mobilize-base/handlers/google/gdrive.rb, line 36 def Gdrive.file_write_retry_delay Gdrive.config['file_write_retry_delay'] end
files(gdrive_slot=nil,params={})
click to toggle source
# File lib/mobilize-base/handlers/google/gdrive.rb, line 98 def Gdrive.files(gdrive_slot=nil,params={}) root = Gdrive.root(gdrive_slot) root.files(params) end
max_api_retries()
click to toggle source
# File lib/mobilize-base/handlers/google/gdrive.rb, line 28 def Gdrive.max_api_retries Gdrive.config['max_api_retries'] end
max_file_write_retries()
click to toggle source
# File lib/mobilize-base/handlers/google/gdrive.rb, line 32 def Gdrive.max_file_write_retries Gdrive.config['max_file_write_retries'] end
owner_email()
click to toggle source
# File lib/mobilize-base/handlers/google/gdrive.rb, line 11 def Gdrive.owner_email [Gdrive.config['owner']['name'],Gdrive.domain].join("@") end
owner_name()
click to toggle source
# File lib/mobilize-base/handlers/google/gdrive.rb, line 15 def Gdrive.owner_name Gdrive.config['owner']['name'] end
password(email)
click to toggle source
# File lib/mobilize-base/handlers/google/gdrive.rb, line 19 def Gdrive.password(email) if email == Gdrive.owner_email Gdrive.config['owner']['pw'] else worker = Gdrive.workers(email) return worker['pw'] if worker end end
root(gdrive_slot=nil)
click to toggle source
# File lib/mobilize-base/handlers/google/gdrive.rb, line 93 def Gdrive.root(gdrive_slot=nil) pw = Gdrive.password(gdrive_slot) GoogleDrive.login(gdrive_slot,pw) end
slot_worker_by_path(path)
click to toggle source
email management - used to make sure not too many emails get used at the same time
# File lib/mobilize-base/handlers/google/gdrive.rb, line 72 def Gdrive.slot_worker_by_path(path) working_slots = Mobilize::Resque.jobs.map{|j| begin j['args'][1]['gdrive_slot'];rescue;nil;end}.compact.uniq Gdrive.workers.sort_by{rand}.each do |w| unless working_slots.include?([w['name'],Gdrive.domain].join("@")) Mobilize::Resque.set_worker_args_by_path(path,{'gdrive_slot'=>[w['name'],Gdrive.domain].join("@")}) return [w['name'],Gdrive.domain].join("@") end end #return false if none are available return false end
unslot_worker_by_path(path)
click to toggle source
# File lib/mobilize-base/handlers/google/gdrive.rb, line 84 def Gdrive.unslot_worker_by_path(path) begin Mobilize::Resque.set_worker_args_by_path(path,{'gdrive_slot'=>nil}) return true rescue return false end end
worker_emails()
click to toggle source
# File lib/mobilize-base/handlers/google/gdrive.rb, line 67 def Gdrive.worker_emails Gdrive.workers.map{|w| [w['name'],Gdrive.domain].join("@")} end
worker_group_name()
click to toggle source
# File lib/mobilize-base/handlers/google/gdrive.rb, line 59 def Gdrive.worker_group_name Gdrive.config['worker_group_name'] end
workers(email=nil)
click to toggle source
# File lib/mobilize-base/handlers/google/gdrive.rb, line 44 def Gdrive.workers(email=nil) if email.nil? #divide worker array into equal number of parts #as there are deploy servers servers = Jobtracker.deploy_servers workers = Gdrive.config['workers'] current_server = Jobtracker.current_server || servers.first server_i = servers.index(current_server) server_workers = workers.in_groups(servers.length,false)[server_i] return server_workers else Gdrive.workers.select{|w| [w['name'],Gdrive.domain].join("@") == email}.first end end