pollen 0.1.0 → 0.2.0
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/lib/pollen/commands.rb +4 -4
- data/lib/pollen/configuration.rb +6 -1
- data/lib/pollen/middleware.rb +6 -2
- data/lib/pollen/version.rb +1 -1
- metadata +3 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f3b3c7581b664928166d1349f6f0600884a59cde5d3f05c767fb100cf76e70c2
|
4
|
+
data.tar.gz: 92a9177aeb8b8ecb27a100f387e7d1fe4dc36cc56ab83302190794ff7e3db540
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 23b29ad16c76f36185b13d07a6c9525b1da5320477b0b1aab1d8708b00ca8b6711da957c38048e30c92e857f8ace722c1aabd203301fbeeea67e8f568f132bda
|
7
|
+
data.tar.gz: d5963ee38b98895e621ee9ea57cd075d2d4b8975f603bff9e46ae7b92ae0ade2803c27ab2304ff9a47154f64f8b2fee955128cda78eb03f442879bca46c7ce6e
|
data/lib/pollen/commands.rb
CHANGED
@@ -13,7 +13,7 @@ module Pollen
|
|
13
13
|
def push!(stream_or_id, event, payload)
|
14
14
|
check_redis!
|
15
15
|
stream = load_stream(stream_or_id)
|
16
|
-
stream.update!(status: %i[completed failed].include?(event) && event || :pending, payload:)
|
16
|
+
stream.update!(status: (%i[completed failed].include?(event) && event) || :pending, payload:)
|
17
17
|
with_redis do |r|
|
18
18
|
r.publish("#{configuration.channel_prefix}:#{stream.id}", "#{event}:#{payload}")
|
19
19
|
end
|
@@ -25,9 +25,9 @@ module Pollen
|
|
25
25
|
configuration.redis
|
26
26
|
end
|
27
27
|
|
28
|
-
def with_redis(&
|
28
|
+
def with_redis(&)
|
29
29
|
# Allow raw Redis clients or a client from the pool
|
30
|
-
configuration.redis.then(&
|
30
|
+
configuration.redis.then(&)
|
31
31
|
end
|
32
32
|
|
33
33
|
def check_redis!
|
@@ -38,7 +38,7 @@ module Pollen
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def load_stream(stream_or_id)
|
41
|
-
(stream_or_id.respond_to?(:id) && stream_or_id || Stream.find(stream_or_id)).tap do |stream|
|
41
|
+
((stream_or_id.respond_to?(:id) && stream_or_id) || Stream.find(stream_or_id)).tap do |stream|
|
42
42
|
unless stream.pending?
|
43
43
|
raise Errors::InvalidStreamStatus,
|
44
44
|
"Stream with id #{stream.id} is already #{stream.status}"
|
data/lib/pollen/configuration.rb
CHANGED
@@ -25,7 +25,7 @@ module Pollen
|
|
25
25
|
UUID_REGEXP = /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/
|
26
26
|
|
27
27
|
attr_reader :concurrency, :heartbeat, :route_regexp
|
28
|
-
attr_accessor :authenticator
|
28
|
+
attr_accessor :authenticator, :stream_loader
|
29
29
|
|
30
30
|
def initialize
|
31
31
|
super
|
@@ -33,6 +33,7 @@ module Pollen
|
|
33
33
|
@heartbeat = 5
|
34
34
|
@route_regexp = %r{^/pollen/streams/(#{UUID_REGEXP})}
|
35
35
|
@authenticator = ->(_, _) {}
|
36
|
+
@stream_loader = ->(owner, id, _request, _env) { Stream.find_by(owner: owner, id: id) }
|
36
37
|
end
|
37
38
|
end
|
38
39
|
|
@@ -75,6 +76,10 @@ module Pollen
|
|
75
76
|
@configuration.root.authenticator = block
|
76
77
|
end
|
77
78
|
|
79
|
+
def load_stream(&block)
|
80
|
+
@configuration.root.stream_loader = block
|
81
|
+
end
|
82
|
+
|
78
83
|
def method_missing(name, *args, **_)
|
79
84
|
@configuration.root.instance_variable_set("@#{name}", *args)
|
80
85
|
end
|
data/lib/pollen/middleware.rb
CHANGED
@@ -41,13 +41,17 @@ module Pollen
|
|
41
41
|
end
|
42
42
|
|
43
43
|
def load_stream(stream_id, request, env)
|
44
|
-
|
44
|
+
stream_loader.call(authenticate_owner(stream_id, request, env), stream_id, request, env).tap do |stream|
|
45
45
|
raise Errors::StreamNotFound, "Unable to find stream with ID #{stream_id}" if stream.nil?
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
49
49
|
def authenticator
|
50
|
-
|
50
|
+
@server.configuration.authenticator
|
51
|
+
end
|
52
|
+
|
53
|
+
def stream_loader
|
54
|
+
@server.configuration.stream_loader
|
51
55
|
end
|
52
56
|
end
|
53
57
|
end
|
data/lib/pollen/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pollen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jef Mathiot
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-12-
|
11
|
+
date: 2024-12-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -38,34 +38,6 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: factory_bot_rails
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: rspec-rails
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ">="
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
69
41
|
description: An HTTP Pub/Sub engine for Rails.
|
70
42
|
email:
|
71
43
|
- jeff.mathiot@gmail.com
|
@@ -100,6 +72,7 @@ licenses:
|
|
100
72
|
metadata:
|
101
73
|
homepage_uri: https://github.com/everestHC-mySofie/pollen
|
102
74
|
source_code_uri: https://github.com/everestHC-mySofie/pollen
|
75
|
+
rubygems_mfa_required: 'true'
|
103
76
|
post_install_message:
|
104
77
|
rdoc_options: []
|
105
78
|
require_paths:
|