Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

51 lines (41 sloc) 1.165 kB
require 'twitter/base'
require 'twitter/error/identity_map_key_error'
module Twitter
class Identity < Twitter::Base
def self.fetch(attrs)
return unless identity_map
id = attrs[:id]
if id && object = identity_map.fetch(id)
return object.update(attrs)
end
return yield if block_given?
raise Twitter::Error::IdentityMapKeyError, "key not found"
end
# Stores an object in the identity map.
#
# @param object [Object]
# @return [Twitter::Identity]
def self.store(object)
return object unless identity_map
identity_map.store(object.id, object)
end
# Initializes a new object
#
# @param attrs [Hash]
# @raise [ArgumentError] Error raised when supplied argument is missing an :id key.
# @return [Twitter::Identity]
def initialize(attrs={})
super
raise ArgumentError, "argument must have an :id key" unless id
end
# @param other [Twitter::Identity]
# @return [Boolean]
def ==(other)
super || attr_equal(:id, other) || attrs_equal(other)
end
# @return [Integer]
def id
@attrs[:id]
end
end
end
Jump to Line
Something went wrong with that request. Please try again.