Sha256: 932fe10cea11a9311cfcdbab7e8944db3a69dd31088e256f66cfdc7bcfb3cbf8
Contents?: true
Size: 1.79 KB
Versions: 1
Compression:
Stored size: 1.79 KB
Contents
require 'faraday' require 'time' require 'always_verify_ssl_certificates' module Papertrail class SearchClient def initialize(options) ssl_options = { :verify => OpenSSL::SSL::VERIFY_PEER } # Make Ubuntu OpenSSL work # # From: https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/396818 # "[OpenSSL] does not presume to select a set of CAs by default." if File.file?('/etc/ssl/certs/ca-certificates.crt') ssl_options[:ca_file] = '/etc/ssl/certs/ca-certificates.crt' end @conn = Faraday::Connection.new(:url => 'https://papertrailapp.com', :ssl => ssl_options) do |builder| if options[:username] && options[:password] builder.basic_auth(options[:username], options[:password]) else builder.headers['X-Papertrail-Token'] = options[:token] end builder.adapter Faraday.default_adapter builder.response :yajl end @max_id_seen = {} end # search for all events or a specific query, defaulting to all events since # last result set (call with since=0 for all). def search(q = nil, since = nil) response = @conn.get('/api/v1/events/search.json') do |r| r.params = params_for_query(q, since) end if response.body @max_id_seen[q] = response.body['max_id'] response.body['events'] end end def params_for_query(q = nil, since = nil) params = {} params[:q] = q if q params[:min_id] = @max_id_seen[q] if @max_id_seen[q] params[:min_id] = since if since params end def self.format_events(events, &block) events.each do |event| yield "#{Time.parse(event['received_at']).strftime('%b %e %X')} #{event['hostname']} #{event['program']} #{event['message']}" end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
papertrail-cli-0.7.0 | lib/papertrail/search_client.rb |