pinned 0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.gitignore ADDED
@@ -0,0 +1 @@
1
+ *.gem
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source :rubygems
2
+
3
+ gem 'rake'
4
+ gem 'httparty'
data/README.markdown ADDED
@@ -0,0 +1,20 @@
1
+ Pinned is a [Pinboard API (v1.0)](http://pinboard.in/api/) wrapper.
2
+
3
+ ## Installation
4
+
5
+ gem install pinned
6
+
7
+ ## Usage
8
+
9
+ ### Get all posts
10
+
11
+ require 'pinned'
12
+
13
+ pinned = Pinned.create(username, password)
14
+ pinned.all
15
+
16
+ ## Thanks
17
+ A big thanks to the originators of the script:
18
+
19
+ - SingAlong
20
+ - [adr-enal](https://github.com/adr-enal-in/pinboard-ruby)
data/Rakefile ADDED
@@ -0,0 +1,17 @@
1
+ require 'rake/testtask'
2
+
3
+ task :default => :test
4
+
5
+ Rake::TestTask.new(:test) do |t|
6
+ t.test_files = FileList['test/*_test.rb']
7
+ t.ruby_opts = ['-rubygems'] if defined? Gem
8
+ t.ruby_opts << '-I.'
9
+ end
10
+
11
+ task :build do
12
+ sh 'gem build pinned.gemspec'
13
+ end
14
+
15
+ task :install do
16
+ sh 'gem install pinned --local'
17
+ end
data/TODO.md ADDED
@@ -0,0 +1,4 @@
1
+ - license
2
+ - mock out requests in unit test (how do other api's do this?)
3
+ - rubify method names
4
+
@@ -0,0 +1,6 @@
1
+ require 'pinned'
2
+
3
+ config = YAML::load(File.read(File.join(ENV['HOME'], '.pinboard')))
4
+
5
+ n = Pinned.create(config['username'], config['password'])
6
+ n.all( :tag => 'books')
@@ -0,0 +1,75 @@
1
+ require 'rubygems'
2
+ require 'httparty'
3
+
4
+ class Pinned
5
+ include HTTParty
6
+
7
+ base_uri 'https://api.pinboard.in/v1'
8
+
9
+ class << self
10
+ def create(u, p)
11
+ Pinned.new(:username => u, :password => p)
12
+ end
13
+ end
14
+
15
+ def initialize(auth)
16
+ @auth = auth
17
+ end
18
+
19
+ def all(options={})
20
+ options.merge!({ :basic_auth => @auth })
21
+ self.class.get('/posts/all', options)
22
+ end
23
+
24
+ def posts(options={})
25
+ options.merge!({ :basic_auth => @auth })
26
+ self.class.get('/posts/get', options)
27
+ end
28
+
29
+ #####
30
+ # To look at
31
+ #####
32
+
33
+ def recentPosts(options={})
34
+ apiData = { :basic_auth=>@auth }
35
+ apiData.merge!(options)
36
+ self.class.get('/posts/recent', apiData)
37
+ end
38
+
39
+ def addPost(u, d, options={})
40
+ apiQuery = {:url=>u, :description=>d}.merge(options)
41
+ apiData = { :basic_auth=>@auth, :query=>apiQuery }
42
+ self.class.get('/posts/add', apiData)
43
+ end
44
+
45
+ def deletePost(url)
46
+ apiQuery = { :url=>url }
47
+ apiData = { :basic_auth=>@auth, :query=>apiQuery }
48
+ self.class.get('/posts/delete', apiData)
49
+ end
50
+
51
+ def getDates(tag='')
52
+ if(tag.strip.empty?)
53
+ apiData = { :basic_auth=>@auth, :query=>{:tag=>tag} }
54
+ else
55
+ apiData = { :basic_auth=>@auth }
56
+ end
57
+
58
+ self.class.get('/posts/delete', apiData)
59
+ end
60
+
61
+ def getHashes(options={})
62
+ apiData = { :basic_auth=>@auth, :query=>options }
63
+ self.class.get("/posts/all", apiData)
64
+ end
65
+
66
+ def suggestPosts(url='')
67
+ if(url.strip.empty?)
68
+ apiData = { :basic_auth=>@auth, :query=>{:url=>url} }
69
+ else
70
+ apiData = { :basic_auth=>@auth }
71
+ end
72
+
73
+ self.class.get('/posts/suggest', apiData)
74
+ end
75
+ end
@@ -0,0 +1,3 @@
1
+ module Pinned
2
+ VERSION = '0.1'
3
+ end
data/lib/pinned.rb ADDED
@@ -0,0 +1,4 @@
1
+ libdir = File.dirname(__FILE__)
2
+ $LOAD_PATH.unshift(libdir) unless $LOAD_PATH.include?(libdir)
3
+
4
+ require 'pinned/base'
data/pinned.gemspec ADDED
@@ -0,0 +1,13 @@
1
+ $LOAD_PATH.unshift File.expand_path('../lib', __FILE__)
2
+ require 'pinned/version'
3
+
4
+ Gem::Specification.new 'pinned', Pinned::VERSION do |n|
5
+ n.description = "Pinned is an API wrapper for the Pinboard.in service by Maciej Ceglowski"
6
+ n.summary = "Easy access to the pinboard api."
7
+ n.date = "2011-10-01"
8
+ n.authors = ["Gavin Miller"]
9
+ n.email = "gavin@randomtype.ca"
10
+ n.files = `git ls-files`.split("\n")
11
+ n.homepage = "http://randomtype.ca/projects/pinned/"
12
+ end
13
+
data/test/base_test.rb ADDED
@@ -0,0 +1,20 @@
1
+ require File.expand_path('../helper', __FILE__)
2
+
3
+ class BaseTest < Test::Unit::TestCase
4
+ def setup
5
+ config = YAML::load(File.read(File.join(ENV['HOME'], '.pinboard')))
6
+ @pinned = Pinned.create(config['username'], config['password'])
7
+ end
8
+
9
+ def test_default
10
+ assert true
11
+ end
12
+
13
+ def test_posts
14
+ # p @pinned.posts
15
+ end
16
+
17
+ def test_all
18
+ p @pinned.all
19
+ end
20
+ end
data/test/helper.rb ADDED
@@ -0,0 +1,3 @@
1
+ require 'test/unit'
2
+
3
+ require 'pinned/base'
metadata ADDED
@@ -0,0 +1,56 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: pinned
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.1'
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Gavin Miller
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-10-01 00:00:00.000000000Z
13
+ dependencies: []
14
+ description: Pinned is an API wrapper for the Pinboard.in service by Maciej Ceglowski
15
+ email: gavin@randomtype.ca
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - .gitignore
21
+ - Gemfile
22
+ - README.markdown
23
+ - Rakefile
24
+ - TODO.md
25
+ - example/get_by_tag.rb
26
+ - lib/pinned.rb
27
+ - lib/pinned/base.rb
28
+ - lib/pinned/version.rb
29
+ - pinned.gemspec
30
+ - test/base_test.rb
31
+ - test/helper.rb
32
+ homepage: http://randomtype.ca/projects/pinned/
33
+ licenses: []
34
+ post_install_message:
35
+ rdoc_options: []
36
+ require_paths:
37
+ - lib
38
+ required_ruby_version: !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ required_rubygems_version: !ruby/object:Gem::Requirement
45
+ none: false
46
+ requirements:
47
+ - - ! '>='
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
50
+ requirements: []
51
+ rubyforge_project:
52
+ rubygems_version: 1.8.10
53
+ signing_key:
54
+ specification_version: 3
55
+ summary: Easy access to the pinboard api.
56
+ test_files: []