class Meer::Datameer

Attributes

password[R]
uri[R]
user[R]

Public Class Methods

new(url, user=nil, password=nil) click to toggle source
# File lib/meer/datameer.rb, line 6
def initialize url, user=nil, password=nil
  @uri, @user, @password = URI(url), user, password
  
  @http = Net::HTTP.new uri.host, uri.port
  @http.use_ssl = true if uri.port == 443
end

Public Instance Methods

get(url) click to toggle source
# File lib/meer/datameer.rb, line 31
def get url
  req = Net::HTTP::Get.new(URI(uri.to_s + url))
  request(req)
end
login() click to toggle source
# File lib/meer/datameer.rb, line 42
def login
  resp = get('/browser')
  
  if resp.code.to_i == 200
    Session.set(resp['set-cookie'])
    puts "Logged In"
  else
    puts "Failed to log in"
  end      
end
post(url) click to toggle source
# File lib/meer/datameer.rb, line 36
def post url
  req = Net::HTTP::Post.new(URI(uri.to_s + url))
  request(req)      
end
request(req) click to toggle source
# File lib/meer/datameer.rb, line 14
def request req
  if [user, password].compact.size == 2
    req.basic_auth self.user, self.password
  else
    req['Cookie'] = Session.load
  end

  res = @http.request(req)
  if res.code == '200'
    res
  else
    puts "error fetching #{req.uri}"
    puts res.code
    puts res.to_hash
  end  
end
run_workbook(wb_id) click to toggle source
# File lib/meer/datameer.rb, line 67
def run_workbook wb_id
  JSON.parse post("/rest/job-execution?configuration=#{wb_id}").body
end
running_jobs() click to toggle source
# File lib/meer/datameer.rb, line 71
def running_jobs
  JSON.parse get("/rest/jobs/list-running").body
end
workbook(wb_id) click to toggle source
# File lib/meer/datameer.rb, line 59
def workbook wb_id
  JSON.parse(get("/rest/workbook/#{wb_id}").body)
end
workbook_data(wb_id, sheet) click to toggle source
# File lib/meer/datameer.rb, line 54
def workbook_data wb_id, sheet
  res = get "/rest/data/workbook/#{wb_id}/#{sheet}/download"
  res.body
end
workbooks() click to toggle source
# File lib/meer/datameer.rb, line 63
def workbooks
  JSON.parse(get("/rest/workbook").body)
end