Motion-Tickspot
A RubyMotion wrapper for Tick's API that works on iOS and OS X.
WARNING
This gem is no longer being actively developed. Tick released V2 of their API, which was a step forward in being RESTful and using JSON instead of XML. Unfortunately it was a step backwards when it comes to usability. What was previously accomplished in a single API request now takes multiple requests. You can check out the api-v2 branch, but I'm not proud of it and I really don't like the new API.
Installation
Add this line to your application's Gemfile:
gem "motion-tickspot"And then execute:
$ bundleOr install it yourself as:
$ gem install motion-tickspotUsage
Authentication
Authentication is handled by Tick::Session with some convenience methods.
SSKeychain is being used to save the user's password to the iOS or OS X keychain.
Tick.logged_in? # true/false
Tick.log_in("company/subdomain", "email@example.com", "password") do |session|
  if session
    # Success!
  else
    # Failed to log in
  end
end
Tick.log_outTick::Client
Tick::Client.list do |clients|
  # Returns array of Tick::Clients
  # Raises Tick::AuthenticationError if not logged in
endTick::Entry
Tick::Entry.create({
  task_id: 1,
  hours: 2.5,
  date: "2008-03-17",
  notes: "She can't take much more of this Captain"
}) do |entry|
  # Returns the saved Tick::Entry
  # Raises Tick::AuthenticationError if not logged in
endTick::Entry.list do |entries|
  # Returns array of Tick::Entries
  # Raises Tick::AuthenticationError if not logged in
endTick::Project
Tick::Project.list do |projects|
  # Returns array of Tick::Projects
  # Raises Tick::AuthenticationError if not logged in
endTick::Session
Tick::Session.current
# Returns Tick::Session instance or nilTick::Task
Tick::Task.list do |tasks|
  # Returns array of Tick::Tasks
  # Raises Tick::AuthenticationError if not logged in
endContributing
- Fork it
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create new Pull Request