class Em::Sessions::Client

Attributes

app[R]
http_url[R]

Public Class Methods

new(url, app) click to toggle source
# File lib/em/sessions/client.rb, line 9
def initialize(url, app)
  if url.nil? || app.nil?
    raise 'http_url is blank or app is blank!'
  end
  if url.strip.empty?
    http_url = 'http://localhost:3000/'
  else
    http_url = url =~ /^https?\/\// ? url : "http://#{url}"
  end
  @app = app
  @http_url = http_url =~ /\/$/ ? http_url[0..-2] : http_url
end

Public Instance Methods

activity?(seconds = 600, app = nil) click to toggle source
# File lib/em/sessions/client.rb, line 65
def activity?(seconds = 600, app = nil)
  app_name =  get_app_name app
  run_http_url = %Q{#{@http_url}/#{app_name}/activity?dt=#{seconds}}
  return run_em 'get', run_http_url
end
create(id, out_time = 7200, ip = '0.0.0.0', app = nil) click to toggle source
# File lib/em/sessions/client.rb, line 22
def create(id,  out_time = 7200, ip = '0.0.0.0', app = nil)
  app_name =  get_app_name app
  run_http_url = %Q{#{@http_url}/#{app_name}/create/#{id}?ip=#{ip}&ttl=#{out_time}}
  return run_em 'put', run_http_url
end
delete_all(app = nil) click to toggle source
# File lib/em/sessions/client.rb, line 53
def delete_all(app = nil)
  app_name =  get_app_name app
  run_http_url = %Q{#{@http_url}/#{app_name}/killall}
  return run_em 'delete', run_http_url
end
delete_by_id(id, app = nil) click to toggle source
# File lib/em/sessions/client.rb, line 47
def delete_by_id(id, app = nil)
  app_name =  get_app_name app
  run_http_url = %Q{#{@http_url}/#{app_name}/killsoid/#{ id }}
  return run_em 'delete', run_http_url
end
delete_by_token(user_token, app = nil) click to toggle source
# File lib/em/sessions/client.rb, line 41
def delete_by_token(user_token, app = nil)
  app_name =  get_app_name app
  run_http_url = %Q{#{@http_url}/#{app_name}/kill/#{ user_token }}
  return run_em 'delete', run_http_url
end
find_by_id(id, app = nil) click to toggle source
# File lib/em/sessions/client.rb, line 35
def find_by_id(id, app = nil)
  app_name =  get_app_name app
  run_http_url = %Q{#{@http_url}/#{app_name}/soid/#{ id }}
  return run_em 'get', run_http_url
end
find_by_token(user_token, app = nil) click to toggle source
# File lib/em/sessions/client.rb, line 28
def find_by_token(user_token, app = nil)
  app_name =  get_app_name app
  run_http_url = %Q{#{@http_url}/#{app_name}/get/#{ user_token }}
  return run_em 'get', run_http_url
end
set_params_by_token(user_token, params = {}, app = nil) click to toggle source
# File lib/em/sessions/client.rb, line 59
def set_params_by_token(user_token, params = {}, app = nil)
  app_name =  get_app_name app
  run_http_url = %Q{#{@http_url}/#{app_name}/set/#{ user_token }}
  return run_em 'post', run_http_url, { 'Content-Type'=>'application/json'}, params
end

Private Instance Methods

get_app_name(app) click to toggle source
# File lib/em/sessions/client.rb, line 73
def get_app_name(app)
  app.nil? ? @app : app
end
run_em(type, url, head = {}, body = {}) click to toggle source
# File lib/em/sessions/client.rb, line 77
def run_em(type, url, head = {}, body = {})
  code = 0
  return_string = ''
  EventMachine.run {
    http = EventMachine::HttpRequest.new(url).send type, head: head, body: body.to_json
    http.errback { code = http.response_header.status; return_string = http.response;EM.stop }
    http.callback { code = http.response_header.status; return_string = http.response;EventMachine.stop }
  }
  if code ==  200
    json = JSON.parse return_string
    return 200, json
  end
  return code, json
end