Project

tito_ruby

0.0
No release in over 3 years
A Ruby client library for the Tito event management Admin API (v3). Supports events, tickets, registrations, releases, and more.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

~> 3.0
~> 5.0
~> 13.0
~> 6.0
~> 3.0

Runtime

>= 7.1, < 9.0
~> 2.0
 Project Readme

Tito Ruby

A Ruby client for the Tito Admin API v3.

WARNING: This is a very early release, and I'm only using a small portion of it, so although we have automated tests, most of them are not backed up by real-world experience.

Installation

Add to your Gemfile:

gem "tito_ruby"

Or install directly:

gem install tito_ruby

Configuration

Tito.configure do |config|
  config.token   = "your_api_token"
  config.account = "your_account_slug"
end

Or pass credentials directly to the client:

client = Tito::Admin::Client.new(token: "your_api_token", account: "your_account_slug")

Usage

Events

client = Tito::Admin::Client.new

# List events
client.events.each { |event| puts event.title }

# Find a specific event
event = client.events.find("my-event-slug")

# Past and archived events
client.past_events.each { |e| puts e.title }
client.archived_events.each { |e| puts e.title }

Tickets

client = Tito::Admin::Client.new(event: "my-event")

# List tickets
client.tickets.each { |ticket| puts ticket.reference }

# Search and filter
client.tickets.search("john").each { |t| puts t.reference }

# Pagination
client.tickets.page(2).per(50).each { |t| puts t.reference }

Registrations

client.registrations.each { |reg| puts reg.name }

Releases

client.releases.each { |release| puts release.title }

Discount Codes

client.discount_codes.each { |code| puts code.code }

Query Builder

All collections support a chainable query interface:

client.tickets
  .where(state: "complete")
  .order("created_at_desc")
  .expand("registration", "release")
  .page(1)
  .per(25)
  .each { |t| puts t.reference }

Resource Status

Resource List Find Create Update Delete Notes
Events Account-scoped
Releases
Tickets N/A
Registrations N/A
Questions
Answers N/A N/A N/A Nested under Questions
Discount Codes
Activities
Checkin Lists List broken by Tito API bug
Opt-Ins
Interested Users
RSVP Lists
Release Invitations Nested under RSVP Lists
Webhook Endpoints Event-scoped
Waitlisted People
Refunds N/A N/A N/A Nested under Registrations
Venues

✅ = tested against live API  ❔ = implemented but untested  ❌ = known broken

Logging

In a Rails app, request logging is enabled automatically via Rails.logger. You'll see output like:

request: GET https://api.tito.io/v3/letterblock/test-event-1/tickets?page%5Bnumber%5D=1
response: Status 200

Outside of Rails, set a logger manually:

Tito.logger = Logger.new(STDOUT)

Or via the configure block:

Tito.configure do |config|
  config.logger = Logger.new(STDOUT)
end

This uses Faraday's built-in logger middleware, omitting headers and bodies. Set Tito.logger = nil to disable.

Note: the logger is captured when the first request is made on a client. If you set Tito.logger after a client has already been used, create a new client for it to take effect.

Development

bundle install
bundle exec rake test

License

MIT License. See LICENSE.txt.