class Dexby::Reader

Public Class Methods

new(username, password, connection_class=Dexby::Connection, parser_class=Dexby::Parse) click to toggle source
# File lib/dexby/reader.rb, line 5
def initialize(username, password, connection_class=Dexby::Connection, parser_class=Dexby::Parse)
  @connection_class = connection_class
  @parser_class = parser_class
  @username = username
  @password = password
  @session_id = nil
end

Public Instance Methods

connection() click to toggle source
# File lib/dexby/reader.rb, line 13
def connection
  @connection_class
end
ensure_session_id() click to toggle source
# File lib/dexby/reader.rb, line 47
def ensure_session_id
  get_session_id if @session_id.nil?
end
get_session_id() click to toggle source
# File lib/dexby/reader.rb, line 51
def get_session_id
  result = connection.login(@username, @password)
  if result[1] == 200
    @session_id = result[0]
  else
    raise ::StandardError
  end
end
get_session_reread(minutes, count) click to toggle source
# File lib/dexby/reader.rb, line 38
def get_session_reread(minutes, count)
  get_session_id
  read_connection(minutes, count)
end
parser() click to toggle source
# File lib/dexby/reader.rb, line 17
def parser
  @parser_class
end
read(minutes=1440, count=1) click to toggle source
# File lib/dexby/reader.rb, line 21
def read(minutes=1440, count=1)
  ensure_session_id
  result = session_connection_read(minutes, count)
  if result[1] != 200
    raise ::StandardError, result[1]
  end
  parser.parse_all(result[0])
end
read_connection(minutes, count) click to toggle source
# File lib/dexby/reader.rb, line 43
def read_connection(minutes, count)
  connection.read(@session_id, minutes, count)
end
session_connection_read(minutes, count) click to toggle source
# File lib/dexby/reader.rb, line 30
def session_connection_read(minutes, count)
  result = read_connection(minutes, count)
  if result[1] == 401 || result[1] == 500 # expired session_id
    result = get_session_reread(minutes, count)
  end
  return result
end