.. image:: https://travis-ci.org/urbanairship/ruby-library.svg?branch=master
:target: https://travis-ci.org/urbanairship/ruby-library
About
=====
``urbanairship`` is a Ruby library for using the `Urban Airship
`_ web service API for push notifications
and rich app pages.
Requirements
============
We officially support the following Ruby versions::
2.2.5
2.3.1
Newer versions should work as well.
Functionality
=============
Version 5.0 is a major upgrade, as some features have been removed that were present in earlier versions. A more detailed list of changes can be found in the CHANGELOG.
Installation
============
If you have the ``bundler`` gem (if not you can get it with
``$ gem install bundler``) add this line to your application's
Gemfile::
>>> gem 'urbanairship'
And then execute::
>>> $ bundle
OR install it yourself as::
>>> gem install urbanairship
Configuration
=============
In your app initialization, you can do something like the following:
>>> require 'urbanairship'
>>> Urbanairship.configure do |config|
>>> config.log_path = '/path/to/your/logfile'
>>> config.log_level = Logger::WARN
>>> config.timeout = 60
>>> end
Available Configurations
------------------------
- **log_path**: Allows to define the folder where the log file will be created (the default is nil).
- **log_level**: Allows to define the log level and only messages at that level or higher will be printed (the default is INFO).
- **timeout**: Allows to define the request timeout in seconds (the default is 5).
Usage
=====
Once the gem has been installed you can start sending pushes!
See the `full documentation
`_,
`api examples
`_, as well as the
`Urban Airship API Documentation
`_ for more
information.
Broadcast to All Devices
------------------------
>>> require 'urbanairship'
>>> UA = Urbanairship
>>> airship = UA::Client.new(key:'application_key', secret:'master_secret')
>>> p = airship.create_push
>>> p.audience = UA.all
>>> p.notification = UA.notification(alert: 'Hello')
>>> p.device_types = UA.all
>>> p.send_push
Simple Tag Push
---------------
>>> require 'urbanairship'
>>> UA = Urbanairship
>>> airship = UA::Client.new(key:'application_key', secret:'master_secret')
>>> p = airship.create_push
>>> p.audience = UA.tag('some_tag')
>>> p.notification = UA.notification(alert: 'Hello')
>>> p.device_types = UA.all
>>> p.send_push
Questions
=========
The best place to ask questions is our support site:
http://support.urbanairship.com/
Contributing
============
1. Fork it ( https://github.com/urbanairship/ruby-library )
2. Create your feature branch: ``git checkout -b my-new-feature``
3. Commit your changes ``git commit -am 'Add some feature'``
4. Push to the branch ``git push origin my-new-feature``
5. Create a new Pull Request
6. Sign Urban Airship's `contribution agreement
`_.
**Note**: Changes will not be approved and merged without a signed
contribution agreement.
Development
===========
After checking out the repo, ensure you have ``bundler`` installed
(``$ gem install bundler``) run::
>>> $ bin/setup
to install dependencies. Then, run::
>>> $ bin/console
for an interactive prompt that will allow you to experiment.
OR you can build a local gem to play with::
>>> $ gem build urbanairship.gemspec
>>> $ gem install ./urbanairship-.gem
Having a local build will give you better logging if you are running
into issues, but be careful to make sure to use our released public
gem in Production.