Sha256: 5b7d92b8c0568d9bc9da87de1125c6e05059b9b8a72f9b29b9b45dfd8098d5cd
Contents?: true
Size: 1.15 KB
Versions: 2
Compression:
Stored size: 1.15 KB
Contents
module TaskHelper module API class Call MissingAPIKey = Class.new(StandardError) attr_reader :route, :params, :time protected :route, :params def initialize(route:, params: {}, timeout: 0, time: Time.now) @params = { rest_api_key: API.rest_api_key }.merge(params) if @params[:rest_api_key].nil? raise MissingAPIKey, "Rest API key not provided. " \ "Either pass it as a param or use " \ "'TaskHelper::API.rest_api_key = key' " \ "to set it for all future calls." end @route = "#{BASE_URL}/#{route}" @timeout = timeout @time = time set_end_time end def run @time = Time.now if expired? || !@result set_end_time @result = HTTParty.get(@route, query: @params).parsed_response else @result end end def expired? @end_time < Time.now end def ==(other_call) @route == other_call.route && @params == other_call.params end private def set_end_time @end_time = @time + @timeout end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
task_helper-0.0.3 | lib/task_helper/api/call.rb |
task_helper-0.0.2 | lib/task_helper/api/call.rb |