Coder Social home page Coder Social logo

twitter-text-rb's Introduction

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: “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 [email protected]: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:

Copyright and License

Copyright 2011 Twitter, Inc.

Licensed under the Apache License, Version 2.0: www.apache.org/licenses/LICENSE-2.0

twitter-text-rb's People

Contributors

bcherry avatar niw avatar hoverbird avatar mzsanford avatar sferik avatar kscanne avatar couch avatar dnitza avatar psychs avatar jsha avatar howardr avatar caniszczyk avatar cwest avatar jpbougie avatar jmhodges avatar kennethkufluk avatar ryanking avatar seldo avatar tommyh avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.