elefeely 0.0.1 → 0.0.2
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 +11 -4
- data/lib/elefeely/configurable.rb +7 -3
- data/lib/elefeely/version.rb +1 -1
- data/lib/elefeely.rb +6 -2
- data/spec/elefeely_spec.rb +40 -35
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6e500d5d500e43c80b90dc3310f61468befcbdef
|
4
|
+
data.tar.gz: 99ca2f6120def23bc97d37d4a486c49cd4a5fdf9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 33ff496a104a55c4004b5fcf6abf1bc6d57fbfff1809dd4a678ea1a7097824bf5a6b08bbaa782ee13794c815c3c33e489eaaad15f7275f50818a2153eba7dab0
|
7
|
+
data.tar.gz: ccafd1362dcf56432005f0e1c8ca0d37051493752adf6eba11dae4acce7209ff97dd8fd7ef590f20e5a7135a9856529f719951f45864b5b6ab61fc5b07330d99
|
data/README.md
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
[](https://codeclimate.com/github/raphweiner/elefeely)
|
2
|
+
|
3
|
+
|
1
4
|
# Elefeely
|
2
5
|
|
3
6
|
Elefeely keeps track of your feelings for you. This Ruby gem provides the (admin) interface to speak to the the Elefeely-api, and is integrated into the [elefeely-twilio-interface](http://github.com/raphweiner/elefeely-twilio-interface).
|
@@ -23,10 +26,8 @@ Or install it yourself as:
|
|
23
26
|
Configure the gem with:
|
24
27
|
|
25
28
|
```ruby
|
26
|
-
Elefeely.configure
|
27
|
-
|
28
|
-
config.source_secret = SOURCE_SECRET
|
29
|
-
end
|
29
|
+
Elefeely.configure(source_key: YOUR SOURCE KEY,
|
30
|
+
source_secret: YOUR SOURCE SECRET)
|
30
31
|
```
|
31
32
|
|
32
33
|
That's it! You're ready to talk to Elefeely.
|
@@ -52,6 +53,12 @@ Elefeely.send_feeling(feeling: { source_event_id: '124156', score: 4},
|
|
52
53
|
uid: '4151231234')
|
53
54
|
```
|
54
55
|
|
56
|
+
Unsubscribe a number:
|
57
|
+
|
58
|
+
```ruby
|
59
|
+
Elefeely.unsubscribe_number('0123456789')
|
60
|
+
```
|
61
|
+
|
55
62
|
## Contributing
|
56
63
|
|
57
64
|
1. Fork it
|
@@ -3,8 +3,9 @@ module Elefeely
|
|
3
3
|
attr_accessor :source_key,
|
4
4
|
:source_secret
|
5
5
|
|
6
|
-
def configure
|
7
|
-
|
6
|
+
def configure(params)
|
7
|
+
self.source_key = params[:source_key]
|
8
|
+
self.source_secret = params[:source_secret]
|
8
9
|
|
9
10
|
validate_credentials!
|
10
11
|
end
|
@@ -14,9 +15,12 @@ module Elefeely
|
|
14
15
|
def validate_credentials!
|
15
16
|
[source_key, source_secret].each do |credential|
|
16
17
|
if credential.nil? || !credential.is_a?(String)
|
17
|
-
raise
|
18
|
+
raise InvalidCredentials
|
18
19
|
end
|
19
20
|
end
|
20
21
|
end
|
22
|
+
|
21
23
|
end
|
22
24
|
end
|
25
|
+
|
26
|
+
class InvalidCredentials < RuntimeError; end
|
data/lib/elefeely/version.rb
CHANGED
data/lib/elefeely.rb
CHANGED
@@ -17,7 +17,11 @@ module Elefeely
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def self.verify_number(phone_number)
|
20
|
-
request(:put, update_phone_number_uri(phone_number))
|
20
|
+
request(:put, update_phone_number_uri(phone_number), body: {verified: true})
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.unsubscribe_number(phone_number)
|
24
|
+
request(:put, update_phone_number_uri(phone_number), body: {verified: false})
|
21
25
|
end
|
22
26
|
|
23
27
|
private
|
@@ -62,6 +66,6 @@ private
|
|
62
66
|
def self.signature(uri)
|
63
67
|
validate_credentials!
|
64
68
|
|
65
|
-
OpenSSL::HMAC.hexdigest(OpenSSL::Digest::Digest.new('
|
69
|
+
OpenSSL::HMAC.hexdigest(OpenSSL::Digest::Digest.new('sha512'), source_secret, uri)
|
66
70
|
end
|
67
71
|
end
|
data/spec/elefeely_spec.rb
CHANGED
@@ -4,10 +4,7 @@ describe Elefeely do
|
|
4
4
|
context 'with an valid credentials' do
|
5
5
|
it 'should be configurable' do
|
6
6
|
expect {
|
7
|
-
Elefeely.configure
|
8
|
-
config.source_key = '123'
|
9
|
-
config.source_secret = 'abc'
|
10
|
-
end
|
7
|
+
Elefeely.configure(source_key: '123', source_secret: 'abc')
|
11
8
|
}.to_not raise_error
|
12
9
|
end
|
13
10
|
end
|
@@ -15,24 +12,23 @@ describe Elefeely do
|
|
15
12
|
context 'with invalid credentials' do
|
16
13
|
it 'should raise argument error with no source_key' do
|
17
14
|
expect {
|
18
|
-
Elefeely.configure
|
19
|
-
|
20
|
-
config.source_secret = 'abc'
|
21
|
-
end
|
22
|
-
}.to raise_error ArgumentError
|
15
|
+
Elefeely.configure(source_key: nil, source_secret: 'abc')
|
16
|
+
}.to raise_error InvalidCredentials
|
23
17
|
end
|
24
18
|
|
25
19
|
it 'should raise argument error with no source_secret' do
|
26
20
|
expect {
|
27
|
-
Elefeely.configure
|
28
|
-
|
29
|
-
config.source_secret = nil
|
30
|
-
end
|
31
|
-
}.to raise_error ArgumentError
|
21
|
+
Elefeely.configure(source_key: '123', source_secret: nil)
|
22
|
+
}.to raise_error InvalidCredentials
|
32
23
|
end
|
33
24
|
end
|
34
25
|
|
35
26
|
describe '.phone_numbers' do
|
27
|
+
before(:all) do
|
28
|
+
response = OpenStruct.new(code: 200, body: ({'hello' => 'json'}).to_json)
|
29
|
+
Typhoeus.stub(/phones?/).and_return(response)
|
30
|
+
end
|
31
|
+
|
36
32
|
context 'with valid credentials' do
|
37
33
|
before(:each) do
|
38
34
|
Elefeely.stub(:source_key).and_return('123')
|
@@ -40,43 +36,33 @@ describe Elefeely do
|
|
40
36
|
end
|
41
37
|
|
42
38
|
it 'should return phone_numbers' do
|
43
|
-
response = OpenStruct.new(code: 200, body: ({'hello' => 'json'}).to_json)
|
44
|
-
Typhoeus.stub(/phones?/).and_return(response)
|
45
|
-
|
46
39
|
expect(Elefeely.phone_numbers).to eq ({'hello' => 'json'})
|
47
40
|
end
|
48
41
|
end
|
49
42
|
|
50
43
|
context 'without credentials' do
|
51
44
|
it 'should raise a type error' do
|
52
|
-
|
53
|
-
Typhoeus.stub(/phones?/).and_return(response)
|
54
|
-
|
55
|
-
expect { Elefeely.phone_numbers }.to raise_error ArgumentError
|
45
|
+
expect { Elefeely.phone_numbers }.to raise_error InvalidCredentials
|
56
46
|
end
|
57
47
|
end
|
58
48
|
end
|
59
49
|
|
60
50
|
describe '.send_feeling' do
|
61
51
|
context 'with valid credentials' do
|
62
|
-
before(:
|
52
|
+
before(:all) do
|
63
53
|
Elefeely.stub(source_key: '123', source_secret: '123')
|
64
|
-
end
|
65
|
-
|
66
|
-
it 'should return response' do
|
67
54
|
response = OpenStruct.new(code: 200, body: {'hello' => 'json'}.to_json)
|
68
55
|
Typhoeus.stub(/feelings?/).and_return(response)
|
56
|
+
end
|
69
57
|
|
58
|
+
it 'should return response' do
|
70
59
|
expect(Elefeely.send_feeling(hi: 'hi back')).to eq('hello' => 'json')
|
71
60
|
end
|
72
61
|
end
|
73
62
|
|
74
63
|
context 'without credentials' do
|
75
64
|
it 'should raise a type error' do
|
76
|
-
|
77
|
-
Typhoeus.stub(/feelings?/).and_return(response)
|
78
|
-
|
79
|
-
expect { Elefeely.send_feeling(hi: 'hi back') }.to raise_error ArgumentError
|
65
|
+
expect { Elefeely.send_feeling(hi: 'hi back') }.to raise_error InvalidCredentials
|
80
66
|
end
|
81
67
|
end
|
82
68
|
end
|
@@ -85,21 +71,40 @@ describe Elefeely do
|
|
85
71
|
context 'with valid credentials' do
|
86
72
|
before(:each) do
|
87
73
|
Elefeely.stub(source_key: '123', source_secret: '123')
|
74
|
+
response = OpenStruct.new(code: 200, body: {'hello' => 'json'}.to_json)
|
75
|
+
Typhoeus.stub(/phones/ => response)
|
88
76
|
end
|
89
77
|
|
90
|
-
context 'and
|
78
|
+
context 'and phone number' do
|
91
79
|
it 'should return a response' do
|
92
|
-
response = OpenStruct.new(code: 200, body: {'hello' => 'json'}.to_json)
|
93
|
-
Typhoeus.stub(/phones/ => response)
|
94
|
-
|
95
80
|
expect(Elefeely.verify_number('1234567890')).to eq('hello' => 'json')
|
96
81
|
end
|
97
82
|
end
|
83
|
+
|
84
|
+
context 'without a phone number' do
|
85
|
+
it 'should not raise an argument error' do
|
86
|
+
expect(Elefeely.verify_number(nil)).to_not raise_error InvalidCredentials
|
87
|
+
end
|
88
|
+
end
|
98
89
|
end
|
99
90
|
|
100
|
-
context '
|
91
|
+
context 'without credentials' do
|
101
92
|
it 'should raise argument error' do
|
102
|
-
expect { Elefeely.verify_number('1234567890') }.to raise_error
|
93
|
+
expect { Elefeely.verify_number('1234567890') }.to raise_error InvalidCredentials
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
describe '.unsubscribe_number' do
|
99
|
+
before(:each) do
|
100
|
+
Elefeely.stub(source_key: '123', source_secret: '123')
|
101
|
+
response = OpenStruct.new(code: 200, body: {'hello' => 'json'}.to_json)
|
102
|
+
Typhoeus.stub(/phones/ => response)
|
103
|
+
end
|
104
|
+
|
105
|
+
context 'with valid credentials' do
|
106
|
+
it 'should return a response' do
|
107
|
+
expect(Elefeely.unsubscribe_number('1234567890')).to eq('hello' => 'json')
|
103
108
|
end
|
104
109
|
end
|
105
110
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: elefeely
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Raphael Weiner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-06-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|