{"id":26363039,"url":"https://github.com/eventbrite/eventbrite-sdk-ruby","last_synced_at":"2025-03-16T18:20:13.487Z","repository":{"id":56844959,"uuid":"79842968","full_name":"eventbrite/eventbrite-sdk-ruby","owner":"eventbrite","description":"Official Ruby SDK for the Eventbrite v3 API","archived":false,"fork":false,"pushed_at":"2023-05-17T19:07:10.000Z","size":230,"stargazers_count":0,"open_issues_count":7,"forks_count":2,"subscribers_count":19,"default_branch":"master","last_synced_at":"2025-02-15T09:45:22.703Z","etag":null,"topics":["eventbrite","ruby","ruby-gem","sdk"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eventbrite.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-01-23T20:07:10.000Z","updated_at":"2023-05-17T17:33:23.000Z","dependencies_parsed_at":"2022-09-09T17:11:46.471Z","dependency_job_id":null,"html_url":"https://github.com/eventbrite/eventbrite-sdk-ruby","commit_stats":null,"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eventbrite%2Feventbrite-sdk-ruby","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eventbrite%2Feventbrite-sdk-ruby/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eventbrite%2Feventbrite-sdk-ruby/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eventbrite%2Feventbrite-sdk-ruby/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eventbrite","download_url":"https://codeload.github.com/eventbrite/eventbrite-sdk-ruby/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243910750,"owners_count":20367545,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["eventbrite","ruby","ruby-gem","sdk"],"created_at":"2025-03-16T18:20:12.757Z","updated_at":"2025-03-16T18:20:13.463Z","avatar_url":"https://github.com/eventbrite.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EventbriteSdk\n\n[![Code Climate](https://codeclimate.com/github/eventbrite/eventbrite-sdk-ruby/badges/gpa.svg)](https://codeclimate.com/github/eventbrite/eventbrite-sdk-ruby) [![Issue Count](https://codeclimate.com/github/eventbrite/eventbrite-sdk-ruby/badges/issue_count.svg)](https://codeclimate.com/github/eventbrite/eventbrite-sdk-ruby) [![Build Status](https://travis-ci.org/eventbrite/eventbrite-sdk-ruby.svg?branch=master)](https://travis-ci.org/eventbrite/eventbrite-sdk-ruby) [![Test Coverage](https://codeclimate.com/github/eventbrite/eventbrite-sdk-ruby/badges/coverage.svg)](https://codeclimate.com/github/eventbrite/eventbrite-sdk-ruby/coverage) [![Dependency Status](https://gemnasium.com/badges/github.com/eventbrite/eventbrite-sdk-ruby.svg)](https://gemnasium.com/github.com/eventbrite/eventbrite-sdk-ruby) [![Gem Version](https://badge.fury.io/rb/eventbrite_sdk.svg)](https://badge.fury.io/rb/eventbrite_sdk)\n\n## Installation\n\nAdd this line to your application's Gemfile:\n\n```ruby\ngem 'eventbrite_sdk'\n```\n\nAnd then execute:\n\n    $ bundle\n\nOr install it yourself as:\n\n    $ gem install eventbrite_sdk\n\n## Usage\n\nThe library needs to be configured with your account's personal OAuth token which is available in your [App Management][app management] page. Assign it's value to `EventbriteSDK.token` and the library will send it along automatically with every request.\n\n# Basic usage for creating/retrieving/updating/publishing an event:\n\n``` ruby\n\nEventbriteSDK.token = \"TOKEN\"\n\n# create an event draft\nyour_event = EventbriteSDK::Event.build('name.html' =\u003e 'Event Name', 'start.utc' =\u003e '2018-01-31T13:00:00Z', 'start.timezone' =\u003e 'America/Los_Angeles', 'end.utc' =\u003e '2018-02-01T13:00:00Z', 'end.timezone' =\u003e 'America/Los_Angeles', 'currency' =\u003e 'USD')\n\nyour_event.save\n# =\u003e true\n\n# retrieve your event\nyour_event\n\n# retrieve one field on the object\nyour_event.id\n\n# retrieve any event by id\nEventbriteSDK::Event.retrieve(id: 20955468370)\n\n# update the event\nyour_event.assign_attributes('name.html' =\u003e 'A new name', 'description.html' =\u003e 'A new description')\n\nyour_event.save\n# =\u003etrue\n\n# add ticket classes to the event\nevent_ticket = EventbriteSDK::TicketClass.new(event_id: your_event.id)\nevent_ticket.assign_attributes('name'=\u003e'Ticket Name', 'cost'=\u003e'USD,3400', 'quantity_total'=\u003e'378')\n\nevent_ticket.save\n\n# to see if the event is 'dirty' (i.e. has unsaved changes)\nyour_event.changed?\n# =\u003etrue\n\n# save the changes\nyour_event.save\n\n# publish the event\nyour_event.publish\n\n```\n\n# Navigating paginated responses:\n\n``` ruby\n\nEventbriteSDK.token = \"TOKEN\"\n\n# one feature of the Eventbrite API is that you can pass in the string 'me' in place of a\n# user id and it will evaluate to the id of the user associated with the oauth token.\n\n# fetch a new user record using the Eventbrite user id\nuser = EventbriteSDK::User.retrieve(id: 163054428874)\n\n# get one page of your events\nevents = user.owned_events.page(2)\n\n# not providing a page number will default to page one\nevents = user.owned_events.page(1) =\u003e events = user.owned_events\n\n# events is now an enumerable object that you can access using bracket notation or first/last\nevents.first =\u003e events[0]\nevents.last =\u003e events[-1]\n\n# endpoints that support continuations: will be inferred from the current payload\n# you can tell if a paginated result set supports continuations by checking for a non-nil #continuation\n\nexample.continuation #=\u003e \"dGhpcyBpcyBwYWdlIDE\"\n\n# you can continue until the example returns nil, which means there are no more items\nexample.continue\n\n# you can also provide a token if you choose to do so\nexample.continue(continuation_token: 'my_token')\n```\n\n# Use `#retrieve` to build up arbitrary queries\n\n``` ruby\n\n# For example, to use the 'status' parameter seen here: https://www.eventbrite.com/developer/v3/endpoints/events/#ebapi-id78\n\nuser = EventbriteSDK::User.retrieve(id: 163054428874)\nuser.owned_events.retrieve(query: { status: 'live' })\n\n```\n\n# Construct endpoint paths:\n\n``` ruby\n\nEventbriteSDK.token = \"TOKEN\"\n\n# access this endpoint www.eventbriteapi.com/v3/events/:id/ticket_classes/:id/\nticket = EventbriteSDK::TicketClass.retrieve(event_id: 20928651159, id: 43892783)\n\n```\n# Use expansions\n\n``` ruby\n\nEventbriteSDK.token = \"TOKEN\"\n\n# get an order with attendees expanded\n\norder = EventbriteSDK::Order.retrieve(id: id, expand: [:attendees])\n\n# include multiple expansions in one request\n\norder = EventbriteSDK::Order.retrieve(id: id, expand: [:attendees, :event])\n\n```\n\n# Per-request Configuration\n\nFor apps that need to use multiple tokens during the lifetime of a process, it is\npossible to set a per-request token:\n\n``` ruby\n\n# Retrieving\n\nEventbriteSDK::Order.retrieve(\n  id: id,\n  api_token: YOUR_REQUEST_TOKEN\n)\n\n# Retrieving lists\n\nevents = EventbriteSDK::User.me.owned_events.page(1, api_token: YOUR_REQUEST_TOKEN)\n\nevents.next_page(api_token: YOUR_REQUEST_TOKEN)\n\n# Saving/Deleting\n\nevent.save(api_token: YOUR_REQUEST_TOKEN)\n\norder.delete(api_token: YOUR_REQUEST_TOKEN)\n\n```\n\nIf you forget to provide the api_token key and `EventbriteSDK.token` is set, the request\nwill fall-back on the global token for the action called.\n\n# Shallow resource list endpoints\n\nSome paginated lists are available at the base of the resource url, webhooks and\ncategories for example. The resources that have this trait will include the `Operations::List` module\n\n``` ruby\n\n# Retrieving\n\ncategories = EventbriteSDK::Category.list.page(1) #=\u003e GET /v3/categories/?page=1\nwebhooks = EventbriteSDK::Webhook.list.page(1) #=\u003e GET /v3/webhooks/?page=1\n```\n\n## Development\n\nAfter checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.\n\nTo install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).\n\n\n## Contributing\n\nBug reports and pull requests are welcome on GitHub at https://github.com/eventbrite/eventbrite-sdk-ruby.\n\n\n## License\n\nThe gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feventbrite%2Feventbrite-sdk-ruby","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feventbrite%2Feventbrite-sdk-ruby","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feventbrite%2Feventbrite-sdk-ruby/lists"}