Tredo is a gem that acts a seam to some TODO list provider (think Trello, TODOist, RememberTheMilk). At present it currently supports Trello and as more providers are supported, so to will the facade mature.
- The intent is that the gem would act as seam (for replacement, microservice etc).
- It also aims to affirm the business domain language (create_todo and todo_list) by keeping it consistent through it's main interface (Tredo.class).
- It also aims to mask the complexity of different providers in implementation and language.
- Lastly it also tries to be agnostic to REST Provider by leveraging off the Provider model pattern allowing you to leverage rest-client, faraday or http party.
- The intended use case for Tredo is as a gem in a Component Based Rails Application (engine).
Status: Published to RubyGems 🧨
Add this line to your application's Gemfile:
gem 'tredo'
And then execute:
$ bundle install
Or install it yourself as:
$ gem install tredo
export PROVIDER_KEY=<trello-api-key>
export PROVIDER_TOKEN=<trello-api-token>
# irb -Ilib -rtredo
irb(main):001:0> Tredo.todo_lists
=> "{\"status\":\"success\",\"data\":{\"result\":\"[{\\\"id\\\":\\\"61af9e0503811b04f6771d01\\\",\\\"name\\\":\\\"To Do\\\",\\\"closed\\\":false,\\\"pos\\\":16384,\\\"softLimit\\\":null,\\\"idBoard\\\":\\\"61af9e0503811b04f6771d00\\\",\\\"subscribed\\\":false},{\\\"id\\\":\\\"61af9e0503811b04f6771d02\\\",\\\"name\\\":\\\"Doing\\\",\\\"closed\\\":false,\\\"pos\\\":32768,\\\"softLimit\\\":null,\\\"idBoard\\\":\\\"61af9e0503811b04f6771d00\\\",\\\"subscribed\\\":false}]\"}}"
irb(main):002:0> Tredo.create_todo("TODO For ME")
=> "{\"status\":\"success\",\"data\":{\"result\":\"{\\\"id\\\":\\\"61b10b7485298e285d4a5e65\\\",\\\"checkItemStates\\\":[],\\\"closed\\\":false,\\\"dateLastActivity\\\":\\\"2021-12-08T19:45:56.916Z\\\",\\\"desc\\\":\\\"\\\",\\\"descData\\\":{\\\"emoji\\\":{}},\\\"dueReminder\\\":null,\\\"idBoard\\\":\\\"61af9e0503811b04f6771d00\\\",\\\"idList\\\":\\\"61af9e0503811b04f6771d01\\\",\\\"idMembersVoted\\\":[],\\\"idShort\\\":15,\\\"idAttachmentCover\\\":null,\\\"idLabels\\\":[],\\\"manualCoverAttachment\\\":false,\\\"name\\\":\\\"TODO For ME\\\",\\\"pos\\\":278527,\\\"shortLink\\\":\\\"jp2WgYtN\\\",\\\"isTemplate\\\":false,\\\"cardRole\\\":null,\\\"dueComplete\\\":false,\\\"due\\\":null,\\\"email\\\":null,\\\"labels\\\":[],\\\"shortUrl\\\":\\\"https://trello.com/c/jp2WgYtN\\\",\\\"start\\\":null,\\\"url\\\":\\\"https://trello.com/c/jp2WgYtN/15-todo-for-me\\\",\\\"cover\\\":{\\\"idAttachment\\\":null,\\\"color\\\":null,\\\"idUploadedBackground\\\":null,\\\"size\\\":\\\"normal\\\",\\\"brightness\\\":\\\"dark\\\",\\\"idPlugin\\\":null},\\\"idMembers\\\":[],\\\"attachments\\\":[],\\\"badges\\\":{\\\"attachmentsByType\\\":{\\\"trello\\\":{\\\"board\\\":0,\\\"card\\\":0}},\\\"location\\\":false,\\\"votes\\\":0,\\\"viewingMemberVoted\\\":false,\\\"subscribed\\\":false,\\\"fogbugz\\\":\\\"\\\",\\\"checkItems\\\":0,\\\"checkItemsChecked\\\":0,\\\"checkItemsEarliestDue\\\":null,\\\"comments\\\":0,\\\"attachments\\\":0,\\\"description\\\":false,\\\"due\\\":null,\\\"dueComplete\\\":false,\\\"start\\\":null},\\\"subscribed\\\":false,\\\"stickers\\\":[],\\\"idChecklists\\\":[],\\\"limits\\\":{}}\"}}"
All responses back from the library are in Jsender JSON format.
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/tredo. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.
The gem is available as open source under the terms of the MIT License.
Everyone interacting in the Tredo project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.