garufa 1.1.5 → 1.2.0.rc.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d786b484f5fab7fd3d89b658e6112b4075f99bef
4
- data.tar.gz: 824a6094723424159fc9d309ca664b45f95e1209
3
+ metadata.gz: f0834fb0cd97fc6212f90c8f1fe3e72efdffc68c
4
+ data.tar.gz: 8ac82e1d5952efd3a90c9bcfa4b972d600d4dfbd
5
5
  SHA512:
6
- metadata.gz: e79c4b1d0b103bebecdc8458b469afcd1f52d6c923b8337a1ac6019eae3a1009c4420f04269cad749d16018ab3aff4a46ceb26e67122ffc8ec23e541d5bc5471
7
- data.tar.gz: 582a840feee8ae3c9995647b51f3fe49292e3fd5ca62de3d2c9e74a642a041e19d82b69acf6e97b166ca5685ccf8bdb3b1f558b519929f91e15ee38068145ee9
6
+ metadata.gz: f6acfd627b5975767fd1f6557798cbabd8a2521944d7a8f443179b8bf862f67b401c42541f2b21b7e370748d69f490c6eb4066565542aaea7c2bd33a89d19086
7
+ data.tar.gz: 31e8d4a3a0b7be4d2b549ea0dc64e44a2a291b155ffb80b097d4c9b68cab2bebaa542e3b04c9597d90296705ae04b4d53dd3384adf28e6bc3d10c494eee98254
data/README.md CHANGED
@@ -22,8 +22,9 @@ Documentation
22
22
  * [SSL Support](/doc/ssl.md)
23
23
  * [Deploy to Heroku](/doc/heroku.md)
24
24
  * [Using Nginx as reverse proxy](/doc/nginx.md)
25
- * [Cheking number of current connections](/doc/connections.md)
25
+ * [Checking number of current connections](/doc/connections.md)
26
26
  * [Testing and contributing](/doc/testing.md)
27
+ * [Health endpoint](/doc/health.md)
27
28
 
28
29
  Pusher
29
30
  ------
@@ -31,6 +32,6 @@ Pusher
31
32
  [Pusher][pusher] is a great service, very well documented and with excellent
32
33
  support. Consider using it on production.
33
34
 
34
- [pusher]: http://pusher.com
35
+ [pusher]: https://pusher.com
35
36
  [goliath]: https://github.com/postrank-labs/goliath/
36
37
  [slanger]: https://github.com/stevegraham/slanger
@@ -1,39 +1,43 @@
1
1
  # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path("../lib", __FILE__)
2
+ # frozen_string_literal: true
3
+
4
+ $LOAD_PATH.push File.expand_path('../lib', __FILE__)
3
5
 
4
6
  require 'garufa/version'
5
7
 
6
- Gem::Specification.new do |s|
7
- s.name = "garufa"
8
- s.version = Garufa::VERSION
9
- s.summary = "Websocket server compatible with Pusher."
10
- s.description = "Garufa is a websocket server compatible with the Pusher protocol."
11
- s.authors = ["Juan Manuel Cuello"]
12
- s.email = ["juanmacuello@gmail.com"]
13
- s.homepage = "http://github.com/Juanmcuello/garufa"
14
- s.bindir = "bin"
15
- s.executables << "garufa"
16
- s.required_ruby_version = ">=1.9"
8
+ spec = Gem::Specification.new
9
+
10
+ spec.name = 'garufa'
11
+ spec.version = Garufa::VERSION
12
+ spec.summary = 'Websocket server compatible with Pusher.'
13
+ spec.description = 'A websocket server compatible with the Pusher protocol.'
14
+ spec.authors = ['Juan Manuel Cuello']
15
+ spec.email = ['juanmacuello@gmail.com']
16
+ spec.homepage = 'https://github.com/Juanmcuello/garufa'
17
+ spec.bindir = 'bin'
18
+ spec.license = 'MIT'
19
+ spec.executables << 'garufa'
20
+ spec.required_ruby_version = '>=2.2.2'
17
21
 
18
- s.files = Dir[
19
- "LICENSE",
20
- "README.md",
21
- "Rakefile",
22
- "lib/**/*.rb",
23
- "lib/**/*.yajl",
24
- "bin/*",
25
- "*.gemspec",
26
- "test/*.*"
27
- ]
22
+ spec.files = Dir[
23
+ 'LICENSE',
24
+ 'README.md',
25
+ 'Rakefile',
26
+ 'lib/**/*.rb',
27
+ 'lib/**/*.yajl',
28
+ 'bin/*',
29
+ '*.gemspec',
30
+ 'test/*.*'
31
+ ]
28
32
 
29
- s.add_dependency "goliath", "1.0.4"
30
- s.add_dependency "faye-websocket", "0.7.4"
31
- s.add_dependency "websocket-driver", "0.3.5"
32
- s.add_dependency "roda", "2.4.0"
33
- s.add_dependency "signature", "0.1.7"
34
- s.add_dependency "tilt", "2.0.1"
35
- s.add_dependency "yajl-ruby", "1.3.0"
36
- s.add_development_dependency "rack-test", "0.6.3"
37
- s.add_development_dependency "rake", "10.3.2"
38
- s.add_development_dependency "minitest", "5.4.0"
39
- end
33
+ spec.add_dependency 'goliath', '1.0.6'
34
+ spec.add_dependency 'faye-websocket', '0.10.7'
35
+ spec.add_dependency 'websocket-driver', '0.7.0'
36
+ spec.add_dependency 'roda', '3.2.0'
37
+ spec.add_dependency 'signature', '0.1.8'
38
+ spec.add_dependency 'tilt', '2.0.8'
39
+ spec.add_dependency 'yajl-ruby', '1.3.1'
40
+ spec.add_development_dependency 'rack-test', '0.8.2'
41
+ spec.add_development_dependency 'rake', '12.3.0'
42
+ spec.add_development_dependency 'minitest', '5.10.3'
43
+ spec
@@ -23,13 +23,14 @@ module Garufa
23
23
  end
24
24
 
25
25
  # GET channels/non-presence-channel
26
- r.is ":channel" do |channel|
26
+ r.is String do |channel|
27
27
  render 'non_presence', locals: { stats: stats.single_channel(channel) }
28
28
  end
29
29
 
30
30
  # GET channels/non-presence-channel/users
31
- r.is ":channel/users" do |channel|
31
+ r.is String, "users" do |channel|
32
32
  response.status = 400
33
+ nil
33
34
  end
34
35
  end
35
36
  end
@@ -10,7 +10,7 @@ module Garufa
10
10
  end
11
11
 
12
12
  # Legacy events
13
- r.is 'channels/:channel/events' do |channel|
13
+ r.is 'channels', String, 'events' do |channel|
14
14
  handler = EventHandler.new
15
15
  handler.handle_legacy(read_body, channel, request.GET)
16
16
  response.status = 202
@@ -25,8 +25,7 @@ module Garufa
25
25
  response.status = 204
26
26
  end
27
27
 
28
- r.on 'apps/:app_id' do |app_id|
29
-
28
+ r.on 'apps', String do |app_id|
30
29
  authenticate(app_id)
31
30
 
32
31
  r.get do
@@ -14,7 +14,7 @@ module Garufa
14
14
 
15
15
  @attributes.each do |name, value|
16
16
  instance_variable_set("@#{name}", value)
17
- self.class.send(:attr_reader, name)
17
+ define_singleton_method(name.to_sym) { value }
18
18
  end
19
19
  end
20
20
 
@@ -1,13 +1,16 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'garufa/config'
2
4
  require 'garufa/subscriptions'
3
5
 
4
6
  module Garufa
5
7
  class Subscription
6
-
7
8
  attr_reader :error
8
9
 
9
10
  def initialize(data, connection)
10
- @data, @connection = data, connection
11
+ @data = data
12
+ @connection = connection
13
+ @error = nil
11
14
  end
12
15
 
13
16
  def subscribe
@@ -81,7 +84,12 @@ module Garufa
81
84
  end
82
85
 
83
86
  def valid_signature?
84
- string_to_sign = [@connection.socket_id, channel, channel_data].compact.join(':')
87
+ string_to_sign = [
88
+ @connection.socket_id,
89
+ channel,
90
+ channel_data
91
+ ].compact.join(':')
92
+
85
93
  token(string_to_sign) == signature
86
94
  end
87
95
 
@@ -103,6 +111,12 @@ module Garufa
103
111
  end
104
112
  end
105
113
 
106
- class SubscriptionError < Struct.new(:code, :message)
114
+ class SubscriptionError
115
+ attr_reader :code, :message
116
+
117
+ def initialize(code, message)
118
+ @code = code
119
+ @message = message
120
+ end
107
121
  end
108
122
  end
@@ -1,3 +1,3 @@
1
1
  module Garufa
2
- VERSION = '1.1.5'
2
+ VERSION = '1.2.0.rc.1'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: garufa
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.5
4
+ version: 1.2.0.rc.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juan Manuel Cuello
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-14 00:00:00.000000000 Z
11
+ date: 2017-12-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: goliath
@@ -16,141 +16,141 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 1.0.4
19
+ version: 1.0.6
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 1.0.4
26
+ version: 1.0.6
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: faye-websocket
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 0.7.4
33
+ version: 0.10.7
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 0.7.4
40
+ version: 0.10.7
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: websocket-driver
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - '='
46
46
  - !ruby/object:Gem::Version
47
- version: 0.3.5
47
+ version: 0.7.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - '='
53
53
  - !ruby/object:Gem::Version
54
- version: 0.3.5
54
+ version: 0.7.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: roda
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - '='
60
60
  - !ruby/object:Gem::Version
61
- version: 2.4.0
61
+ version: 3.2.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
- version: 2.4.0
68
+ version: 3.2.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: signature
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - '='
74
74
  - !ruby/object:Gem::Version
75
- version: 0.1.7
75
+ version: 0.1.8
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - '='
81
81
  - !ruby/object:Gem::Version
82
- version: 0.1.7
82
+ version: 0.1.8
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: tilt
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - '='
88
88
  - !ruby/object:Gem::Version
89
- version: 2.0.1
89
+ version: 2.0.8
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - '='
95
95
  - !ruby/object:Gem::Version
96
- version: 2.0.1
96
+ version: 2.0.8
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: yajl-ruby
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - '='
102
102
  - !ruby/object:Gem::Version
103
- version: 1.3.0
103
+ version: 1.3.1
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - '='
109
109
  - !ruby/object:Gem::Version
110
- version: 1.3.0
110
+ version: 1.3.1
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rack-test
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - '='
116
116
  - !ruby/object:Gem::Version
117
- version: 0.6.3
117
+ version: 0.8.2
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - '='
123
123
  - !ruby/object:Gem::Version
124
- version: 0.6.3
124
+ version: 0.8.2
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: rake
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - '='
130
130
  - !ruby/object:Gem::Version
131
- version: 10.3.2
131
+ version: 12.3.0
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - '='
137
137
  - !ruby/object:Gem::Version
138
- version: 10.3.2
138
+ version: 12.3.0
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: minitest
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - '='
144
144
  - !ruby/object:Gem::Version
145
- version: 5.4.0
145
+ version: 5.10.3
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - '='
151
151
  - !ruby/object:Gem::Version
152
- version: 5.4.0
153
- description: Garufa is a websocket server compatible with the Pusher protocol.
152
+ version: 5.10.3
153
+ description: A websocket server compatible with the Pusher protocol.
154
154
  email:
155
155
  - juanmacuello@gmail.com
156
156
  executables:
@@ -190,8 +190,9 @@ files:
190
190
  - test/helper.rb
191
191
  - test/message.rb
192
192
  - test/subscriptions.rb
193
- homepage: http://github.com/Juanmcuello/garufa
194
- licenses: []
193
+ homepage: https://github.com/Juanmcuello/garufa
194
+ licenses:
195
+ - MIT
195
196
  metadata: {}
196
197
  post_install_message:
197
198
  rdoc_options: []
@@ -201,15 +202,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
201
202
  requirements:
202
203
  - - ">="
203
204
  - !ruby/object:Gem::Version
204
- version: '1.9'
205
+ version: 2.2.2
205
206
  required_rubygems_version: !ruby/object:Gem::Requirement
206
207
  requirements:
207
- - - ">="
208
+ - - ">"
208
209
  - !ruby/object:Gem::Version
209
- version: '0'
210
+ version: 1.3.1
210
211
  requirements: []
211
212
  rubyforge_project:
212
- rubygems_version: 2.6.11
213
+ rubygems_version: 2.6.13
213
214
  signing_key:
214
215
  specification_version: 4
215
216
  summary: Websocket server compatible with Pusher.