class Gemometer::Notifiers::Base
Attributes
gems[R]
key[R]
url[R]
username[R]
Public Class Methods
mandatory_options()
click to toggle source
# File lib/gemometer/notifiers/base.rb, line 24 def self.mandatory_options raise NotImplementedError end
new(opts)
click to toggle source
# File lib/gemometer/notifiers/base.rb, line 11 def initialize(opts) @gems = opts[:gems] @url = opts[:url] @key = opts[:key] @username = opts[:username] end
Public Instance Methods
notify()
click to toggle source
# File lib/gemometer/notifiers/base.rb, line 18 def notify return false if gems.empty? response = make_request %w(204 200).include?(response.code) || raise(Gemometer::NotifyError.new("#{response.code}: #{response.message}")) end
Private Instance Methods
data()
click to toggle source
# File lib/gemometer/notifiers/base.rb, line 65 def data raise NotImplementedError end
http()
click to toggle source
# File lib/gemometer/notifiers/base.rb, line 53 def http @http ||= begin _http = Net::HTTP.new(uri.host, uri.port) _http.use_ssl = (uri.scheme == "https") _http end end
json?()
click to toggle source
# File lib/gemometer/notifiers/base.rb, line 69 def json? true end
make_request()
click to toggle source
# File lib/gemometer/notifiers/base.rb, line 30 def make_request setup_auth setup_data http.request(request) end
request()
click to toggle source
# File lib/gemometer/notifiers/base.rb, line 61 def request @request ||= Net::HTTP::Post.new(uri) end
require_auth?()
click to toggle source
# File lib/gemometer/notifiers/base.rb, line 73 def require_auth? false end
setup_auth()
click to toggle source
# File lib/gemometer/notifiers/base.rb, line 36 def setup_auth request.basic_auth(username, key) if require_auth? end
setup_data()
click to toggle source
# File lib/gemometer/notifiers/base.rb, line 40 def setup_data if json? request.content_type = 'application/json' request.body = JSON.generate(data) else request.set_form_data(data) end end
uri()
click to toggle source
# File lib/gemometer/notifiers/base.rb, line 49 def uri @uri ||= URI(url) end