Sha256: e1f85da9205b89c614e6c89d6b882667f66e6cdc8b49b7a2f4f40578b3a99050
Contents?: true
Size: 1.49 KB
Versions: 1
Compression:
Stored size: 1.49 KB
Contents
class Scamp module Users # <user> # <id type="integer">1</id> # <name>Jason Fried</name> # <email-address>jason@37signals.com</email-address> # <admin type="boolean">true</admin> # <created-at type="datetime">2009-11-20T16:41:39Z</created-at> # <type>Member</type> # <avatar-url>http://asset0.37img.com/global/.../avatar.png</avatar-url> # </user> # Return the user_id if we haven't got the real name and # kick off a user data fetch def username_for(user_id) return user_cache[user_id]["name"] if user_cache[user_id] fetch_data_for(user_id) return user_id.to_s end private def fetch_data_for(user_id) url = "https://37s.campfirenow.com/users/#{user_id}.json" http = EventMachine::HttpRequest.new(url).get(:head => {'authorization' => [api_key, 'X'], "Content-Type" => "application/json"}) puts http.inspect http.callback do STDERR.puts "Got the data for #{user_id}" update_user_cache_with(user_id, Yajl::Parser.parse(http.response)['user']) end http.errback do STDERR.puts "Couldn't fetch user data for #{user_id} with url #{url}" STDERR.puts http.response_header.status STDERR.puts http.response_header.inspect STDERR.puts http.response.inspect end end def update_user_cache_with(user_id, data) STDERR.puts "Updated user cache for #{data['name']}" user_cache[user_id] = data end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
scamp-0.0.1 | lib/scamp/users.rb |