Sha256: 4ca2c584ad20920b14773bd6811ad075168ede26a000b86165a59d62a77f3879

Contents?: true

Size: 960 Bytes

Versions: 1

Compression:

Stored size: 960 Bytes

Contents

require 'httparty'

module Messenger

  class Web

    def self.valid_url?(url)
      !!URI.parse(url)
    rescue URI::InvalidURIError
      false
    end

    # URL format:
    #     http://example.com
    #     https://user:pass@example.com
    #
    # The body of the message is posted as the body of the request, not the query.
    def self.send(url, body, options={})
      raise URLError, "The URL provided is invalid" unless self.valid_url?(url)
      response = HTTParty.post(url, options.merge(:body => body))
      [success?(response), response]
    end

    def self.obfuscate(url)
      raise URLError, "The URL provided is invalid" unless self.valid_url?(url)
      path = URI.parse(url)
      if path.password
        url.sub(/#{path.password}/, 'xxxx')
      else
        url
      end
    end


  private

    def self.success?(response)
      case response.code
      when 200, 201: true
      else
        false
      end
    end

  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
messenger-0.1.0 lib/messenger/web.rb