Giter Club home page Giter Club logo

silverplatter-irc's Introduction

SilverPlatter::IRC

Indexing

Author

Stefan Rusterholz <stefan.rusterholz+silverplatter-irc at gmail.com>

Version

1.0.0

Website

silverplatter.rubyforge.org/irc

Git Repository

github.com/apeiros/silverplatter-irc

Bugtracker

rubyforge.org/tracker/?atid=17330&group_id=4522&func=browse

Feature Requests

rubyforge.org/tracker/?atid=17333&group_id=4522&func=browse

License

Ruby License (see LICENSE.txt)

Summary

SilverPlatter::IRC is an easy to use library for IRC clients. For an example use take a look at the butler project: butler.rubyforge.org which uses it to implement an IRC bot.

Description

SilverPlatter::IRC is an easy to use library for IRC clients. For an example use take a look at the butler project: butler.rubyforge.org which uses it to implement an IRC bot.

Installing

Via RubyGems

You need for the installation:

  • rubygems >= 1.2.0

  • silverplatter-log >= 0.1.0 (automatically installed by rubygems)

You need for some of the rake tasks:

  • bacon

  • flexmock

  • git

  • hpricot

  • rcov

  • rdiscount (or markdown)

  • rdoc

  • rspec

To install, do:

gem install silverplatter-irc

Note: you might have to use ‘sudo gem install silverplatter-irc’

From Github

You need for the installation:

  • rubygems >= 1.2.0 (if you want to use any gem tasks)

  • hpricot >= 0.6.0 (needed for most rake tasks)

  • rdoc >= 2.0.0 (needed for most rake tasks)

  • silverplatter-log >= 0.1.0

You need for some of the rake tasks:

  • bacon

  • flexmock

  • git

  • hpricot

  • rcov

  • rdiscount (or markdown)

  • rdoc

  • rspec

To install, do:

curl github.com/apeiros/silverplatter-irc/tarball/master cd trunk rake gem:install

Note: you might have to use ‘sudo rake gem:install’

Examples

See in the examples dir for code examples.

Design

SilverPlatter::IRC is designed in layers, the following layers exist:

Socket

Provides many abstracted write methods and send-queues to protect your client from accidentally flooding (sending too many messages at once) Reading messages will only give a string

Connection

Provides imperative and evented interfaces to reading commands, which additionally are converted to IRC::Message’s and provide a nicer interface than plain Strings. Keeps track of IRC::User’s you’re talking to (or that talk to you) and IRC::Channel’s you’re in. Both, IRC::User and IRC::Channel are multitons, that means a given user or channel will always be represented by the same object.

Client

Deals with multiple connections

Socket only provides the simplemost functionality and is “dumb” by design (no automatisms). Connection is sufficient to build a client allowing a connection to a single server at a time and is semi-intelligent as Parser, Channel and Users are tied to the connection and automatically updated apropriatly. Also it can properly deal with requests with multiple commands as reply, collecting those and making them accessible in a nice format. Client enables multiple connections in a nice manner.

Contributing

If you wish to contribute, then there are various ways to do so:

Code

If you wish to contribute code, simply fork the github project, clone and start to work. Contact me when you think your modifications are ready to be pulled into the master branch. Notice that all patches are required to be under the Ruby License or public domain.

Documentation

Read the docs, tell me where they are unclear or even incomplete and/or how you think they could be improved.

Feedback

Please give feedback on the libs. ALL feedback is good. Positive feedback to keep the motivation up, negative (but constructive!) feedback to improve the code-base.

Testing

Testrun silverplatter-irc on different IRC servers and collect logged exceptions

SSL

Have a server with SSL to connect to? Tell me, I’d very much like to try enable ssl connections.

Website

silverplatter.rubyforge.org/irc

Project

rubyforge.org/projects/silverplatter

Bugtracker

rubyforge.org/tracker/?atid=17330&group_id=4522&func=browse

Feature Requests

rubyforge.org/tracker/?atid=17333&group_id=4522&func=browse

RFC1459

www.rfc.net/rfc1459.html

RFC2812

www.rfc.net/rfc2812.html

ISUPPORT

www.irc.org/tech_docs/draft-brocklesby-irc-isupport-03.txt

silverplatter-irc's People

Contributors

apeiros avatar

Stargazers

jacob kili avatar

Watchers

jacob kili avatar James Cloos 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.