neighborparrot 0.3.3 → 0.3.4
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/Gemfile +6 -3
- data/Gemfile.lock +29 -14
- data/VERSION +1 -1
- data/lib/neighborparrot.rb +1 -0
- data/lib/neighborparrot/auth.rb +21 -0
- data/lib/neighborparrot/config.rb +6 -5
- data/lib/neighborparrot/open.rb +4 -3
- data/lib/neighborparrot/reactor.rb +10 -7
- data/lib/neighborparrot/send.rb +15 -9
- data/neighborparrot.gemspec +22 -12
- data/spec/integration/neighborparrot_spec.rb +11 -10
- data/spec/spec_helper.rb +3 -1
- metadata +57 -23
data/Gemfile
CHANGED
@@ -3,12 +3,15 @@ source "http://rubygems.org"
|
|
3
3
|
gem 'eventmachine'
|
4
4
|
gem 'em-http-request'
|
5
5
|
gem 'em-eventsource'
|
6
|
+
gem 'bson_ext'
|
7
|
+
gem 'ruby-hmac'
|
8
|
+
gem 'signature'
|
6
9
|
|
7
10
|
group :development do
|
8
|
-
gem "rspec"
|
9
|
-
gem "bundler"
|
11
|
+
gem "rspec"
|
12
|
+
gem "bundler"
|
10
13
|
gem "jeweler", "~> 1.6.4"
|
11
|
-
gem "
|
14
|
+
gem "simplecov"
|
12
15
|
end
|
13
16
|
|
14
17
|
|
data/Gemfile.lock
CHANGED
@@ -2,15 +2,20 @@ GEM
|
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
4
|
addressable (2.2.6)
|
5
|
+
bson (1.5.2)
|
6
|
+
bson_ext (1.5.2)
|
7
|
+
bson (= 1.5.2)
|
8
|
+
cookiejar (0.3.0)
|
5
9
|
diff-lcs (1.1.3)
|
6
10
|
em-eventsource (0.1.5)
|
7
11
|
em-http-request (~> 1.0.0)
|
8
12
|
eventmachine (~> 1.0.0.beta3)
|
9
|
-
em-http-request (1.0.
|
13
|
+
em-http-request (1.0.1)
|
10
14
|
addressable (>= 2.2.3)
|
15
|
+
cookiejar
|
11
16
|
em-socksify
|
12
|
-
eventmachine (>= 1.0.0.beta.
|
13
|
-
http_parser.rb (>= 0.5.
|
17
|
+
eventmachine (>= 1.0.0.beta.4)
|
18
|
+
http_parser.rb (>= 0.5.3)
|
14
19
|
em-socksify (0.1.0)
|
15
20
|
eventmachine
|
16
21
|
eventmachine (1.0.0.beta.4)
|
@@ -23,26 +28,36 @@ GEM
|
|
23
28
|
bundler (~> 1.0)
|
24
29
|
git (>= 1.2.5)
|
25
30
|
rake
|
31
|
+
multi_json (1.0.4)
|
26
32
|
rake (0.9.2.2)
|
27
|
-
|
28
|
-
|
29
|
-
rspec-
|
30
|
-
rspec-
|
31
|
-
|
32
|
-
rspec-
|
33
|
-
rspec-expectations (2.3.0)
|
33
|
+
rspec (2.8.0)
|
34
|
+
rspec-core (~> 2.8.0)
|
35
|
+
rspec-expectations (~> 2.8.0)
|
36
|
+
rspec-mocks (~> 2.8.0)
|
37
|
+
rspec-core (2.8.0)
|
38
|
+
rspec-expectations (2.8.0)
|
34
39
|
diff-lcs (~> 1.1.2)
|
35
|
-
rspec-mocks (2.
|
40
|
+
rspec-mocks (2.8.0)
|
41
|
+
ruby-hmac (0.4.0)
|
42
|
+
signature (0.1.2)
|
43
|
+
ruby-hmac
|
44
|
+
simplecov (0.5.4)
|
45
|
+
multi_json (~> 1.0.3)
|
46
|
+
simplecov-html (~> 0.5.3)
|
47
|
+
simplecov-html (0.5.3)
|
36
48
|
|
37
49
|
PLATFORMS
|
38
50
|
ruby
|
39
51
|
|
40
52
|
DEPENDENCIES
|
41
|
-
|
53
|
+
bson_ext
|
54
|
+
bundler
|
42
55
|
em-eventsource
|
43
56
|
em-http-request
|
44
57
|
eventmachine
|
45
58
|
faker
|
46
59
|
jeweler (~> 1.6.4)
|
47
|
-
|
48
|
-
|
60
|
+
rspec
|
61
|
+
ruby-hmac
|
62
|
+
signature
|
63
|
+
simplecov
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.4
|
data/lib/neighborparrot.rb
CHANGED
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'hmac-sha2'
|
2
|
+
require 'signature'
|
3
|
+
|
4
|
+
module Neighborparrot
|
5
|
+
def self.sign_connect_request(query, params={})
|
6
|
+
endpoint = query[:service] == 'es' ? '/open' : '/ws'
|
7
|
+
sign_request('GET', endpoint, query, params)
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.sign_send_request(body, params={})
|
11
|
+
sign_request('POST', '/send',body, params)
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.sign_request(method, path, request, params={})
|
15
|
+
params = Neighborparrot.configuration.merge params
|
16
|
+
token = Signature::Token.new(params[:api_id], params[:api_key])
|
17
|
+
sign_request = Signature::Request.new(method, path, request)
|
18
|
+
auth_hash = sign_request.sign(token)
|
19
|
+
request.merge(auth_hash)
|
20
|
+
end
|
21
|
+
end
|
@@ -38,14 +38,15 @@ module Neighborparrot
|
|
38
38
|
end
|
39
39
|
|
40
40
|
|
41
|
-
#
|
41
|
+
# Check mandatory parameters
|
42
42
|
# @param [Hash] parameters
|
43
43
|
# @param [Symbol] action [:send/:open]
|
44
44
|
def check_params(p, action=:send)
|
45
|
-
|
46
|
-
|
47
|
-
if
|
48
|
-
|
45
|
+
trigger_error "Channel can't be nil" if p[:channel].nil? || p[:channel].length == 0
|
46
|
+
trigger_error "ERROR# Neighborparrot: api_id can't be nil" if p[:api_id].nil? || p[:api_id].length == 0
|
47
|
+
trigger_error "ERROR# Neighborparrot: api_key can't be nil" if p[:api_key].nil? || p[:api_key].length == 0
|
48
|
+
if action == :open
|
49
|
+
trigger_error "ERROR# Neighborparrot: socket_id can't be nil" if p[:socket_id].nil? || p[:socket_id].length == 0
|
49
50
|
end
|
50
51
|
true
|
51
52
|
end
|
data/lib/neighborparrot/open.rb
CHANGED
@@ -19,15 +19,16 @@ module Neighborparrot
|
|
19
19
|
return unless check_params params, :post
|
20
20
|
return if dummy_connections?
|
21
21
|
uri = URI.parse(params[:server])
|
22
|
-
channel = params[:channel]
|
23
22
|
url = "#{params[:server]}/open"
|
24
|
-
|
25
|
-
|
23
|
+
request = {:channel => params[:channel], :socket_id => params[:socket_id]}
|
24
|
+
signed_request = Neighborparrot.sign_connect_request(request, params)
|
25
|
+
@source = EM::EventSource.new(url, signed_request)
|
26
26
|
@source.inactivity_timeout = 120
|
27
27
|
@source.message do |message|
|
28
28
|
EM.next_tick { trigger_message message }
|
29
29
|
end
|
30
30
|
@source.error do |error|
|
31
|
+
puts "Error #{error}"
|
31
32
|
EM.next_tick { trigger_error error }
|
32
33
|
end
|
33
34
|
|
@@ -68,15 +68,13 @@ module Neighborparrot
|
|
68
68
|
|
69
69
|
# Send a message to a channel
|
70
70
|
# If empty data, refuse to send nothing
|
71
|
-
# @
|
72
|
-
# * :api_id => Your api ID in neighborparrot.com
|
73
|
-
# * :api_key => Your api key
|
74
|
-
# * :server => Server to connect (Only for development)
|
71
|
+
# @request [Hash] params
|
75
72
|
# * :channel => The channel name
|
76
73
|
# * :data => Your payload
|
74
|
+
# @params optional parameters
|
77
75
|
# @return [Boolean] true if sended
|
78
|
-
def send(params)
|
79
|
-
EM.schedule { @out_queue.push params }
|
76
|
+
def send(request, params={})
|
77
|
+
EM.schedule { @out_queue.push({ :request => request, :params => params }) }
|
80
78
|
end
|
81
79
|
|
82
80
|
|
@@ -92,7 +90,12 @@ module Neighborparrot
|
|
92
90
|
return init_queue unless @out_queue
|
93
91
|
end
|
94
92
|
@em_thread = Thread.new {
|
95
|
-
EM.run
|
93
|
+
EM.run do
|
94
|
+
EM.error_handler{ |e|
|
95
|
+
puts "Error raised during event loop: #{e.message} , #{e}"
|
96
|
+
}
|
97
|
+
init_queue
|
98
|
+
end
|
96
99
|
}
|
97
100
|
end
|
98
101
|
|
data/lib/neighborparrot/send.rb
CHANGED
@@ -7,9 +7,9 @@ module Neighborparrot
|
|
7
7
|
# If you start a module reactor in some point in your program
|
8
8
|
# the request is scheduled in this reactor and return
|
9
9
|
# the control to your program. Module callbacks are used in this case.
|
10
|
-
def self.send(params={})
|
10
|
+
def self.send(request, params={})
|
11
11
|
if self.reactor_running?
|
12
|
-
return @@class_reactor.send params
|
12
|
+
return @@class_reactor.send request, params
|
13
13
|
end
|
14
14
|
response = nil
|
15
15
|
error = false
|
@@ -23,21 +23,27 @@ module Neighborparrot
|
|
23
23
|
response = resp
|
24
24
|
parrot.stop
|
25
25
|
end
|
26
|
-
|
26
|
+
# Skip reactor queues
|
27
|
+
parrot.send_to_broker request, params
|
27
28
|
end
|
28
29
|
fail error if error
|
29
30
|
return response
|
30
31
|
end
|
31
32
|
|
32
|
-
private
|
33
33
|
# Send the message to the broker
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
34
|
+
# This is the final step of a send request in the reactor process
|
35
|
+
def send_to_broker(options)
|
36
|
+
params = Neighborparrot.configuration.merge options[:params]
|
37
|
+
request = options[:request]
|
38
|
+
# TODO: Refactor
|
39
|
+
# return unless check_params request
|
40
|
+
return if request[:data].nil? || request[:data].length == 0
|
38
41
|
return if params[:dummy_connections]
|
42
|
+
|
43
|
+
signed_request = Neighborparrot.sign_send_request request, params
|
44
|
+
|
39
45
|
url = "#{params[:server]}/send"
|
40
|
-
http = EventMachine::HttpRequest.new(url).post :body =>
|
46
|
+
http = EventMachine::HttpRequest.new(url).post :body => signed_request
|
41
47
|
http.errback{ |msg| trigger_error msg }
|
42
48
|
http.callback do
|
43
49
|
if http.response_header.status == 200
|
data/neighborparrot.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "neighborparrot"
|
8
|
-
s.version = "0.3.
|
8
|
+
s.version = "0.3.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Eloy Gomez"]
|
12
|
-
s.date = "2012-01
|
12
|
+
s.date = "2012-02-01"
|
13
13
|
s.description = "Send messages to the neighborparrot event source service"
|
14
14
|
s.email = "eloy@indeos.es"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -26,6 +26,7 @@ Gem::Specification.new do |s|
|
|
26
26
|
"Rakefile",
|
27
27
|
"VERSION",
|
28
28
|
"lib/neighborparrot.rb",
|
29
|
+
"lib/neighborparrot/auth.rb",
|
29
30
|
"lib/neighborparrot/callbacks.rb",
|
30
31
|
"lib/neighborparrot/config.rb",
|
31
32
|
"lib/neighborparrot/helpers/url_helpers.rb",
|
@@ -42,7 +43,7 @@ Gem::Specification.new do |s|
|
|
42
43
|
s.homepage = "http://neighborparrot.com"
|
43
44
|
s.licenses = ["MIT"]
|
44
45
|
s.require_paths = ["lib"]
|
45
|
-
s.rubygems_version = "1.8.
|
46
|
+
s.rubygems_version = "1.8.11"
|
46
47
|
s.summary = "Ruby client for the Neighborparrot"
|
47
48
|
|
48
49
|
if s.respond_to? :specification_version then
|
@@ -52,27 +53,36 @@ Gem::Specification.new do |s|
|
|
52
53
|
s.add_runtime_dependency(%q<eventmachine>, [">= 0"])
|
53
54
|
s.add_runtime_dependency(%q<em-http-request>, [">= 0"])
|
54
55
|
s.add_runtime_dependency(%q<em-eventsource>, [">= 0"])
|
55
|
-
s.
|
56
|
-
s.
|
56
|
+
s.add_runtime_dependency(%q<bson_ext>, [">= 0"])
|
57
|
+
s.add_runtime_dependency(%q<ruby-hmac>, [">= 0"])
|
58
|
+
s.add_runtime_dependency(%q<signature>, [">= 0"])
|
59
|
+
s.add_development_dependency(%q<rspec>, [">= 0"])
|
60
|
+
s.add_development_dependency(%q<bundler>, [">= 0"])
|
57
61
|
s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
|
58
|
-
s.add_development_dependency(%q<
|
62
|
+
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
59
63
|
else
|
60
64
|
s.add_dependency(%q<eventmachine>, [">= 0"])
|
61
65
|
s.add_dependency(%q<em-http-request>, [">= 0"])
|
62
66
|
s.add_dependency(%q<em-eventsource>, [">= 0"])
|
63
|
-
s.add_dependency(%q<
|
64
|
-
s.add_dependency(%q<
|
67
|
+
s.add_dependency(%q<bson_ext>, [">= 0"])
|
68
|
+
s.add_dependency(%q<ruby-hmac>, [">= 0"])
|
69
|
+
s.add_dependency(%q<signature>, [">= 0"])
|
70
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
71
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
65
72
|
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
66
|
-
s.add_dependency(%q<
|
73
|
+
s.add_dependency(%q<simplecov>, [">= 0"])
|
67
74
|
end
|
68
75
|
else
|
69
76
|
s.add_dependency(%q<eventmachine>, [">= 0"])
|
70
77
|
s.add_dependency(%q<em-http-request>, [">= 0"])
|
71
78
|
s.add_dependency(%q<em-eventsource>, [">= 0"])
|
72
|
-
s.add_dependency(%q<
|
73
|
-
s.add_dependency(%q<
|
79
|
+
s.add_dependency(%q<bson_ext>, [">= 0"])
|
80
|
+
s.add_dependency(%q<ruby-hmac>, [">= 0"])
|
81
|
+
s.add_dependency(%q<signature>, [">= 0"])
|
82
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
83
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
74
84
|
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
75
|
-
s.add_dependency(%q<
|
85
|
+
s.add_dependency(%q<simplecov>, [">= 0"])
|
76
86
|
end
|
77
87
|
end
|
78
88
|
|
@@ -2,10 +2,11 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
|
2
2
|
|
3
3
|
describe "Neighborparrot::ESParrot" do
|
4
4
|
before :all do
|
5
|
-
api_id = '
|
6
|
-
api_key = '
|
7
|
-
|
8
|
-
|
5
|
+
api_id = '7b6632eb-1345-4431-81d6-27744845a7c2'
|
6
|
+
api_key = '39aa7d81-8f6a-4885-a254-335dcf7dc8f7'
|
7
|
+
@socket_id = '1234'
|
8
|
+
Neighborparrot.configure(:api_id => api_id, :api_key => api_key)
|
9
|
+
@channel = 'spec-test'
|
9
10
|
end
|
10
11
|
|
11
12
|
before :each do
|
@@ -23,7 +24,7 @@ describe "Neighborparrot::ESParrot" do
|
|
23
24
|
@parrot.on_connect do
|
24
25
|
connected = true
|
25
26
|
end
|
26
|
-
@parrot.open(:channel => @channel)
|
27
|
+
@parrot.open(:channel => @channel, :socket_id => @socket_id)
|
27
28
|
sleep 1
|
28
29
|
connected.should be_true
|
29
30
|
end
|
@@ -33,23 +34,23 @@ describe "Neighborparrot::ESParrot" do
|
|
33
34
|
@parrot.on_message do |msg|
|
34
35
|
received = msg
|
35
36
|
end
|
36
|
-
@parrot.open(:channel => @channel)
|
37
|
+
@parrot.open(:channel => @channel, :socket_id => @socket_id)
|
37
38
|
|
38
39
|
text = Faker::Lorem.paragraph(30)
|
39
|
-
@parrot.send(:channel =>
|
40
|
+
@parrot.send(:channel => @channel, :data => text)
|
40
41
|
sleep 1
|
41
42
|
received.should eq text
|
42
43
|
end
|
43
44
|
|
44
45
|
it "should return false if already a connection active" do
|
45
|
-
@parrot.open(:channel => @channel)
|
46
|
+
@parrot.open(:channel => @channel, :socket_id => @socket_id)
|
46
47
|
@parrot.open(:channel => 'other test').should be_false
|
47
48
|
end
|
48
49
|
end
|
49
50
|
|
50
51
|
describe "Neighborparrot::ESParrot#close" do
|
51
52
|
it "should close a connection" do
|
52
|
-
@parrot.open(:channel => @channel)
|
53
|
+
@parrot.open(:channel => @channel, :socket_id => @socket_id)
|
53
54
|
@parrot.stop
|
54
55
|
@parrot.connected?.should be_false
|
55
56
|
end
|
@@ -62,7 +63,7 @@ describe "Neighborparrot::ESParrot" do
|
|
62
63
|
end
|
63
64
|
|
64
65
|
it "should be true when connected" do
|
65
|
-
@parrot.open(:channel => @channel)
|
66
|
+
@parrot.open(:channel => @channel, :socket_id => @socket_id)
|
66
67
|
sleep 2
|
67
68
|
@parrot.connected?.should be_true
|
68
69
|
@parrot.close
|
data/spec/spec_helper.rb
CHANGED
@@ -2,6 +2,8 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
2
2
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
3
3
|
require 'rspec'
|
4
4
|
require 'faker'
|
5
|
+
require 'hmac-sha2'
|
6
|
+
require 'signature'
|
5
7
|
|
6
8
|
require File.expand_path(File.dirname(__FILE__) + '/../lib/neighborparrot')
|
7
9
|
|
@@ -10,7 +12,7 @@ require File.expand_path(File.dirname(__FILE__) + '/../lib/neighborparrot')
|
|
10
12
|
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
11
13
|
|
12
14
|
# Setup server on localhost
|
13
|
-
|
15
|
+
Neighborparrot.configure :server => 'http://127.0.0.1:9000'
|
14
16
|
|
15
17
|
RSpec.configure do |config|
|
16
18
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: neighborparrot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-01
|
12
|
+
date: 2012-02-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: eventmachine
|
16
|
-
requirement: &
|
16
|
+
requirement: &80693500 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *80693500
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: em-http-request
|
27
|
-
requirement: &
|
27
|
+
requirement: &80689840 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *80689840
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: em-eventsource
|
38
|
-
requirement: &
|
38
|
+
requirement: &80712050 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,32 +43,65 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *80712050
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: bson_ext
|
49
|
+
requirement: &80708470 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :runtime
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *80708470
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: ruby-hmac
|
60
|
+
requirement: &80810390 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
66
|
+
type: :runtime
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *80810390
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: signature
|
71
|
+
requirement: &80807390 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :runtime
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: *80807390
|
47
80
|
- !ruby/object:Gem::Dependency
|
48
81
|
name: rspec
|
49
|
-
requirement: &
|
82
|
+
requirement: &80941980 !ruby/object:Gem::Requirement
|
50
83
|
none: false
|
51
84
|
requirements:
|
52
|
-
- -
|
85
|
+
- - ! '>='
|
53
86
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
87
|
+
version: '0'
|
55
88
|
type: :development
|
56
89
|
prerelease: false
|
57
|
-
version_requirements: *
|
90
|
+
version_requirements: *80941980
|
58
91
|
- !ruby/object:Gem::Dependency
|
59
92
|
name: bundler
|
60
|
-
requirement: &
|
93
|
+
requirement: &80940920 !ruby/object:Gem::Requirement
|
61
94
|
none: false
|
62
95
|
requirements:
|
63
|
-
- -
|
96
|
+
- - ! '>='
|
64
97
|
- !ruby/object:Gem::Version
|
65
|
-
version:
|
98
|
+
version: '0'
|
66
99
|
type: :development
|
67
100
|
prerelease: false
|
68
|
-
version_requirements: *
|
101
|
+
version_requirements: *80940920
|
69
102
|
- !ruby/object:Gem::Dependency
|
70
103
|
name: jeweler
|
71
|
-
requirement: &
|
104
|
+
requirement: &80940000 !ruby/object:Gem::Requirement
|
72
105
|
none: false
|
73
106
|
requirements:
|
74
107
|
- - ~>
|
@@ -76,10 +109,10 @@ dependencies:
|
|
76
109
|
version: 1.6.4
|
77
110
|
type: :development
|
78
111
|
prerelease: false
|
79
|
-
version_requirements: *
|
112
|
+
version_requirements: *80940000
|
80
113
|
- !ruby/object:Gem::Dependency
|
81
|
-
name:
|
82
|
-
requirement: &
|
114
|
+
name: simplecov
|
115
|
+
requirement: &80938470 !ruby/object:Gem::Requirement
|
83
116
|
none: false
|
84
117
|
requirements:
|
85
118
|
- - ! '>='
|
@@ -87,7 +120,7 @@ dependencies:
|
|
87
120
|
version: '0'
|
88
121
|
type: :development
|
89
122
|
prerelease: false
|
90
|
-
version_requirements: *
|
123
|
+
version_requirements: *80938470
|
91
124
|
description: Send messages to the neighborparrot event source service
|
92
125
|
email: eloy@indeos.es
|
93
126
|
executables: []
|
@@ -105,6 +138,7 @@ files:
|
|
105
138
|
- Rakefile
|
106
139
|
- VERSION
|
107
140
|
- lib/neighborparrot.rb
|
141
|
+
- lib/neighborparrot/auth.rb
|
108
142
|
- lib/neighborparrot/callbacks.rb
|
109
143
|
- lib/neighborparrot/config.rb
|
110
144
|
- lib/neighborparrot/helpers/url_helpers.rb
|
@@ -132,7 +166,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
132
166
|
version: '0'
|
133
167
|
segments:
|
134
168
|
- 0
|
135
|
-
hash:
|
169
|
+
hash: -150390895
|
136
170
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
137
171
|
none: false
|
138
172
|
requirements:
|
@@ -141,7 +175,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
141
175
|
version: '0'
|
142
176
|
requirements: []
|
143
177
|
rubyforge_project:
|
144
|
-
rubygems_version: 1.8.
|
178
|
+
rubygems_version: 1.8.11
|
145
179
|
signing_key:
|
146
180
|
specification_version: 3
|
147
181
|
summary: Ruby client for the Neighborparrot
|