<img src=“https://secure.travis-ci.org/twitter/twitter-text-rb.png” /> <img src=“https://codeclimate.com/badge.png” />¶ ↑
twitter-textA gem that provides text processing routines for Twitter Tweets. The major reason for this is to unify the various auto-linking and extraction of usernames, lists, hashtags and URLs.
¶ ↑
Extraction Examples# Extraction class MyClass include Twitter::Extractor usernames = extract_mentioned_screen_names("Mentioning @twitter and @jack") # usernames = ["twitter", "jack"] end # Extraction with a block argument class MyClass include Twitter::Extractor extract_reply_screen_name("@twitter are you hiring?").do |username| # username = "twitter" end end
¶ ↑
Auto-linking Examples# Auto-link class MyClass include Twitter::Autolink html = auto_link("link @user, please #request") end # For Ruby on Rails you want to add this to app/helpers/application_helper.rb module ApplicationHelper include Twitter::Autolink end # Now the auto_link function is available in every view. So in index.html.erb: <%= auto_link("link @user, please #request") %>
¶ ↑
UsernamesUsername extraction and linking matches all valid Twitter usernames but does not verify that the username is a valid Twitter account.
¶ ↑
ListsAuto-link and extract list names when they are written in @user/list-name format.
¶ ↑
HashtagsAuto-link and extract hashtags, where a hashtag can contain most letters or numbers but cannot be solely numbers and cannot contain punctuation.
¶ ↑
URLsAsian languages like Chinese, Japanese or Korean may not use a delimiter such as a space to separate normal text from URLs making it difficult to identify where the URL ends and the text starts.
For this reason twitter-text currently does not support extracting or auto-linking of URLs immediately followed by non-Latin characters.
Example: “twitter.com/は素晴らしい” . The normal text is “は素晴らしい” and is not part of the URL even though it isn’t space separated.
¶ ↑
InternationalSpecial care has been taken to be sure that auto-linking and extraction work in Tweets of all languages. This means that languages without spaces between words should work equally well.
¶ ↑
Hit HighlightingUse to provide emphasis around the “hits” returned from the Search API, built to work against text that has been auto-linked already.
¶ ↑
ConformanceTo run the Conformance suite, you’ll need to add that project as a git submodule. From the root twitter-text-rb directory, run:
git submodule add git@github.com:twitter/twitter-text-conformance.git test/twitter-text-conformance/ git submodule init git submodule update
¶ ↑
ThanksThanks to everybody who has filed issues, provided feedback or contributed patches. Patches courtesy of:
-
At Twitter …
-
Matt Sanford - github.com/mzsanford
-
Raffi Krikorian - github.com/r
-
Ben Cherry - github.com/bcherry
-
Patrick Ewing - github.com/hoverbird
-
Jeff Smick - github.com/sprsquish
-
Kenneth Kufluk - github.com/kennethkufluk
-
Keita Fujii - github.com/keitaf
-
Yoshimasa Niwa - github.com/niw
-
-
Patches from the community …
-
Jean-Philippe Bougie - github.com/jpbougie
-
Erik Michaels-Ober - github.com/sferik
-
-
Anyone who has filed an issue. It helps. Really.
¶ ↑
Copyright and LicenseCopyright 2011 Twitter, Inc.
Licensed under the Apache License, Version 2.0: www.apache.org/licenses/LICENSE-2.0