-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replace buftok due to incorrect delimiter handling #484
Conversation
Changes Unknown when pulling 88940b8 on eagletmt:replace-buftok into * on sferik:master*. |
Changes Unknown when pulling a69126e on eagletmt:replace-buftok into * on sferik:master*. |
Thanks for the patch. Is this really not possible with /cc @halorgium |
buftok is totally broken if delimiter.size > 1. The reason I rewrote is:
Rewriting is much easier than modifying for me. I don't know how many projects use buftok actually, but I suspect that many projects implement their own tokenizer because it is too simple. |
@eagletmt If I’ve created a I’m currently trying to find the specs for |
Okay, I try to make a pull request to sferik/buftok. |
Happy to give you push access, but I think @tarcieri may be the only one that still has access to this. I think I'm added as an author but not a gem pusher. Wow what an old gem. |
Changelog (from CHANGELOG.md) 5.5.1 ----- * [Fix bug where `Twitter::Error::AlreadyFavorited` would never be raised](sferik/twitter-ruby#512) ([@Polestarw](https://twitter.com/polestarw)) * [Fix bug where `Twitter::Error::AlreadyPosted` would never be raised](sferik/twitter-ruby@e6b37b9) * [Restore `Twitter::Entities#entities?` as a public method](sferik/twitter-ruby@234a9e3) 5.5.0 ----- * [Add entities to `Twitter::DirectMessage`](sferik/twitter-ruby@d911deb) * [Add conversion methods to `Twitter::NullObject`](sferik/twitter-ruby@4900fee) 5.4.1 ----- * [Default to maximum number of tweets per request](sferik/twitter-ruby@1e41b5d) 5.4.0 ----- * [Fix enumerable search interface](sferik/twitter-ruby@e14cc33) 5.3.1 ----- * [Add `Twitter::Utils` module](sferik/twitter-ruby@a1f47fb) ([@charliesome](https://twitter.com/charliesome)) * [Remove `Enumerable` monkey patch](sferik/twitter-ruby@818b28d) ([@charliesome](https://twitter.com/charliesome)) * [Don't spawning a new thread if there's only one element](sferik/twitter-ruby@c01ea83) * [Introduce meaningful constant names](sferik/twitter-ruby@215c808) ([@futuresanta](https://twitter.com/futuresanta)) * [Automatically flatten `Twitter::Arguments`](sferik/twitter-ruby@a556028) 5.3.0 ----- * [Add `UNABLE_TO_VERIFY_CREDENTIALS` error code](sferik/twitter-ruby@6a47e71) * [Don't suppress `Twitter::Error::Forbidden` in #follow and #follow!](sferik/twitter-ruby@b949c04) * [Update memoizable dependency to ~> 0.3.1](sferik/twitter-ruby#501) 5.2.0 ----- * [Replace `URI` with `adressable`](sferik/twitter-ruby@7ea2f53) * [Make `Twitter::Streaming::FriendList` an array](sferik/twitter-ruby@1a38e5e) * [Add `Twitter::Streaming::DeletedTweet`](sferik/twitter-ruby@084025b) * [Add `Twitter::Streaming::StallWarning`](sferik/twitter-ruby@b07ac50) * [Add error code for "User is over daily status update limit"](sferik/twitter-ruby@76c088d) * [`Twitter::Streaming::Client#site` can take a `String` or `Twitter::User`](sferik/twitter-ruby@e3ad4f2) * [Update `http_parser.rb` dependency to `~> 0.6.0`](sferik/twitter-ruby@6d2f81b) 5.1.1 ----- * [Custom equalizer for `Twitter::Place`](sferik/twitter-ruby@79c76a9) 5.1.0 ----- * [Use `Addressable::URI` everywhere](sferik/twitter-ruby@97d7c68) ([@matthewrudy](https://twitter.com/matthewrudy)) * [Allow use of `Twitter::Place` instead of `place_id`](sferik/twitter-ruby@c2b31dd) * [Allow use of `Twitter::Tweet` instead of `in_reply_to_status_id`](sferik/twitter-ruby@6b7d6c2) 5.0.1 ----- * [Fix `buftok` delimiter handling](sferik/twitter-ruby#484) * [Started handling streaming deletes](sferik/twitter-ruby@8860b97) 5.0.0 ----- * [Remove `Twitter::API::Undocumented#status_activity` and `#statuses_activity`](sferik/twitter-ruby@7f97081) * [Remove `Twitter::Tweet#favoriters`, `#repliers`, `#repliers_count`, and `#retweeters`](sferik/twitter-ruby@77cc963) * [Remove identity map](sferik/twitter-ruby@ec7c2df) * [Remove `Twitter::Cursor#all`](sferik/twitter-ruby@72be414) * [Remove `Twitter::Cursor#collection`](sferik/twitter-ruby@9ae4621) * [Remove `Twitter#from_user`](sferik/twitter-ruby@d2ae9f1) * [Remove `ClientError`, `ServerError`, and `ParserError`](sferik/twitter-ruby@7284394) * [Remove global configuration](sferik/twitter-ruby@239c5a8) * [Remove ability to configure client with environment variables](sferik/twitter-ruby@17e9585) * [Remove Brittish English aliases](sferik/twitter-ruby@572813b) * [Replace `multi_json` with `json`](sferik/twitter-ruby@e5fc292) * [Rename `oauth_token` to `access_token`](sferik/twitter-ruby@d360f80) * [Move `Twitter::Arguments` out of `REST::API` namespace](sferik/twitter-ruby@8faa153) * [Move `Twitter::Client` into `REST` namespace](sferik/twitter-ruby@5b8c3fd) * [Add `Twitter::Streaming::Client`](sferik/twitter-ruby@23afe90) * [Add `Twitter::Error::AlreadyPosted`](sferik/twitter-ruby@e11d2a2) * [Add `Twitter::REST::Client#reverse_token`](sferik/twitter-ruby@39139c4) * [Add `#url` methods to `Twitter::List`, `Twitter::Tweet`, and `Twitter::User`](sferik/twitter-ruby@a89ec0f) * [Add `Twitter::Place#contained_within` and `#contained_within?`](sferik/twitter-ruby@23cc247) * [Add `Twitter::GeoResults`](sferik/twitter-ruby@be1a0a1) * [Add `NullObject`](sferik/twitter-ruby@17880f4) * [Add predicate methods for any possible `NullObject`](sferik/twitter-ruby@eac5522) * [Always return `URI` instead of `String`](sferik/twitter-ruby@341f68d) * [Allow `URI` as argument](sferik/twitter-ruby@c207567) * [Allow `String` in addition to `URI` objects](sferik/twitter-ruby@89a46fb) * [Collection caching](sferik/twitter-ruby@d484d7d) * [Implement `Twitter::Cursor#each` without making an extra HTTP request](sferik/twitter-ruby@8eeff57) * [Make `Twitter::SearchResults` enumerable](sferik/twitter-ruby@d5ce853) * [Make `Twitter::Base` objects immutable](sferik/twitter-ruby@69b1ef7) * [Missing key now raises `KeyError`, not `ArgumentError`](sferik/twitter-ruby@f56698c) * [Use `equalizer` instead of manually overwriting #==](sferik/twitter-ruby@a7ddf71) * [Give methods more natural names](sferik/twitter-ruby@e593194) * [Fix `Twitter::SearchResults#rpp` return value](sferik/twitter-ruby@28d7320) 4.8.1 ----- * [Ignore case of profile image extension](sferik/twitter-ruby@7376061) * [Allow use of Twitter::Token in place of bearer token string](sferik/twitter-ruby@13596bc) * [Add Twitter::API::Undocumented#tweet_count](sferik/twitter-ruby@795458a) * [Add missing dependencies](sferik/twitter-ruby@e07e034) ([@tmatilai](https://twitter.com/tmatilai)) 4.8.0 ----- * [Add `Twitter::SearchResults#refresh_url`](sferik/twitter-ruby@6bf08c0) ([@mustafaturan](https://twitter.com/mustafaturan)) * [Fix issue with wrong signature being generated when multipart data is posted](sferik/twitter-ruby@65ab90a) ([@mustafaturan](https://twitter.com/mustafaturan)) * [Restore compatibility with Ruby 1.8.7](sferik/twitter-ruby@fb63970) * [Remove undocumented methods, retired in the APIpocalypse](sferik/twitter-ruby@cf6a91f) 4.7.0 ----- * [Add support for application-only authentication](sferik/twitter-ruby#387) ([@paracycle](https://twitter.com/paracycle)) * [Add support for `Twitter::Entity::Symbol` entities](sferik/twitter-ruby@a14a0cd) ([@anno](https://twitter.com/anno)) * [Add `Twitter::API::OAuth#invalidate_token`](sferik/twitter-ruby#372) ([@terenceponce](https://twitter.com/terenceponce)) * [Add `Twitter::API::Lists#lists_owned` method](sferik/twitter-ruby@9e97b51) * [Add `Twitter::API::Tweets#retweeters_ids` method](sferik/twitter-ruby@8cf5b2d) * [Add `Twitter::SearchResults#next_results`](sferik/twitter-ruby#365) ([@KentonWhite](https://twitter.com/KentonWhite)) * [Make consumer_key readable](sferik/twitter-ruby@a318869) * [Loosen required_rubygems_version for compatibility with Ubuntu 10.04](sferik/twitter-ruby@41bd565) * [Remove default SSL configuration options and override](sferik/twitter-ruby@113b14b)
Changelog (from CHANGELOG.md) 5.5.1 ----- * [Fix bug where `Twitter::Error::AlreadyFavorited` would never be raised](sferik/twitter-ruby#512) ([@Polestarw](https://twitter.com/polestarw)) * [Fix bug where `Twitter::Error::AlreadyPosted` would never be raised](sferik/twitter-ruby@e6b37b9) * [Restore `Twitter::Entities#entities?` as a public method](sferik/twitter-ruby@234a9e3) 5.5.0 ----- * [Add entities to `Twitter::DirectMessage`](sferik/twitter-ruby@d911deb) * [Add conversion methods to `Twitter::NullObject`](sferik/twitter-ruby@4900fee) 5.4.1 ----- * [Default to maximum number of tweets per request](sferik/twitter-ruby@1e41b5d) 5.4.0 ----- * [Fix enumerable search interface](sferik/twitter-ruby@e14cc33) 5.3.1 ----- * [Add `Twitter::Utils` module](sferik/twitter-ruby@a1f47fb) ([@charliesome](https://twitter.com/charliesome)) * [Remove `Enumerable` monkey patch](sferik/twitter-ruby@818b28d) ([@charliesome](https://twitter.com/charliesome)) * [Don't spawning a new thread if there's only one element](sferik/twitter-ruby@c01ea83) * [Introduce meaningful constant names](sferik/twitter-ruby@215c808) ([@futuresanta](https://twitter.com/futuresanta)) * [Automatically flatten `Twitter::Arguments`](sferik/twitter-ruby@a556028) 5.3.0 ----- * [Add `UNABLE_TO_VERIFY_CREDENTIALS` error code](sferik/twitter-ruby@6a47e71) * [Don't suppress `Twitter::Error::Forbidden` in #follow and #follow!](sferik/twitter-ruby@b949c04) * [Update memoizable dependency to ~> 0.3.1](sferik/twitter-ruby#501) 5.2.0 ----- * [Replace `URI` with `adressable`](sferik/twitter-ruby@7ea2f53) * [Make `Twitter::Streaming::FriendList` an array](sferik/twitter-ruby@1a38e5e) * [Add `Twitter::Streaming::DeletedTweet`](sferik/twitter-ruby@084025b) * [Add `Twitter::Streaming::StallWarning`](sferik/twitter-ruby@b07ac50) * [Add error code for "User is over daily status update limit"](sferik/twitter-ruby@76c088d) * [`Twitter::Streaming::Client#site` can take a `String` or `Twitter::User`](sferik/twitter-ruby@e3ad4f2) * [Update `http_parser.rb` dependency to `~> 0.6.0`](sferik/twitter-ruby@6d2f81b) 5.1.1 ----- * [Custom equalizer for `Twitter::Place`](sferik/twitter-ruby@79c76a9) 5.1.0 ----- * [Use `Addressable::URI` everywhere](sferik/twitter-ruby@97d7c68) ([@matthewrudy](https://twitter.com/matthewrudy)) * [Allow use of `Twitter::Place` instead of `place_id`](sferik/twitter-ruby@c2b31dd) * [Allow use of `Twitter::Tweet` instead of `in_reply_to_status_id`](sferik/twitter-ruby@6b7d6c2) 5.0.1 ----- * [Fix `buftok` delimiter handling](sferik/twitter-ruby#484) * [Started handling streaming deletes](sferik/twitter-ruby@8860b97) 5.0.0 ----- * [Remove `Twitter::API::Undocumented#status_activity` and `#statuses_activity`](sferik/twitter-ruby@7f97081) * [Remove `Twitter::Tweet#favoriters`, `#repliers`, `#repliers_count`, and `#retweeters`](sferik/twitter-ruby@77cc963) * [Remove identity map](sferik/twitter-ruby@ec7c2df) * [Remove `Twitter::Cursor#all`](sferik/twitter-ruby@72be414) * [Remove `Twitter::Cursor#collection`](sferik/twitter-ruby@9ae4621) * [Remove `Twitter#from_user`](sferik/twitter-ruby@d2ae9f1) * [Remove `ClientError`, `ServerError`, and `ParserError`](sferik/twitter-ruby@7284394) * [Remove global configuration](sferik/twitter-ruby@239c5a8) * [Remove ability to configure client with environment variables](sferik/twitter-ruby@17e9585) * [Remove Brittish English aliases](sferik/twitter-ruby@572813b) * [Replace `multi_json` with `json`](sferik/twitter-ruby@e5fc292) * [Rename `oauth_token` to `access_token`](sferik/twitter-ruby@d360f80) * [Move `Twitter::Arguments` out of `REST::API` namespace](sferik/twitter-ruby@8faa153) * [Move `Twitter::Client` into `REST` namespace](sferik/twitter-ruby@5b8c3fd) * [Add `Twitter::Streaming::Client`](sferik/twitter-ruby@23afe90) * [Add `Twitter::Error::AlreadyPosted`](sferik/twitter-ruby@e11d2a2) * [Add `Twitter::REST::Client#reverse_token`](sferik/twitter-ruby@39139c4) * [Add `#url` methods to `Twitter::List`, `Twitter::Tweet`, and `Twitter::User`](sferik/twitter-ruby@a89ec0f) * [Add `Twitter::Place#contained_within` and `#contained_within?`](sferik/twitter-ruby@23cc247) * [Add `Twitter::GeoResults`](sferik/twitter-ruby@be1a0a1) * [Add `NullObject`](sferik/twitter-ruby@17880f4) * [Add predicate methods for any possible `NullObject`](sferik/twitter-ruby@eac5522) * [Always return `URI` instead of `String`](sferik/twitter-ruby@341f68d) * [Allow `URI` as argument](sferik/twitter-ruby@c207567) * [Allow `String` in addition to `URI` objects](sferik/twitter-ruby@89a46fb) * [Collection caching](sferik/twitter-ruby@d484d7d) * [Implement `Twitter::Cursor#each` without making an extra HTTP request](sferik/twitter-ruby@8eeff57) * [Make `Twitter::SearchResults` enumerable](sferik/twitter-ruby@d5ce853) * [Make `Twitter::Base` objects immutable](sferik/twitter-ruby@69b1ef7) * [Missing key now raises `KeyError`, not `ArgumentError`](sferik/twitter-ruby@f56698c) * [Use `equalizer` instead of manually overwriting #==](sferik/twitter-ruby@a7ddf71) * [Give methods more natural names](sferik/twitter-ruby@e593194) * [Fix `Twitter::SearchResults#rpp` return value](sferik/twitter-ruby@28d7320) 4.8.1 ----- * [Ignore case of profile image extension](sferik/twitter-ruby@7376061) * [Allow use of Twitter::Token in place of bearer token string](sferik/twitter-ruby@13596bc) * [Add Twitter::API::Undocumented#tweet_count](sferik/twitter-ruby@795458a) * [Add missing dependencies](sferik/twitter-ruby@e07e034) ([@tmatilai](https://twitter.com/tmatilai)) 4.8.0 ----- * [Add `Twitter::SearchResults#refresh_url`](sferik/twitter-ruby@6bf08c0) ([@mustafaturan](https://twitter.com/mustafaturan)) * [Fix issue with wrong signature being generated when multipart data is posted](sferik/twitter-ruby@65ab90a) ([@mustafaturan](https://twitter.com/mustafaturan)) * [Restore compatibility with Ruby 1.8.7](sferik/twitter-ruby@fb63970) * [Remove undocumented methods, retired in the APIpocalypse](sferik/twitter-ruby@cf6a91f) 4.7.0 ----- * [Add support for application-only authentication](sferik/twitter-ruby#387) ([@paracycle](https://twitter.com/paracycle)) * [Add support for `Twitter::Entity::Symbol` entities](sferik/twitter-ruby@a14a0cd) ([@anno](https://twitter.com/anno)) * [Add `Twitter::API::OAuth#invalidate_token`](sferik/twitter-ruby#372) ([@terenceponce](https://twitter.com/terenceponce)) * [Add `Twitter::API::Lists#lists_owned` method](sferik/twitter-ruby@9e97b51) * [Add `Twitter::API::Tweets#retweeters_ids` method](sferik/twitter-ruby@8cf5b2d) * [Add `Twitter::SearchResults#next_results`](sferik/twitter-ruby#365) ([@KentonWhite](https://twitter.com/KentonWhite)) * [Make consumer_key readable](sferik/twitter-ruby@a318869) * [Loosen required_rubygems_version for compatibility with Ubuntu 10.04](sferik/twitter-ruby@41bd565) * [Remove default SSL configuration options and override](sferik/twitter-ruby@113b14b)
Changelog (from CHANGELOG.md) 5.5.1 ----- * [Fix bug where `Twitter::Error::AlreadyFavorited` would never be raised](sferik/twitter-ruby#512) ([@Polestarw](https://twitter.com/polestarw)) * [Fix bug where `Twitter::Error::AlreadyPosted` would never be raised](sferik/twitter-ruby@e6b37b9) * [Restore `Twitter::Entities#entities?` as a public method](sferik/twitter-ruby@234a9e3) 5.5.0 ----- * [Add entities to `Twitter::DirectMessage`](sferik/twitter-ruby@d911deb) * [Add conversion methods to `Twitter::NullObject`](sferik/twitter-ruby@4900fee) 5.4.1 ----- * [Default to maximum number of tweets per request](sferik/twitter-ruby@1e41b5d) 5.4.0 ----- * [Fix enumerable search interface](sferik/twitter-ruby@e14cc33) 5.3.1 ----- * [Add `Twitter::Utils` module](sferik/twitter-ruby@a1f47fb) ([@charliesome](https://twitter.com/charliesome)) * [Remove `Enumerable` monkey patch](sferik/twitter-ruby@818b28d) ([@charliesome](https://twitter.com/charliesome)) * [Don't spawning a new thread if there's only one element](sferik/twitter-ruby@c01ea83) * [Introduce meaningful constant names](sferik/twitter-ruby@215c808) ([@futuresanta](https://twitter.com/futuresanta)) * [Automatically flatten `Twitter::Arguments`](sferik/twitter-ruby@a556028) 5.3.0 ----- * [Add `UNABLE_TO_VERIFY_CREDENTIALS` error code](sferik/twitter-ruby@6a47e71) * [Don't suppress `Twitter::Error::Forbidden` in #follow and #follow!](sferik/twitter-ruby@b949c04) * [Update memoizable dependency to ~> 0.3.1](sferik/twitter-ruby#501) 5.2.0 ----- * [Replace `URI` with `adressable`](sferik/twitter-ruby@7ea2f53) * [Make `Twitter::Streaming::FriendList` an array](sferik/twitter-ruby@1a38e5e) * [Add `Twitter::Streaming::DeletedTweet`](sferik/twitter-ruby@084025b) * [Add `Twitter::Streaming::StallWarning`](sferik/twitter-ruby@b07ac50) * [Add error code for "User is over daily status update limit"](sferik/twitter-ruby@76c088d) * [`Twitter::Streaming::Client#site` can take a `String` or `Twitter::User`](sferik/twitter-ruby@e3ad4f2) * [Update `http_parser.rb` dependency to `~> 0.6.0`](sferik/twitter-ruby@6d2f81b) 5.1.1 ----- * [Custom equalizer for `Twitter::Place`](sferik/twitter-ruby@79c76a9) 5.1.0 ----- * [Use `Addressable::URI` everywhere](sferik/twitter-ruby@97d7c68) ([@matthewrudy](https://twitter.com/matthewrudy)) * [Allow use of `Twitter::Place` instead of `place_id`](sferik/twitter-ruby@c2b31dd) * [Allow use of `Twitter::Tweet` instead of `in_reply_to_status_id`](sferik/twitter-ruby@6b7d6c2) 5.0.1 ----- * [Fix `buftok` delimiter handling](sferik/twitter-ruby#484) * [Started handling streaming deletes](sferik/twitter-ruby@8860b97) 5.0.0 ----- * [Remove `Twitter::API::Undocumented#status_activity` and `#statuses_activity`](sferik/twitter-ruby@7f97081) * [Remove `Twitter::Tweet#favoriters`, `#repliers`, `#repliers_count`, and `#retweeters`](sferik/twitter-ruby@77cc963) * [Remove identity map](sferik/twitter-ruby@ec7c2df) * [Remove `Twitter::Cursor#all`](sferik/twitter-ruby@72be414) * [Remove `Twitter::Cursor#collection`](sferik/twitter-ruby@9ae4621) * [Remove `Twitter#from_user`](sferik/twitter-ruby@d2ae9f1) * [Remove `ClientError`, `ServerError`, and `ParserError`](sferik/twitter-ruby@7284394) * [Remove global configuration](sferik/twitter-ruby@239c5a8) * [Remove ability to configure client with environment variables](sferik/twitter-ruby@17e9585) * [Remove Brittish English aliases](sferik/twitter-ruby@572813b) * [Replace `multi_json` with `json`](sferik/twitter-ruby@e5fc292) * [Rename `oauth_token` to `access_token`](sferik/twitter-ruby@d360f80) * [Move `Twitter::Arguments` out of `REST::API` namespace](sferik/twitter-ruby@8faa153) * [Move `Twitter::Client` into `REST` namespace](sferik/twitter-ruby@5b8c3fd) * [Add `Twitter::Streaming::Client`](sferik/twitter-ruby@23afe90) * [Add `Twitter::Error::AlreadyPosted`](sferik/twitter-ruby@e11d2a2) * [Add `Twitter::REST::Client#reverse_token`](sferik/twitter-ruby@39139c4) * [Add `#url` methods to `Twitter::List`, `Twitter::Tweet`, and `Twitter::User`](sferik/twitter-ruby@a89ec0f) * [Add `Twitter::Place#contained_within` and `#contained_within?`](sferik/twitter-ruby@23cc247) * [Add `Twitter::GeoResults`](sferik/twitter-ruby@be1a0a1) * [Add `NullObject`](sferik/twitter-ruby@17880f4) * [Add predicate methods for any possible `NullObject`](sferik/twitter-ruby@eac5522) * [Always return `URI` instead of `String`](sferik/twitter-ruby@341f68d) * [Allow `URI` as argument](sferik/twitter-ruby@c207567) * [Allow `String` in addition to `URI` objects](sferik/twitter-ruby@89a46fb) * [Collection caching](sferik/twitter-ruby@d484d7d) * [Implement `Twitter::Cursor#each` without making an extra HTTP request](sferik/twitter-ruby@8eeff57) * [Make `Twitter::SearchResults` enumerable](sferik/twitter-ruby@d5ce853) * [Make `Twitter::Base` objects immutable](sferik/twitter-ruby@69b1ef7) * [Missing key now raises `KeyError`, not `ArgumentError`](sferik/twitter-ruby@f56698c) * [Use `equalizer` instead of manually overwriting #==](sferik/twitter-ruby@a7ddf71) * [Give methods more natural names](sferik/twitter-ruby@e593194) * [Fix `Twitter::SearchResults#rpp` return value](sferik/twitter-ruby@28d7320) 4.8.1 ----- * [Ignore case of profile image extension](sferik/twitter-ruby@7376061) * [Allow use of Twitter::Token in place of bearer token string](sferik/twitter-ruby@13596bc) * [Add Twitter::API::Undocumented#tweet_count](sferik/twitter-ruby@795458a) * [Add missing dependencies](sferik/twitter-ruby@e07e034) ([@tmatilai](https://twitter.com/tmatilai)) 4.8.0 ----- * [Add `Twitter::SearchResults#refresh_url`](sferik/twitter-ruby@6bf08c0) ([@mustafaturan](https://twitter.com/mustafaturan)) * [Fix issue with wrong signature being generated when multipart data is posted](sferik/twitter-ruby@65ab90a) ([@mustafaturan](https://twitter.com/mustafaturan)) * [Restore compatibility with Ruby 1.8.7](sferik/twitter-ruby@fb63970) * [Remove undocumented methods, retired in the APIpocalypse](sferik/twitter-ruby@cf6a91f) 4.7.0 ----- * [Add support for application-only authentication](sferik/twitter-ruby#387) ([@paracycle](https://twitter.com/paracycle)) * [Add support for `Twitter::Entity::Symbol` entities](sferik/twitter-ruby@a14a0cd) ([@anno](https://twitter.com/anno)) * [Add `Twitter::API::OAuth#invalidate_token`](sferik/twitter-ruby#372) ([@terenceponce](https://twitter.com/terenceponce)) * [Add `Twitter::API::Lists#lists_owned` method](sferik/twitter-ruby@9e97b51) * [Add `Twitter::API::Tweets#retweeters_ids` method](sferik/twitter-ruby@8cf5b2d) * [Add `Twitter::SearchResults#next_results`](sferik/twitter-ruby#365) ([@KentonWhite](https://twitter.com/KentonWhite)) * [Make consumer_key readable](sferik/twitter-ruby@a318869) * [Loosen required_rubygems_version for compatibility with Ubuntu 10.04](sferik/twitter-ruby@41bd565) * [Remove default SSL configuration options and override](sferik/twitter-ruby@113b14b)
Changelog (from CHANGELOG.md) 5.5.1 ----- * [Fix bug where `Twitter::Error::AlreadyFavorited` would never be raised](sferik/twitter-ruby#512) ([@Polestarw](https://twitter.com/polestarw)) * [Fix bug where `Twitter::Error::AlreadyPosted` would never be raised](sferik/twitter-ruby@e6b37b9) * [Restore `Twitter::Entities#entities?` as a public method](sferik/twitter-ruby@234a9e3) 5.5.0 ----- * [Add entities to `Twitter::DirectMessage`](sferik/twitter-ruby@d911deb) * [Add conversion methods to `Twitter::NullObject`](sferik/twitter-ruby@4900fee) 5.4.1 ----- * [Default to maximum number of tweets per request](sferik/twitter-ruby@1e41b5d) 5.4.0 ----- * [Fix enumerable search interface](sferik/twitter-ruby@e14cc33) 5.3.1 ----- * [Add `Twitter::Utils` module](sferik/twitter-ruby@a1f47fb) ([@charliesome](https://twitter.com/charliesome)) * [Remove `Enumerable` monkey patch](sferik/twitter-ruby@818b28d) ([@charliesome](https://twitter.com/charliesome)) * [Don't spawning a new thread if there's only one element](sferik/twitter-ruby@c01ea83) * [Introduce meaningful constant names](sferik/twitter-ruby@215c808) ([@futuresanta](https://twitter.com/futuresanta)) * [Automatically flatten `Twitter::Arguments`](sferik/twitter-ruby@a556028) 5.3.0 ----- * [Add `UNABLE_TO_VERIFY_CREDENTIALS` error code](sferik/twitter-ruby@6a47e71) * [Don't suppress `Twitter::Error::Forbidden` in #follow and #follow!](sferik/twitter-ruby@b949c04) * [Update memoizable dependency to ~> 0.3.1](sferik/twitter-ruby#501) 5.2.0 ----- * [Replace `URI` with `adressable`](sferik/twitter-ruby@7ea2f53) * [Make `Twitter::Streaming::FriendList` an array](sferik/twitter-ruby@1a38e5e) * [Add `Twitter::Streaming::DeletedTweet`](sferik/twitter-ruby@084025b) * [Add `Twitter::Streaming::StallWarning`](sferik/twitter-ruby@b07ac50) * [Add error code for "User is over daily status update limit"](sferik/twitter-ruby@76c088d) * [`Twitter::Streaming::Client#site` can take a `String` or `Twitter::User`](sferik/twitter-ruby@e3ad4f2) * [Update `http_parser.rb` dependency to `~> 0.6.0`](sferik/twitter-ruby@6d2f81b) 5.1.1 ----- * [Custom equalizer for `Twitter::Place`](sferik/twitter-ruby@79c76a9) 5.1.0 ----- * [Use `Addressable::URI` everywhere](sferik/twitter-ruby@97d7c68) ([@matthewrudy](https://twitter.com/matthewrudy)) * [Allow use of `Twitter::Place` instead of `place_id`](sferik/twitter-ruby@c2b31dd) * [Allow use of `Twitter::Tweet` instead of `in_reply_to_status_id`](sferik/twitter-ruby@6b7d6c2) 5.0.1 ----- * [Fix `buftok` delimiter handling](sferik/twitter-ruby#484) * [Started handling streaming deletes](sferik/twitter-ruby@8860b97) 5.0.0 ----- * [Remove `Twitter::API::Undocumented#status_activity` and `#statuses_activity`](sferik/twitter-ruby@7f97081) * [Remove `Twitter::Tweet#favoriters`, `#repliers`, `#repliers_count`, and `#retweeters`](sferik/twitter-ruby@77cc963) * [Remove identity map](sferik/twitter-ruby@ec7c2df) * [Remove `Twitter::Cursor#all`](sferik/twitter-ruby@72be414) * [Remove `Twitter::Cursor#collection`](sferik/twitter-ruby@9ae4621) * [Remove `Twitter#from_user`](sferik/twitter-ruby@d2ae9f1) * [Remove `ClientError`, `ServerError`, and `ParserError`](sferik/twitter-ruby@7284394) * [Remove global configuration](sferik/twitter-ruby@239c5a8) * [Remove ability to configure client with environment variables](sferik/twitter-ruby@17e9585) * [Remove Brittish English aliases](sferik/twitter-ruby@572813b) * [Replace `multi_json` with `json`](sferik/twitter-ruby@e5fc292) * [Rename `oauth_token` to `access_token`](sferik/twitter-ruby@d360f80) * [Move `Twitter::Arguments` out of `REST::API` namespace](sferik/twitter-ruby@8faa153) * [Move `Twitter::Client` into `REST` namespace](sferik/twitter-ruby@5b8c3fd) * [Add `Twitter::Streaming::Client`](sferik/twitter-ruby@23afe90) * [Add `Twitter::Error::AlreadyPosted`](sferik/twitter-ruby@e11d2a2) * [Add `Twitter::REST::Client#reverse_token`](sferik/twitter-ruby@39139c4) * [Add `#url` methods to `Twitter::List`, `Twitter::Tweet`, and `Twitter::User`](sferik/twitter-ruby@a89ec0f) * [Add `Twitter::Place#contained_within` and `#contained_within?`](sferik/twitter-ruby@23cc247) * [Add `Twitter::GeoResults`](sferik/twitter-ruby@be1a0a1) * [Add `NullObject`](sferik/twitter-ruby@17880f4) * [Add predicate methods for any possible `NullObject`](sferik/twitter-ruby@eac5522) * [Always return `URI` instead of `String`](sferik/twitter-ruby@341f68d) * [Allow `URI` as argument](sferik/twitter-ruby@c207567) * [Allow `String` in addition to `URI` objects](sferik/twitter-ruby@89a46fb) * [Collection caching](sferik/twitter-ruby@d484d7d) * [Implement `Twitter::Cursor#each` without making an extra HTTP request](sferik/twitter-ruby@8eeff57) * [Make `Twitter::SearchResults` enumerable](sferik/twitter-ruby@d5ce853) * [Make `Twitter::Base` objects immutable](sferik/twitter-ruby@69b1ef7) * [Missing key now raises `KeyError`, not `ArgumentError`](sferik/twitter-ruby@f56698c) * [Use `equalizer` instead of manually overwriting #==](sferik/twitter-ruby@a7ddf71) * [Give methods more natural names](sferik/twitter-ruby@e593194) * [Fix `Twitter::SearchResults#rpp` return value](sferik/twitter-ruby@28d7320) 4.8.1 ----- * [Ignore case of profile image extension](sferik/twitter-ruby@7376061) * [Allow use of Twitter::Token in place of bearer token string](sferik/twitter-ruby@13596bc) * [Add Twitter::API::Undocumented#tweet_count](sferik/twitter-ruby@795458a) * [Add missing dependencies](sferik/twitter-ruby@e07e034) ([@tmatilai](https://twitter.com/tmatilai)) 4.8.0 ----- * [Add `Twitter::SearchResults#refresh_url`](sferik/twitter-ruby@6bf08c0) ([@mustafaturan](https://twitter.com/mustafaturan)) * [Fix issue with wrong signature being generated when multipart data is posted](sferik/twitter-ruby@65ab90a) ([@mustafaturan](https://twitter.com/mustafaturan)) * [Restore compatibility with Ruby 1.8.7](sferik/twitter-ruby@fb63970) * [Remove undocumented methods, retired in the APIpocalypse](sferik/twitter-ruby@cf6a91f) 4.7.0 ----- * [Add support for application-only authentication](sferik/twitter-ruby#387) ([@paracycle](https://twitter.com/paracycle)) * [Add support for `Twitter::Entity::Symbol` entities](sferik/twitter-ruby@a14a0cd) ([@anno](https://twitter.com/anno)) * [Add `Twitter::API::OAuth#invalidate_token`](sferik/twitter-ruby#372) ([@terenceponce](https://twitter.com/terenceponce)) * [Add `Twitter::API::Lists#lists_owned` method](sferik/twitter-ruby@9e97b51) * [Add `Twitter::API::Tweets#retweeters_ids` method](sferik/twitter-ruby@8cf5b2d) * [Add `Twitter::SearchResults#next_results`](sferik/twitter-ruby#365) ([@KentonWhite](https://twitter.com/KentonWhite)) * [Make consumer_key readable](sferik/twitter-ruby@a318869) * [Loosen required_rubygems_version for compatibility with Ubuntu 10.04](sferik/twitter-ruby@41bd565) * [Remove default SSL configuration options and override](sferik/twitter-ruby@113b14b)
The issue is the same as described in #481.
Instead of tweaking data to cope with buftok's bug, I implemented a similar Twitter::Streaming::BufferedTokenizer and add specs for it.
You can see the buftok's bug by replacing
described_class
withBufferedTokenizer
in spec/twitter/streaming/buffered_tokenizer_spec.rb.