module Murmurs
Public Instance Methods
extract_project_info(url)
click to toggle source
# File lib/murmurs.rb, line 32 def extract_project_info(url) if url =~ /\/projects\/([^\/]+)\// "#{$1}@#{URI(url).host}" else url end end
http_post(url, body, options={})
click to toggle source
# File lib/murmurs.rb, line 56 def http_post(url, body, options={}) uri = URI.parse(url) http = Net::HTTP.new(uri.host, uri.port) if uri.scheme == 'https' http.use_ssl = true if options[:skip_ssl_verify] http.verify_mode = OpenSSL::SSL::VERIFY_NONE end end request = Net::HTTP::Post.new(uri.request_uri) request.body = body request['Content-Type'] = 'application/json' request['Content-Length'] = body.bytesize if options[:basic_auth] request.basic_auth(options[:basic_auth][:user], options[:basic_auth][:password]) end if options[:access_key_id] ApiAuth.sign!(request, options[:access_key_id], options[:access_secret_key]) end response = http.request(request) if response.code.to_i > 300 raise UnexpectedResponseError, <<-ERROR \nRequest URL: #{url} Response: #{response.code} #{response.message} Response Headers: #{response.to_hash.inspect}\nResponse Body: #{response.body}" ERROR end end
log(level, m)
click to toggle source
# File lib/murmurs.rb, line 50 def log(level, m) if level == :info puts m end end
murmur(url, msg, options={})
click to toggle source
# File lib/murmurs.rb, line 15 def murmur(url, msg, options={}) if msg.nil? || msg.empty? log(options[:log_level], "Nothing to murmur.") return end log(options[:log_level], "murmur => #{extract_project_info(url)}") if options[:git] Array(git_commits(msg, options[:git_branch])).each do |msg| murmur(url, msg, options.merge(:git => false, :log_level => :error)) end else validate_murmurs_url!(url) http_post(url, "{\"murmur\":{\"body\":#{msg.inspect}}}", options) end end
truncate(m, t=15)
click to toggle source
# File lib/murmurs.rb, line 46 def truncate(m, t=15) m.size > t ? "#{m[0..t]}..." : m end
validate_murmurs_url!(url)
click to toggle source
# File lib/murmurs.rb, line 40 def validate_murmurs_url!(url) if url.to_s !~ /\Ahttps?\:\/\/.+\/murmurs/ raise InvalidMurmursURLError, "Invalid murmurs URL: #{url.inspect}" end end