kreepr 0.0.2 → 0.0.3
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.
- checksums.yaml +4 -4
- data/README.md +6 -8
- data/lib/kreepr.rb +16 -4
- data/lib/kreepr/version.rb +1 -1
- data/spec/kreepr_spec.rb +11 -43
- metadata +2 -3
- data/lib/kreepr/configurable.rb +0 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6f32ac3a9da64926d4637511ee31716061427b03
|
4
|
+
data.tar.gz: 3f06d58e00cb60f3e6dda69c35bd8b48dee8267a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c15a4140afd1f1afa4574b040578cb21e070176224cb6cdbe12fd76a2fca4ad8a5e4fb2b6a72215118ecc5cb4b903b37010d09d15191bf74024dd1cc7a7d6915
|
7
|
+
data.tar.gz: 911daa55d7b23091c9ce8f1ed8f3537f6cb99d633da21ddfe3f3002972fa55cd1e85f0b3f60ac68e1b9a3054be6623eba1faddf27be3b2f3979d5571178173a0
|
data/README.md
CHANGED
@@ -28,12 +28,10 @@ Let's get Kreeping!
|
|
28
28
|
|
29
29
|
First, you'll need to [create a Kreepr account](http://kreepr.com/), then navigate to your [account page](http://kreepr.com/account) to retrieve your API key.
|
30
30
|
|
31
|
-
Once you have your key, configure the gem by setting your API key as such
|
31
|
+
Once you have your key, configure the gem by setting your API key as such:
|
32
32
|
|
33
33
|
```ruby
|
34
|
-
Kreepr.
|
35
|
-
config.api_key = YOUR_API_KEY
|
36
|
-
end
|
34
|
+
client = Kreepr::Client.new(:api_key => <your api key>)
|
37
35
|
```
|
38
36
|
|
39
37
|
That's it! You're ready to talk to Feed Engine.
|
@@ -43,19 +41,19 @@ That's it! You're ready to talk to Feed Engine.
|
|
43
41
|
Retrieve feed items for a specific trip (trip must be public, or you must have permissions to view it):
|
44
42
|
|
45
43
|
```ruby
|
46
|
-
|
44
|
+
client.feed(:username => <username>, :trip_id => <trip id>)
|
47
45
|
```
|
48
46
|
|
49
47
|
Retrieve only notes posted from Kreepr:
|
50
48
|
|
51
49
|
```ruby
|
52
|
-
|
50
|
+
client.feed(:username => <username>, :trip_id => <trip id>, :only => :text)
|
53
51
|
```
|
54
52
|
|
55
|
-
Publish a text feed item given the appropriate arguments, via POST
|
53
|
+
Publish a text feed item given the appropriate arguments, via POST. (Next version)
|
56
54
|
|
57
55
|
```ruby
|
58
|
-
|
56
|
+
client.post_note(:username => <username>, :trip_id => <trip id>, :text => <text>)
|
59
57
|
```
|
60
58
|
|
61
59
|
### Contributing
|
data/lib/kreepr.rb
CHANGED
@@ -3,11 +3,15 @@ require "faraday"
|
|
3
3
|
require "openssl"
|
4
4
|
|
5
5
|
require "kreepr/version"
|
6
|
-
require "kreepr/configurable"
|
7
6
|
|
8
7
|
module Kreepr
|
9
|
-
class
|
10
|
-
|
8
|
+
class Client
|
9
|
+
attr_reader :api_key
|
10
|
+
|
11
|
+
def initialize(params)
|
12
|
+
@api_key = params[:api_key]
|
13
|
+
validate_api_key!(@api_key)
|
14
|
+
end
|
11
15
|
|
12
16
|
def feed(params, timeout = 10)
|
13
17
|
validate_params!(params)
|
@@ -19,7 +23,15 @@ module Kreepr
|
|
19
23
|
JSON.parse(response.body)
|
20
24
|
end
|
21
25
|
|
22
|
-
|
26
|
+
private
|
27
|
+
|
28
|
+
def validate_api_key!(api_key)
|
29
|
+
if !api_key.nil?
|
30
|
+
unless api_key.is_a?(String) || api_key.is_a?(Symbol)
|
31
|
+
raise ArgumentError, "Invalid api_key specified: #{api_key} must be a string or symbol."
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
23
35
|
|
24
36
|
def validate_params!(params)
|
25
37
|
unless params[:trip_id].is_a?(String) && params[:username].is_a?(String)
|
data/lib/kreepr/version.rb
CHANGED
data/spec/kreepr_spec.rb
CHANGED
@@ -1,23 +1,19 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Kreepr do
|
4
|
+
subject do
|
5
|
+
Kreepr::Client.new(:api_key => '123')
|
6
|
+
end
|
7
|
+
|
4
8
|
context 'with an api_key of valid type' do
|
5
9
|
it 'should be configurable' do
|
6
|
-
|
7
|
-
config.api_key = "abc_123"
|
8
|
-
end
|
9
|
-
|
10
|
-
expect(Kreepr.api_key).to eq 'abc_123'
|
10
|
+
expect(subject.api_key).to eq '123'
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
14
|
context 'with an api_key of invalid type' do
|
15
15
|
it 'should raise an argument error' do
|
16
|
-
expect {
|
17
|
-
Kreepr.configure do |config|
|
18
|
-
config.api_key = {"abc_123" => :hello}
|
19
|
-
end
|
20
|
-
}.to raise_error ArgumentError
|
16
|
+
expect { Kreepr::Client.new(12345) }.to raise_error TypeError
|
21
17
|
end
|
22
18
|
end
|
23
19
|
|
@@ -27,55 +23,27 @@ describe Kreepr do
|
|
27
23
|
context 'with invalid input' do
|
28
24
|
it 'should raise an argument error without a username' do
|
29
25
|
params[:username] = nil
|
30
|
-
expect {
|
26
|
+
expect { subject.feed(params) }.to raise_error ArgumentError
|
31
27
|
end
|
32
28
|
|
33
29
|
it 'should raise an argument error with an invalid username type' do
|
34
30
|
params[:username] = 1234
|
35
|
-
expect {
|
31
|
+
expect { subject.feed(params) }.to raise_error ArgumentError
|
36
32
|
end
|
37
33
|
|
38
34
|
it 'should raise an argument error without a trip_id' do
|
39
35
|
params[:trip_id] = nil
|
40
|
-
expect {
|
36
|
+
expect { subject.feed(params) }.to raise_error ArgumentError
|
41
37
|
end
|
42
38
|
|
43
39
|
it 'should raise an argument error with an invalid trip_id type' do
|
44
40
|
params[:trip_id] = 1234
|
45
|
-
expect {
|
41
|
+
expect { subject.feed(params) }.to raise_error ArgumentError
|
46
42
|
end
|
47
43
|
|
48
44
|
it 'does not raise an error without a :text_only flag' do
|
49
45
|
params.delete(:text_only)
|
50
|
-
expect {
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
context 'with valid input' do
|
55
|
-
context 'but invalid or missing api_key' do
|
56
|
-
let(:bad_auth_response) do
|
57
|
-
JSON.parse('{ "errors": [ { "message":"Bad Authentication data","code":215 } ] }')
|
58
|
-
end
|
59
|
-
|
60
|
-
it 'receives an bad authentication error' do
|
61
|
-
expect(Kreepr.feed(params)).to eq bad_auth_response
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
context 'with a valid api_key' do
|
66
|
-
let(:params) { {:username => 'ebdrummond', :trip_id => '1', :text_only => true} }
|
67
|
-
|
68
|
-
context 'to a public trip' do
|
69
|
-
it 'returns the feed'
|
70
|
-
end
|
71
|
-
|
72
|
-
context 'to a private trip I have access to' do
|
73
|
-
it 'returns the feed'
|
74
|
-
end
|
75
|
-
|
76
|
-
context 'to a private trip I do not have access to' do
|
77
|
-
it 'raises an error'
|
78
|
-
end
|
46
|
+
expect { subject.feed(params) }.to_not raise_error ArgumentError
|
79
47
|
end
|
80
48
|
end
|
81
49
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kreepr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Raphael Weiner, Erin Drummond, Kyle Suss, Phil Battos
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-05-
|
11
|
+
date: 2013-05-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -52,7 +52,6 @@ files:
|
|
52
52
|
- Rakefile
|
53
53
|
- kreepr.gemspec
|
54
54
|
- lib/kreepr.rb
|
55
|
-
- lib/kreepr/configurable.rb
|
56
55
|
- lib/kreepr/version.rb
|
57
56
|
- spec/kreepr_spec.rb
|
58
57
|
- spec/spec_helper.rb
|
data/lib/kreepr/configurable.rb
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
module Kreepr
|
2
|
-
module Configurable
|
3
|
-
attr_accessor :api_key
|
4
|
-
|
5
|
-
def configure
|
6
|
-
yield self
|
7
|
-
validate_key_type!
|
8
|
-
end
|
9
|
-
|
10
|
-
private
|
11
|
-
|
12
|
-
def validate_key_type!
|
13
|
-
if !api_key.nil?
|
14
|
-
unless api_key.is_a?(String) || api_key.is_a?(Symbol)
|
15
|
-
raise ArgumentError, "Invalid api_key specified: #{api_key} must be a string or symbol."
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|