feedbin 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 861e3a51b3187562bb99ea216ced66d9495f6f52
4
- data.tar.gz: d0bc0eae892a7bc3833130cc231c119812666ade
5
- SHA512:
6
- metadata.gz: 3f0b2b497988ff947e8e345f46cd98cd76d4fe762a907c3f8606c4182114684909a0afb8500a65ebbebd540740a5efd7f28d6248ea2b2a5fed1415b1f274492f
7
- data.tar.gz: 9c76e98204dd79e23728995deee2d732d76dfd347db838324208dabee5c4495036d616b5a4fe3e709172e373c017a21506dd400052eb2f6f96be2e31130f3bbf
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ NzAwODFmMzhiYTAwZDFmMmM4M2I4MGIyZGVkZTlhYjAyMDA3YmY2OQ==
5
+ data.tar.gz: !binary |-
6
+ NzQ2ZjYzNmQ3ZTlhMmI0OGNmOGIxY2QzM2NmZDU2NTM0YWU5MzI2Mg==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ YmZmYmMwMjA3ZWM5ZWRiOTUzZDJkNDgzMzI2YmY4NDkwMWEwMWY0MjM5ZDI1
10
+ YjRkNDdlYzI0ODBjMGQ2NGM1ZWRjYzk4NGVmNDAwMmI0NzcxMWM1MjFkOTk1
11
+ NWJlMjYxNGRmZjE3MGE5OGMxMjdlYjk5NTQ3NzVhZGRmMjM5Y2U=
12
+ data.tar.gz: !binary |-
13
+ NGZiYjhjYTNiZTRjMDg2ZmFhYzY2ZjgzZmRkOTA0ZTRiMmQxYWVkMDRkNTA4
14
+ YjgxZTNlNTNkNzQ5MWIyMTVlMTZiMDJjODVmMDM0Zjk4N2QxZTc4YmE0ODZl
15
+ ZjIxZjNmMDNiMjEzN2M4ZDY5OTM5MzA4YjQ0ZGY1M2E5NzczZjA=
data/.gitignore CHANGED
File without changes
@@ -0,0 +1,3 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
data/Gemfile CHANGED
@@ -1,4 +1,7 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- # Specify your gem's dependencies in feedbin.gemspec
4
- gemspec
3
+ gemspec
4
+
5
+ group :test do
6
+ gem "webmock"
7
+ end
@@ -1,4 +1,4 @@
1
- Copyright (c) 2013 TODO: Write your name
1
+ Copyright (c) 2013 Colby Aley
2
2
 
3
3
  MIT License
4
4
 
data/README.md CHANGED
@@ -1,4 +1,5 @@
1
- # Feedbin
1
+ Feedbin [![Build Status](https://travis-ci.org/ColbyAley/feedbin.png?branch=master)](https://travis-ci.org/ColbyAley/feedbin)
2
+ ===
2
3
 
3
4
  A simple Ruby wrapper for v2 of the [Feedbin.me](http://feedbin.me) REST [API](https://github.com/feedbin/feedbin-api). Includes functionality for retrieving entries and subscribing to feeds.
4
5
 
@@ -21,7 +22,7 @@ Or install it yourself as:
21
22
  ## Usage
22
23
 
23
24
  ### Examples
24
- @feedbin = Feedbin::API.new('colby@aley.me','pa$$w0rd')
25
+ @feedbin = FeedbinAPI.new('colby@aley.me','pa$$w0rd')
25
26
 
26
27
  @feedbin.entries
27
28
  # => (array of entry hashes)
@@ -51,27 +52,24 @@ Or install it yourself as:
51
52
  require 'sinatra'
52
53
  require 'feedbin'
53
54
 
54
- @@feedbin = Feedbin::API.new('colby@aley.me','pa$$w0rd')
55
+ FEEDBIN = FeedbinAPI.new('colby@aley.me','pa$$w0rd')
55
56
 
56
57
  get '/' do
57
- @@feedbin.entries
58
+ FEEDBIN.entries
58
59
  end
59
60
 
60
61
  get '/subscribe/:url' do
61
- @@feedbin.subscribe(url.to_s)
62
+ FEEDBIN.subscribe(url.to_s)
62
63
  end
63
64
 
64
65
  ...you get the picture.
65
66
 
66
67
  ## Todo
67
68
  - Move away from HTTParty because of it's massive overhead.
68
- - Ensure that tests do not mess with tester's Feedbin account.
69
69
 
70
70
  ## Testing
71
71
 
72
- Rspec is used for tests. You will need to pass in your Feedbin email and password to run the tests.
73
-
74
- `$ EMAIL=email@me.com PASSWORD=pa$$w0rd rspec`
72
+ Rspec is used for tests. WebMock is used to avoid touching the live Feedbin API.
75
73
 
76
74
  Please add tests when contrinuting, and make sure that they all pass before submitting a PR.
77
75
 
data/Rakefile CHANGED
@@ -1 +1,7 @@
1
1
  require "bundler/gem_tasks"
2
+
3
+ task :default => [:spec]
4
+ desc 'run Rspec specs'
5
+ task :spec do
6
+ sh 'rspec'
7
+ end
@@ -22,4 +22,4 @@ Gem::Specification.new do |spec|
22
22
  spec.add_development_dependency "rake"
23
23
  spec.add_development_dependency "rspec"
24
24
  spec.add_runtime_dependency "httparty"
25
- end
25
+ end
@@ -2,48 +2,46 @@ require 'feedbin/version'
2
2
  require 'httparty'
3
3
  require 'json'
4
4
 
5
- module Feedbin
6
- class API
7
- attr_accessor :email, :password
8
- def initialize(email, password)
9
- @email, @password = email, password
10
- end
11
-
12
- def entries
13
- HTTParty.get("https://api.feedbin.me/v2/entries.json", basic_auth: { username: @email, password: @password })
14
- end
15
-
16
- def entry(id)
17
- HTTParty.get("https://api.feedbin.me/v2/entries/#{id}.json", basic_auth: { username: @email, password: @password })
18
- end
19
-
20
- def unread_entries
21
- HTTParty.get("https://api.feedbin.me/v2/unread_entries.json", basic_auth: { username: @email, password: @password })
22
- end
23
-
24
- def mark_as_read(id)
25
- HTTParty.post("https://api.feedbin.me/v2/unread_entries/delete.json",
26
- body: { 'unread_entries' => id }.to_json,
27
- headers: { 'Content-Type' => 'application/json' },
28
- basic_auth: { username: @email, password: @password })
29
- end
5
+ class FeedbinAPI
6
+ attr_accessor :email, :password
7
+ def initialize(email, password)
8
+ @email, @password = email, password
9
+ end
10
+
11
+ def entries
12
+ HTTParty.get("https://api.feedbin.me/v2/entries.json", basic_auth: { username: @email, password: @password })
13
+ end
14
+
15
+ def entry(id)
16
+ HTTParty.get("https://api.feedbin.me/v2/entries/#{id}.json", basic_auth: { username: @email, password: @password })
17
+ end
30
18
 
31
- def mark_as_unread(id)
32
- HTTParty.post("https://api.feedbin.me/v2/unread_entries.json",
33
- body: { 'unread_entries' => id }.to_json,
19
+ def unread_entries
20
+ HTTParty.get("https://api.feedbin.me/v2/unread_entries.json", basic_auth: { username: @email, password: @password })
21
+ end
22
+
23
+ def mark_as_read(id)
24
+ HTTParty.post("https://api.feedbin.me/v2/unread_entries/delete.json",
25
+ body: { 'unread_entries' => id }.to_json,
26
+ headers: { 'Content-Type' => 'application/json' },
27
+ basic_auth: { username: @email, password: @password })
28
+ end
29
+
30
+ def mark_as_unread(id)
31
+ HTTParty.post("https://api.feedbin.me/v2/unread_entries.json",
32
+ body: { 'unread_entries' => id }.to_json,
33
+ headers: { 'Content-Type' => 'application/json' },
34
+ basic_auth: { username: @email, password: @password })
35
+ end
36
+
37
+ def subscribe(url)
38
+ HTTParty.post("https://api.feedbin.me/v2/subscriptions.json",
39
+ body: { 'feed_url' => url }.to_json,
34
40
  headers: { 'Content-Type' => 'application/json' },
35
41
  basic_auth: { username: @email, password: @password })
36
- end
37
-
38
- def subscribe(url)
39
- HTTParty.post("https://api.feedbin.me/v2/subscriptions.json",
40
- body: { 'feed_url' => url }.to_json,
41
- headers: { 'Content-Type' => 'application/json' },
42
- basic_auth: { username: @email, password: @password })
43
- end
44
-
45
- def subscriptions
46
- HTTParty.get("https://api.feedbin.me/v2/subscriptions.json", basic_auth: { username: @email, password: @password })
47
- end
42
+ end
43
+
44
+ def subscriptions
45
+ HTTParty.get("https://api.feedbin.me/v2/subscriptions.json", basic_auth: { username: @email, password: @password })
48
46
  end
49
47
  end
@@ -1,3 +1,3 @@
1
1
  module Feedbin
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ describe FeedbinAPI do
4
+
5
+ before do
6
+ @feedbin = FeedbinAPI.new(ENV["EMAIL"], ENV["PASSWORD"])
7
+ end
8
+
9
+ describe '.entries' do
10
+ it 'should return a 200' do
11
+ stub_request(:get, "https://#{ENV["EMAIL"]}:#{ENV["PASSWORD"]}@api.feedbin.me/v2/entries.json").to_return(status: 200)
12
+ @feedbin.entries.code.should == 200
13
+ end
14
+ end
15
+
16
+ describe '.subscriptions' do
17
+ it 'should return 201' do
18
+ stub_request(:get, "https://#{ENV["EMAIL"]}:#{ENV["PASSWORD"]}@api.feedbin.me/v2/subscriptions.json").to_return(status: 200)
19
+ @feedbin.subscriptions.code.should == 200
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,12 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+ require 'webmock/rspec'
4
+
5
+ require 'feedbin'
6
+
7
+ ENV['EMAIL'] ||= 'email@email.com'
8
+ ENV['PASSWORD'] ||= 'pa$$word'
9
+
10
+ RSpec.configure do |c|
11
+ c.include(WebMock::API)
12
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: feedbin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Colby Aley
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-15 00:00:00.000000000 Z
11
+ date: 2013-08-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -28,42 +28,42 @@ dependencies:
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ! '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ! '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ! '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ! '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: httparty
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ! '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  description: A Ruby wrapper for the Feedbin API
@@ -73,6 +73,7 @@ extensions: []
73
73
  extra_rdoc_files: []
74
74
  files:
75
75
  - .gitignore
76
+ - .travis.yml
76
77
  - Gemfile
77
78
  - LICENSE.txt
78
79
  - README.md
@@ -80,6 +81,8 @@ files:
80
81
  - feedbin.gemspec
81
82
  - lib/feedbin.rb
82
83
  - lib/feedbin/version.rb
84
+ - spec/feedbin_spec.rb
85
+ - spec/spec_helper.rb
83
86
  homepage: https://github.com/ColbyAley/feedbin
84
87
  licenses:
85
88
  - MIT
@@ -90,18 +93,20 @@ require_paths:
90
93
  - lib
91
94
  required_ruby_version: !ruby/object:Gem::Requirement
92
95
  requirements:
93
- - - '>='
96
+ - - ! '>='
94
97
  - !ruby/object:Gem::Version
95
98
  version: '0'
96
99
  required_rubygems_version: !ruby/object:Gem::Requirement
97
100
  requirements:
98
- - - '>='
101
+ - - ! '>='
99
102
  - !ruby/object:Gem::Version
100
103
  version: '0'
101
104
  requirements: []
102
105
  rubyforge_project:
103
- rubygems_version: 2.0.3
106
+ rubygems_version: 2.0.6
104
107
  signing_key:
105
108
  specification_version: 4
106
109
  summary: Ruby wrapper for the Feedbin API
107
- test_files: []
110
+ test_files:
111
+ - spec/feedbin_spec.rb
112
+ - spec/spec_helper.rb