- Add
Twitter::NullObject#respond_to?
- Add
Twitter::Media::Video
,Twitter::Media::VideoInfo
, andTwitter::Media::Variant
- Add
Twitter::Media::AnimatedGif
media entity (@nidev)
- Deprecate
Twitter::REST::Client#get
andTwitter::REST::Client#post
- Rename
Twitter::REST::Client::URL_PREFIX
toTwitter::REST::Client::BASE_URL
- Extract
Twitter::Headers
class - Move
Twitter::Request
toTwitter::REST::Request
- Add
Twitter::REST::Request#rate_limit
- Rename
Twitter::REST::Utils
methods - Update default
User-Agent
to comply with Section 5.5.3 of RFC 7231
- Rescue
Twitter::Error::NotFound
for safe#favorite
and#retweet
- Make
Twitter::User#profile_background_image_uri
methods return a URI - Un-deprecate
Twitter::Base#to_hash
- Add
Twitter::Tweet#possibly_sensitive?
- Namespace registered Faraday middleware (@godfoca)
- Fix test failures on Ruby 2.2.0-preview1
- Make Twitter::NullObject Comparable
- Return a Twitter::NullObject for empty attributes
- Add
iso_language_code
attribute toTwitter::Metadata
- Use expanded URIs when available
- Deprecate
Twitter::REST::Client#middleware=
and#connection_options
- Ensure predicate methods return
false
forTwitter::NullObject
- Make
Twitter::Place#id
attribute accessible - Enable injection of custom TCP/SSL socket classes (@neektza)
- Deprecate predicate methods without question marks
- Deprecate
Twitter::Base#[]
- Remove statement that TweetStream is not 2.0.0-compatible (@melaniegilman)
- Dont allow unacceptable IO objects in
Twitter::REST::Client#update_with_media
(@tim_linquist) - Add support for new REST API endpoint for bulk lookup of Tweets by ID
- Make the streaming API raise exceptions for status codes (@eroberts)
- Call GET users/show if screen name has already been fetched
- Add the ability to set user_agent and proxy
- Use (immutable) user ID instead of (mutable) screen name
- Implement mute functionality
- Alias
Twitter::Tweet#reply?
toTwitter::Tweet#in_reply_to_user_id?
- Add
Twitter::Error::SSL_REQUIRED
error code Twitter::Tweet#retweeted_status
always returns the original tweet, not the retweet (@IanChoiJugnoo)
- Remove
Twitter::Base.from_response
method - Remove
Twitter::REST::API
namespace - Remove
descendants_tracker
- Remove unused
HTTP_STATUS_CODE
constants - Remove
Twitter::Error#cause
- Replace custom
Twitter::NullObject
withNaught
- Use
URI
andCGI
to convert query string into a hash - Increase default timeout values
- Add
Twitter::Error::RequestTimeout
- Remove unused methods
#put
and#delete
inTwitter::REST::Client
- Deprecate
retweeters_count
in favor ofretweet_count
- Deprecate
favorites_count
/favoriters_count
in favor offavorite_count
- Deprecate
to_hsh
in favor ofto_hash
orattrs
- Deprecate
oauth_token
andoauth_token_secret
accessors
- Fix bug where
Twitter::Error::AlreadyFavorited
would never be raised (@polestarw) - Fix bug where
Twitter::Error::AlreadyPosted
would never be raised - Restore
Twitter::Entities#entities?
as a public method
- Add
Twitter::Utils
module (@charliesome) - Remove
Enumerable
monkey patch (@charliesome) - Don't spawning a new thread if there's only one element
- Introduce meaningful constant names (@futuresanta)
- Automatically flatten
Twitter::Arguments
- Add
UNABLE_TO_VERIFY_CREDENTIALS
error code - Don't suppress
Twitter::Error::Forbidden
in #follow and #follow! - Update memoizable dependency to ~> 0.3.1
- Replace
URI
withadressable
- Make
Twitter::Streaming::FriendList
an array - Add
Twitter::Streaming::DeletedTweet
- Add
Twitter::Streaming::StallWarning
- Add error code for "User is over daily status update limit"
Twitter::Streaming::Client#site
can take aString
orTwitter::User
- Update
http_parser.rb
dependency to~> 0.6.0
- Use
Addressable::URI
everywhere (@matthewrudy) - Allow use of
Twitter::Place
instead ofplace_id
- Allow use of
Twitter::Tweet
instead ofin_reply_to_status_id
- Remove
Twitter::API::Undocumented#status_activity
and#statuses_activity
- Remove
Twitter::Tweet#favoriters
,#repliers
,#repliers_count
, and#retweeters
- Remove identity map
- Remove
Twitter::Cursor#all
- Remove
Twitter::Cursor#collection
- Remove
Twitter#from_user
- Remove
ClientError
,ServerError
, andParserError
- Remove global configuration
- Remove ability to configure client with environment variables
- Remove Brittish English aliases
- Replace
multi_json
withjson
- Rename
oauth_token
toaccess_token
- Move
Twitter::Arguments
out ofREST::API
namespace - Move
Twitter::Client
intoREST
namespace - Add
Twitter::Streaming::Client
- Add
Twitter::Error::AlreadyPosted
- Add
Twitter::REST::Client#reverse_token
- Add
#url
methods toTwitter::List
,Twitter::Tweet
, andTwitter::User
- Add
Twitter::Place#contained_within
and#contained_within?
- Add
Twitter::GeoResults
- Add
NullObject
- Add predicate methods for any possible
NullObject
- Always return
URI
instead ofString
- Allow
URI
as argument - Allow
String
in addition toURI
objects - Collection caching
- Implement
Twitter::Cursor#each
without making an extra HTTP request - Make
Twitter::SearchResults
enumerable - Make
Twitter::Base
objects immutable - Missing key now raises
KeyError
, notArgumentError
- Use
equalizer
instead of manually overwriting #== - Give methods more natural names
- Fix
Twitter::SearchResults#rpp
return value
- Ignore case of profile image extension
- Allow use of Twitter::Token in place of bearer token string
- Add Twitter::API::Undocumented#tweet_count
- Add missing dependencies (@tmatilai)
- Add
Twitter::SearchResults#refresh_url
(@mustafaturan) - Fix issue with wrong signature being generated when multipart data is posted (@mustafaturan)
- Restore compatibility with Ruby 1.8.7
- Remove undocumented methods, retired in the APIpocalypse
- Add support for application-only authentication (@paracycle)
- Add support for
Twitter::Entity::Symbol
entities (@anno) - Add
Twitter::API::OAuth#invalidate_token
(@terenceponce) - Add
Twitter::API::Lists#lists_owned
method - Add
Twitter::API::Tweets#retweeters_ids
method - Add
Twitter::SearchResults#next_results
(@KentonWhite) - Make consumer_key readable
- Loosen required_rubygems_version for compatibility with Ubuntu 10.04
- Remove default SSL configuration options and override
- Fix
SystemStackError: stack level too deep
when converting to JSON - Add
Twitter::Tweet#favorite_count
- Add
Twitter::SearchResults#next_results?
(@KentonWhite)
- Make
Twitter::Base#attrs
call methods if they exist - Allow
Twitter::API::Tweets#oembed
andTwitter::API::Tweets#oembeds
to take a URL (@bshelton229) - Add
Twitter::Tweet#filter_level
andTwitter::Tweet#lang
attribute readers - Add "Quick Start Guide" to the
README
(@coreyhaines)
- Add
Twitter::API::Arguments
class; removeextract_options!
helper method - Ensure credentials set via
Twitter.configure
are of a valid type - Delegate
Twitter::Tweet#profile_image_url
andTwitter::Tweet#profile_image_url_https
toTwitter::Tweet#user
- Fix timeout bug; lock
faraday
dependency to version < 0.10
- Fix to
Twitter::API::FriendsAndFollowers#friends
andTwitter::API::FriendsAndFollowers#followers
(@nbraem) - Alias
Twitter::DirectMessage#text
toTwitter::DirectMessage#full_text
- Remove
Kernel#calling_method
- Add
Twitter::API::FriendsAndFollowers#friends
andTwitter::API::FriendsAndFollowers#followers
(@tibbon) - Add
method
parameter toTwitter::API::Users#users
(@thomasjklemm) - Correct endpoint of
Twitter::Client#report_spam
method (@uasi) - Refactor
Twitter::Request
class - Remove
Array
core extensions - Remove
String
core extensions - Remove
Hash
core extensions - Do not
require 'identity_map'
by default - Automatically define inquirer methods
- Use new resource for
Twitter::API#retweets_of_me
Twitter::API#favorite
no longer raisesTwitter::Error::Forbidden
Twitter::API#retweet
no longer raisesTwitter::Error::Forbidden
- Add
Twitter::Error::AlreadyFavorited
- Add
Twitter::Error::AlreadyRetweeted
- Fix bug in
Twitter::Tweet#full_text
- Add
Twitter::Tweet#favouriters
,Twitter::User#favoriters_count
, andTwitter::User#favouriters_count
aliases
- Update all endpoints to Twitter API v1.1
- Replace
per_page
parameter withcount
- Use HTTP POST for
users/lookup
- Add error classes for new Twitter API v1.1 response codes
- Cache
screen name
in an instance variable to avoid API calls - Update
Twitter::RateLimit
class for API v1.1 - Remove search endpoint
- Remove media endpoint
- Disable identity map by default
- Remove deprecated
RateLimit.instance
method - Removed deprecated
Twitter::Tweet#oembed
method - Rename resources for v1.1
- Remove notification methods; use
Twitter::API#friendship_update
instead - Remove
Twitter::API#end_session
- Add
Twitter::Tweet#retweet?
method andTwitter::Tweet#retweet
alias - Major changes for Twitter API v1.1
- Remove
Twitter::API#no_retweet_ids
- Remove
Twitter::API#retweeted_to_user
- Remove
Twitter::API#trends_daily
- Remove
Twitter::API#trends_weekly
- Remove
Twitter::API#rate_limited?
- Remove
Twitter::Client#rate_limit
- Remove
Twitter::API#rate_limit_status
- Remove
Twitter::API#accept
- Remove
Twitter::API#deny
- Remove
Twitter::API#related_results
- Remove
Twitter::API#recommendations
- Remove
Twitter::API#network_timeline
- Do not attempt to parse redirects (@twoism)
- Add profile banner methods to
Twitter::User
class - Add
Twitter::Error::UnprocessableEntity
- Add
Twitter::API#update_profile_banner
andTwitter::API#remove_profile_banner
- Add
Twitter::Tweet#reply?
- Remove support for
IO
hash syntax - Allow
Tempfile
to be passed toTwitter::API#update_with_media
- Set
Content-Type
header tomultipart/form-data
when uploading a file - Do not attempt to parse bodies that only contain spaces
- Add
Twitter::Tweet#entities?
method - Add
Twitter::User#status?
method
- Rename Twitter::Status to Twitter::Tweet
- Make Twitter::Cursor an Enumerable
- Always define respond_to_missing? when overriding method_missing
- Add
Twitter::API#related_results
- Alias
Twitter::API#status_destroy
toTwitter::API#tweet_destroy
- Alias
Twitter::API#status_activity
toTwitter::API#tweet_activity
- Move
IdentityMapKeyError
underTwitter::Error
namespace
- Prevent MultiJson::DecodeError error from bubbling up
- Add British aliases for "favorite" methods on
Twitter::Status
- Correctly handle
nil
response body
- Refactor
Twitter::RateLimit
class to be non-global - Combine
Twitter::RateLimit#retry_after
andTwitter::RateLimit#reset_in
into a single method - Create proper interface for
Twitter::IdentityMap
- Move
Twitter::Point
andTwitter::Polygon
classes underTwitter::Geo
namespace - Move
Twitter::Photo
class underTwitter::Media
namespace
- Make identity map configurable
- Decouple identity map from object instantiation
- Make
IdentityMapKeyError
inherit fromIndexError
- Break up
Twitter::User
class intoTwitter::BasicUser
,Twitter::SourceUser
,Twitter::TargetUser
, andTwitter::User
- Add size option to
Twitter::User#profile_image_url
andTwitter::User#profile_image_url_https
- Make object equality more strict
- Pass options from Twitter::Client.user to Twitter::Client.verify_credentials
- All returned hashes now use
Symbol
keys instead ofString
keys Twitter::Client
methods now allow multiple arguments and return anArray
Twitter::Client#users
can now return more than 100Twitter::User
objectsTwitter::Client#search
now returns aTwitter::SearchResult
object instead of an array ofTwitter::Status
objects (@wjlroe)Twitter::Client#follow
now checks to make sure a user is not already being followed before following- Add
Twitter::Client#follow!
to follow a user without checking whether they are already being followed - Add an identity map
- Attempt to pull credentials from the environment when not specified
- Add default timeout options
- Middleware is now specified as a
Faraday::Builder
- Faraday errors are now captured and re-raised as a
Twitter::Error::ClientError
- Replace
Twitter::Error.ratelimit
methods with the singletonTwitter::RateLimit
class - Remove explicit proxy and user agent configuration
- Remove untested gateway middleware
- Remove deprecated
Twitter::Status#expanded_urls
method
Twitter::User
objects can be used interchangeably with user IDs or screen namesTwitter::List
objects can be used interchangeably with list IDs or slugs
- Merge
Twitter::Client
modules into a monolithicTwitter::Client
class - Add
Twitter::Status#full_text
- Add
profile_image_url_https
accessor toTwitter::Status
(@terryjray) - Make
Status#screen_name
returnfrom_user
attribute and vice versa - Add
created_at
attribute toTwitter::List
- Add ability to pass a user to
Twitter::Client#recommendations
- Alias
trends
tolocal_trends
(@Tricon)
- Don't create a new Faraday instance on every request
- Add
Twitter::Mention#source
- Add
Twitter::ListMemeberAdded
(@aamerabbas) - Add
entities
attribute toTwitter::Status
(@tomykaira) - Add
Twitter::Client#list_remove_members
- Add
in_reply_to_status_id
attribute toTwitter::Status
- Remove
twitter-text
dependency - Add
Twitter::Status#retweeted_status
- Add optional parameter hash to
Twitter::Client#oembed
- Fix
Twitter::Status
object returned byTwitter::Client#retweet
- Add
from_user_name
andto_user_name
attributes toTwitter::Status
- Replace
Hashie::Mash
with custom classes and Ruby primitaives - Any instance method that returns a boolean can now be called with a trailing question mark
- The
created_at
instance method now returns aTime
instead of aString
- Replace the
Twitter::Search
class withTwitter::Client#search
- Add object equivalence
- [
Twitter::Client#totals
has been removed. UseTwitter::Client#user
instead]((https://github.com/sferik/twitter/commit/1ad0928a6232324072e8d960242a99949016cf50) Twitter.faraday_options
has been renamed toTwitter.connection_options
- All error classes have been moved inside the Twitter::Error namespace
- Remove support for XML response format
- Remove all deprecated methods
- Update multi_xml dependency to 0.4.0 (@masterkain)
- Add support for passing options directly to faraday (@icambron)
- Deprecate Trends#trends_current and remove the XML response format
- Refactor connection and requests to accept options (@laserlemon)
- Include X-Phx header for internal APIs only (@laserlemon)
- Add
Account#totals
andAccount#settings
(@gazoombo) - Add
Activity#about_me
andActivity#by_friends
- Add
Help#configuration
andHelp#language
(@anno) - Add
Search#images_facets
andSearch#video_facets
- Add
Search#search
- Add
Statuses#media_timeline
- Add
Tweets#update_with_media
(@JulienNakache) - Add
Urls#resolve
- Add
User#contributees
(@GhettoCode) - Add
User#contributor
- Add
User#recommendations
- Add
User#suggest_users
- Move API version out of endpoint and into path
- Add a custom OAuth implementation (@NathanielBarnes)
- Unify naming of boolean methods
- Add convenience method to determine whether a user exists
- Fully remove
Rash
- Update faraday dependency to version 0.6
- Include response headers when raising an error
- Fix typo in README for accessing friends and followers (@surfacedamage)
- Respect global load path
- Use map and
Hash[]
instead ofinject({})
(@wtnelson) - Check headers for
Retry-After
in absence ofretry-after
(@wtnelson) - Fix name of
#list_add_members
resource - Don't strip @ signs from screen names
- Make
#places_similar
method return a token (@nicolassanta)
- Overload all methods that require a
screen_name
parameter (@gabriel_somoza) - Rename
user_screen_name
toscreen_name
(@jalada) - Handle error returns from lookup (@leshill)
- Use 'tude' parameter for attitudes (@ALindeman)
- Add Enumerable mixin to Twitter::Search (@ALindeman)
- Fix conditional inclusion of jruby-openssl in Ruby 1.9
- Allow users to pass in screen names with leading '@'
- UTF-8 encode
Utils
module - Copy-edit documentation (@dianakimball)
- Add methods to
Search
class - Changes to
Search
class - Add proxy support
- Make
#suggestions
method consistent with Twitter API documentation - Rename default user agent
- Make all global settings overrideable at the class level
- Expose a property in EnhanceYourCalm for HTTP header "Retry-After" (@duylam)
- Merge
Base
,Geo
,Trends
, andUnauthenticated
intoClient
class (@laserlemon) - Move examples into README
- Rename
Twitter.scheme
toTwitter.protocol
- Map access key/secret names to SimpleOAuth correctly
- Improved error handling by separating HTTP 4xx errors from HTTP 5xx errors, so HTTP 4xx errors can be parsed first
- Add tests for XML response format
- Switch from httparty to faraday HTTP client library
- Switch from oauth to simple_oauth for authentication (@laserlemon)
- Handle errors in faraday middleware
- Add #NewTwitter methods and tests
- Fix tests that assume position in a
Hash
(@duncan) - Enable SSL by default (add option to disable SSL)
- Use HTTP DELETE method instead of HTTP POST for all destructive methods
- Change the method signature for
Base#users
andBase#friendships
to accept anArray
and an optionsHash
- Add
Twitter.profile_image
method (@ratherchad) - Improve website style (@rodrigo3n)
- Make request format configurable
- Rename parameters to be less confusing (@rorra)
- Update
user
method to match the Twitter API docs (@nerdEd) - Add aliases for search methods
- Add
Twitter.user_agent
andTwitter.user_agent=
methods - Add
Search#locale
method
- Add a
Search#filter
method (@pjdavis) - Add test to ensure
Search#fetch
doesn't overwrite@query(:q)
(@pjdavis) - Add
Search#retweeted
andSearch#not_retweeted
methods (@levycarneiro) - Switch from YAJL to MultiJson (@MichaelRykov)
- Specify Twitter API version for all REST API calls
- Parse all responses with YAJL JSON parser
- Ensure that users are tested (@duncan)
- Remove redgreen due to Ruby 1.9 incompatibility (@duncan)
- Make all tests pass in Ruby 1.9 (@duncan)
- Bump dependency versions
- Remove Basic Auth (@rodrigo3n)
- Flatten
ids_or_usernames
before iterating (@jacqui) - Add an example to list followers and friends sorted by followers count (@danicuki)
- Add optional query parameter to
list_subscribers
- Change trends endpoint to api.twitter.com/1/trends
- Use Bundler
- Saved searches (@zmoazeni)
- Handle null result sets in search more gracefully (@sferik)
- Add
report_spam
(@chrisrbailey) - Tests for
friendship_exists?
method (@sferik) - Replace JSON parser with YAJL JSON parser (@sferik)
- Cursors for lists (@zmoazeni)
- Make error handling consistent between authenticated and unauthenticated method calls (@sferik)
- Test error handling for unauthenticated methods (@sferik)
- Add cursor to
lists
method (@sferik) - Add Twitter API version to trends method calls (@sferik)
- Add Twitter API version to unauthenticated method calls (@sferik)
- Remove rubygems dependencies (@sferik)
- Add
Base#retweeters_of
method - Add
result_type
to search for popular/recent results - Add
users
method for bulk user lookup (@sferik) - Add Twitter API version to authenticated method calls (@sferik)
- Search exclusions (@abozanich)
- Add
query
parameter tomembership
method (@mingyeow) - Add
Search#phrase
method (@zagari) - Add
Trends#available
andTrends#location
methods
- Fix bug in
list_remove_member
when using OAuth - Bump oauth dependency to version 0.3.6
- Add
Base#update_profile_background
method (@kev_in) - Add
Base#blocked_ids
method (@rizwanreza) - Add
Search#since_date
andSearch#until_date
methods (@jschairb)
- Add
query
parameter touser
method - Add
ssl
optional parameter to use HTTPS instead of HTTP forHTTPAuth
- Add
Twitter.status
,Twitter.friend_ids
, andTwitter.follower_ids
methods
- Add mash as an install dependency
- Add options to
search
- Add missing variables in exception raising
- Add development dependencies to
Rakefile
to make that more explicit (@technomancy) - Add workaround for
Mash#hash
that allows using return objects in sets and such (@technomancy)
- Add data error hash returned from Twitter to a few of the exceptions to help with debugging
- Fix bug with
friendship_exists?
throwing a stringify keys error because it was returningtrue
orfalse
instead of aHash
orArray
- Proxy no longer supported (someone please add it back in, I never use proxies)
- Identica support killed with an axe (nothing against them but I don't use it)
- CLI shot to death (will be reborn at a later date using OAuth and its own gem)
- Add better exception handling (@billymeltdown)
- Add
Search#page
method (@ivey) - Add an option to display tweets on CLI in reverse chronological order (@coderdaddy)
- Add
in_reply_to_status_id
option for replying to statuses (@anthonycrumley) - [Fix a bug where the @config was improperly set (@pope)
- Fix
verify_credentials
to include a format (@dlsspy)
- Add the CLI gems as dependencies until it is separated from the API wrapper
- Add cleaner CLI errors for no active account or no accounts at all
- Add
username
andpassword
parameters toadd
method
- Add
open
method to CLI - Add
-f
option to timeline and replies which ignores thesince_id
and shows all results - Add
clear_config
to remove all cached values - Improved the output of
timelines
andreplies
- Support multiple accounts in CLI and switching between them
- Make
d
method accept stdin - Add
Status#source
,Status#truncated
,Status#in_reply_to_status_id
,Status#in_reply_to_user_id
,Status#favorited
, andUser#protected
methods - Add
Base#friendship_exists?
,Base#update_location
,Base#update_delivery_device
,Base#favorites
,Base#create_favorite
,Base#destroy_favorite
,Base#block
, andBase#unblock
methods - Rewrite methods that had
since
orlite
parameters to use aHash
- Add
Base#rate_limit_status
method (@danielmorrison) - Add
source
parameter toBase#post
- Add
twittergem
as the source when posting from the command-line interface - Raise
Twitter::RateExceeded
when you hit your limit (@jimoleary) - Raise
Twitter::Unavailable
when Twitter returns 503 - Make
Twitter::CantConnect
messages more descriptive - Make quoting your message optional when posting from the command-line interface (@bcaccinolo)
- Alias
post
top
on the command-line interface (@bcaccinolo) - Unescape HTML and add color to the command-line interface (@mileszs)
- Add gemspec (@technoweenie, [@mileszs(https://twitter.com/mileszs))
- Fix stack trace error on first command-line operation (@mrose2n)
- Command-line interface can use
stdin
for posting (@reclusive_geek) $ twitter post 'test without stdin' # => twitters: test without stdin $ echo 'test with stdin' | twitter post 'and an argv(1)' # => twitters: test with stdin and an argv(1) $ echo 'test with stdin without any argv(1)' | twitter post # => twitters: test with stdin without any argv(1)
- Add
lite
parameter tofriends
andfollowers
methods, which doesn't include the user's current status (@danielmorrison) - Update
since
parameter to use HTTP header (@danielmorrison) - Add
since
parameter ontimeline
andreplies
methods (@danielmorrison)
- Add
d
to the command-line interface (@humbucker) - Add progress dots while waiting for confirmation when Twitter is being slow (@HendyIrawan)
- Alias
direct_messages
toreceived_messages
- Add
Base#sent_messages
,Base#create_friendship
,Base#destroy_friendship
,Base#featured
,Base#replies
,Base#destroy
, andBase#status
methods - Add Active Support dependency
- Add
Base#d
method (@jnewland) - Fix
since
parameter inBase#direct_messages
method (@jnewland)
- Add
Base#d
method - Add
Base#direct_messages
method - Add
Base#featured
andBase#friends_for
methods - Add tests
- Remove
relative_created_at
- Add command-line options for
friend
andfollower
- Improved docs