The Pinboard Ruby Gem
A Ruby wrapper for the Pinboard API.
Installation
gem install pinboard
Examples
I'm currently exploring two API interfaces:
pinboard = Pinboard::Client.new(:token => 'your_api_token')
posts = pinboard.posts
Your API token can be found on your settings/password page.
or:
posts = Pinboard::Post.all(:username => 'foo', :password => 'bar')
Both examples work.
Passing arguments: (works only for the Client API Interface)
pinboard.posts(:tag => 'ruby') #all posts tagged 'ruby'
pinboard.posts(:tag => 'ruby,pinboard') #all posts tagged 'ruby' and 'pinboard'
pinboard.posts(:start => 20) #starting on the 20th post
pinboard.posts(:results => 20) #return only first 20 matching posts
pinboard.posts(:fromdt => 4.days.ago) #all posts in past 4 days
pinboard.posts(:todt => 4.days.ago) #all posts up to 4 days ago
Adding new posts:
pinboard.add(:url => "http://example.com/", :description => 'Example post')
Future Examples (I don't need them, so I haven't written them)
pinboard.posts(:meta => true) #include meta data in post models
Ruby Support & Continuous Integration
I am using travis-ci.org for continuous integration and support of the following rubies in rvm:
- 1.9.3
- 2.0.0
- 2.1
- 2.2
- jruby
- ruby-head
Links
How to Contribute
If you find what looks like a bug:
- Check the GitHub issue tracker to see if anyone else has had the same issue.
- If you don’t see anything, create an issue with information on how to reproduce it.
If you want to contribute an enhancement or a fix:
- Fork the project on github.
- Make your changes with specs.
- Commit the changes without messing with the Rakefile, VERSION, or history.
- Send me a pull request.
TODO
- Throttle requests to one per second: http://datagraph.rubyforge.org/rack-throttle/
- If get 503 response, double the throttle to two seconds
License
See MIT-LICENSE for details.
Copyright (c) 2011 Ryan Walker.
Copyright (c) 2013-2016 Jan-Erik Rediger.