Sha256: 6f7591ae4a28a20c38f4cd804536d7a68f85bdcc91b1453d6d0d7f687faeecb4
Contents?: true
Size: 1.84 KB
Versions: 2
Compression:
Stored size: 1.84 KB
Contents
require 'net/http' require 'uri' module Rakismet module Version Major = '0' Minor = '3' Tiny = '5' end def self.version [Version::Major, Version::Minor, Version::Tiny].join('.') end class Base cattr_accessor :valid_key, :rakismet_binding class << self def validate_key validate_constants akismet = URI.parse(verify_url) _, valid = Net::HTTP.start(akismet.host) do |http| data = "key=#{Rakismet::KEY}&blog=#{Rakismet::URL}" http.post(akismet.path, data, Rakismet::HEADERS) end self.valid_key = (valid == 'valid') end def valid_key? @@valid_key == true end def akismet_call(function, args={}) validate_constants args.merge!(:blog => Rakismet::URL) akismet = URI.parse(call_url(function)) _, response = Net::HTTP.start(akismet.host) do |http| data = args.map { |k,v| "#{k}=#{CGI.escape(v.to_s)}" }.join('&') http.post(akismet.path, data, Rakismet::HEADERS) end response end protected def verify_url "http://#{Rakismet::HOST}/1.1/verify-key" end def call_url(function) "http://#{Rakismet::KEY}.#{Rakismet::HOST}/1.1/#{function}" end def validate_constants raise Undefined, "Rakismet::KEY is not defined" if Rakismet::KEY.blank? raise Undefined, "Rakismet::URL is not defined" if Rakismet::URL.blank? raise Undefined, "Rakismet::HOST is not defined" if Rakismet::HOST.blank? end end end Undefined = Class.new(NameError) NoBinding = Class.new(NameError) HEADERS = { 'User-Agent' => "Rails/#{Rails::VERSION::STRING} | Rakismet/#{Rakismet.version}", 'Content-Type' => 'application/x-www-form-urlencoded' } end
Version data entries
2 entries across 2 versions & 2 rubygems
Version | Path |
---|---|
inspiredigital-rakismet-0.3.5 | lib/rakismet.rb |
rakismet-0.3.5 | lib/rakismet.rb |