== twitter-text {}[http://travis-ci.org/twitter/twitter-text-rb] {}[https://codeclimate.com/github/twitter/twitter-text-rb] A 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") %> === Usernames Username extraction and linking matches all valid Twitter usernames but does not verify that the username is a valid Twitter account. === Lists Auto-link and extract list names when they are written in @user/list-name format. === Hashtags Auto-link and extract hashtags, where a hashtag can contain most letters or numbers but cannot be solely numbers and cannot contain punctuation. === URLs Asian 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: "http://twitter.com/は素晴らしい" . The normal text is "は素晴らしい" and is not part of the URL even though it isn't space separated. === International Special 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 Highlighting Use to provide emphasis around the "hits" returned from the Search API, built to work against text that has been auto-linked already. === Conformance To 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 === Thanks Thanks to everybody who has filed issues, provided feedback or contributed patches. Patches courtesy of: * At Twitter … * Matt Sanford - http://github.com/mzsanford * Raffi Krikorian - http://github.com/r * Ben Cherry - http://github.com/bcherry * Patrick Ewing - http://github.com/hoverbird * Jeff Smick - http://github.com/sprsquish * Kenneth Kufluk - https://github.com/kennethkufluk * Keita Fujii - https://github.com/keitaf * Yoshimasa Niwa - https://github.com/niw * Patches from the community … * Jean-Philippe Bougie - http://github.com/jpbougie * Erik Michaels-Ober - https://github.com/sferik * Anyone who has filed an issue. It helps. Really. === Copyright and License Copyright 2011 Twitter, Inc. Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0