class Qmetrics::Caller

Attributes

api_methods[R]

Public Class Methods

load_api_methods(file) click to toggle source
# File lib/qmetrics/caller.rb, line 27
def self.load_api_methods(file)
  @api_methods ||= load_yml(file)
end
new(queues: , api: ) click to toggle source
# File lib/qmetrics/caller.rb, line 8
def initialize(queues: , api: )
  @queues = queues
  @api = api
  clear_blocks
end

Private Class Methods

generate_api_methods() click to toggle source
# File lib/qmetrics/caller.rb, line 41
def self.generate_api_methods
  api_methods.each do |k, v| 
    define_method(k.to_sym) do
      @blocks = [v]
      execute
    end
  end
end
load_yml(file) click to toggle source
# File lib/qmetrics/caller.rb, line 37
def self.load_yml(file)
  YAML.load_file(File.join(File.dirname(__FILE__),file))
end

Public Instance Methods

api_methods() click to toggle source
# File lib/qmetrics/caller.rb, line 31
def api_methods
  self.class.api_methods
end
get(*args) click to toggle source
# File lib/qmetrics/caller.rb, line 14
def get(*args)
  clear_blocks
  args.each do |k|
    @blocks.push(api_methods[k.to_sym]) if call_exists?(k.to_sym)
  end
  execute
end
to_s() click to toggle source

url encoded '|' to '%7C'

# File lib/qmetrics/caller.rb, line 23
def to_s
  "/jsonStatsApi.do?queues=#{@queues.join('%7C')}"
end

Private Instance Methods

call_exists?(call) click to toggle source
# File lib/qmetrics/caller.rb, line 54
def call_exists?(call)
  api_methods.keys.include? call
end
clear_blocks() click to toggle source
# File lib/qmetrics/caller.rb, line 58
def clear_blocks
  @blocks = []
end
execute() click to toggle source
# File lib/qmetrics/caller.rb, line 50
def execute
  Qmetrics::Response.new(@api.call(to_s),api_methods)
end