class ShoutboxClient
Constants
- VALID_STATUS
Public Class Methods
configuration()
click to toggle source
# File lib/shoutbox_client.rb, line 14 def self.configuration @configuration ||= Shoutbox::Configuration.new end
default_headers( request )
click to toggle source
# File lib/shoutbox_client.rb, line 55 def self.default_headers( request ) request['User-Agent'] = 'Ruby shoutbox-client' request['Content-Type'] = 'application/json' request['Accept'] = 'application/json' request['X-Shoutbox-Auth-Token'] = configuration.auth_token end
delete_status( options )
click to toggle source
# File lib/shoutbox_client.rb, line 45 def self.delete_status( options ) response = Net::HTTP.Proxy(configuration.proxy_host, configuration.proxy_port).start(self.host, self.port) do |http| req = Net::HTTP::Delete.new( request_url(options) ) req.body = { :name => options[:name], :group => (options[:group] || configuration.default_group) }.to_json default_headers(req) http.request(req) end response.body == "OK" end
host()
click to toggle source
# File lib/shoutbox_client.rb, line 66 def self.host URI.parse(configuration.host).host end
port()
click to toggle source
# File lib/shoutbox_client.rb, line 70 def self.port URI.parse(configuration.host).port end
request_url( options )
click to toggle source
# File lib/shoutbox_client.rb, line 62 def self.request_url( options ) '/status' end
shout( options )
click to toggle source
# File lib/shoutbox_client.rb, line 18 def self.shout( options ) if valid_status?( options[:status] ) begin VALID_STATUS[options[:status].to_s] == :update ? update_status( options ) : delete_status( options ) rescue Errno::ECONNREFUSED false end else false end end
update_status( options )
click to toggle source
# File lib/shoutbox_client.rb, line 30 def self.update_status( options ) response = Net::HTTP.Proxy(configuration.proxy_host, configuration.proxy_port).start(self.host, self.port) do |http| req = Net::HTTP::Put.new( request_url(options) ) default_headers(req) body_data = { :name => options[:name], :group => (options[:group] || configuration.default_group), :status => options[:status].to_s } body_data[:message] = options[:message] if options[:message] body_data[:expires_in] = options[:expires_in] if options[:expires_in] body_data[:display_name] = options[:display_name] if options[:display_name] raise ArgumentError if (options[:status] == :red or options[:status] == :yellow) and body_data[:message].to_s.empty? req.body = body_data.to_json http.request(req) end response.body == "OK" end
valid_status?( status )
click to toggle source
# File lib/shoutbox_client.rb, line 74 def self.valid_status?( status ) VALID_STATUS.keys.include?( status.to_s ) end