Sha256: 524aa71c6127aa9559f4847295655db3d95eb02b9d8df5b50da540ef5f847000

Contents?: true

Size: 720 Bytes

Versions: 2

Compression:

Stored size: 720 Bytes

Contents

# encoding: utf-8

require 'rubygems'
require 'net/http'
require 'json'

require 'twhois/user'
require 'twhois/version'

module Twhois
  
  LOOKUP_HOST = "api.twitter.com"
  LOOKUP_PATH = "/1/users/show.json?screen_name="
  
  class InvalidUsername < StandardError; end
  
  # Lookup a Twitter user by their username.
  def self.lookup(username)
    raise InvalidUsername, "Username is invalid" unless valid_username?(username)
    res = Net::HTTP.start(LOOKUP_HOST) { |http| http.get(LOOKUP_PATH + username) }
    if res.code == '200'
      User.new(JSON.parse(res.body))
    end
  end
  
  def self.valid_username?(username)
    return false if username.match(/^[a-zA-Z0-9_]{1,15}$/).nil?
    return true
  end
  
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
twhois-0.0.4 lib/twhois.rb
twhois-0.0.3 lib/twhois.rb