class Unitylock::Client::Main
Public Class Methods
new(urlbase)
click to toggle source
# File lib/unitylock/client/main.rb, line 8 def initialize(urlbase) @conn = Faraday.new(:url => urlbase) do |faraday| faraday.request :url_encoded # faraday.response :logger faraday.adapter Faraday.default_adapter end end
Public Instance Methods
delete_all()
click to toggle source
# File lib/unitylock/client/main.rb, line 36 def delete_all files = JSON.parse(search.body).collect {|it| it['file']} deletes(files) end
deletes(files)
click to toggle source
# File lib/unitylock/client/main.rb, line 28 def deletes(files) @conn.delete do |req| req.url '/files' req.headers['Content-Type'] = 'application/json' req.body = JSON.generate(files) end end
locks(user:, files:)
click to toggle source
# File lib/unitylock/client/main.rb, line 41 def locks(user:, files:) # TODO: requests at once results = [] files.each do |file| results << @conn.put do |req| req.url "/user/#{user}/lock" req.headers['Content-Type'] = 'application/json' req.body = JSON.generate({file: file}) end.body end results end
search()
click to toggle source
# File lib/unitylock/client/main.rb, line 16 def search @conn.get '/files' end
sync(dir: '.', force: false, includes: /\.(unity|prefab)$/, excludes: /^$/)
click to toggle source
# File lib/unitylock/client/main.rb, line 67 def sync(dir: '.', force: false, includes: /\.(unity|prefab)$/, excludes: /^$/) files = Find.find(dir).select{|it| it =~ includes}.select{|it| it !~ excludes} puts "touched:" puts files touches(files) touched_files = JSON.parse(search.body).collect {|it| it['file']} if force remove_files = touched_files.select{|it| !files.include?(it) } puts "removed:" puts remove_files deletes(remove_files) return (touched_files - remove_files) end return touched_files end
touches(files)
click to toggle source
# File lib/unitylock/client/main.rb, line 20 def touches(files) @conn.post do |req| req.url '/files' req.headers['Content-Type'] = 'application/json' req.body = JSON.generate(files) end end
unlocks(user:, files:)
click to toggle source
# File lib/unitylock/client/main.rb, line 54 def unlocks(user:, files:) # TODO: requests at once results = [] files.each do |file| results << @conn.put do |req| req.url "/user/#{user}/unlock" req.headers['Content-Type'] = 'application/json' req.body = JSON.generate({file: file}) end.body end results end