anycable-rails 1.3.7 → 1.4.0.rc.2

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
  SHA256:
3
- metadata.gz: 60aa4eb7cba077db3f823f54b6c2f3e792ea5bdd1819c0e67a743e8feeb02fe2
4
- data.tar.gz: 6ff7352202e587af57c80729f7b62b8316873b9e230a32cd802f217b76d90bab
3
+ metadata.gz: eab80b24449df16cc625841275a035b770b9fea7826fe66eae11f9c6c8e038fb
4
+ data.tar.gz: 57934f4ebd4b5b54b644adc53148722b26d39514535cef60f2bab68abfff39ab
5
5
  SHA512:
6
- metadata.gz: befbe33cd332ef3f4be7b7eb754975bf38970d8cb67428e1ff68f72826da00b88c5b1ca203cee01433f5c3c197ec26148cdb8b2a0534afe93d48962055417b85
7
- data.tar.gz: d6e97f87c28a15d07204bb4d78d371b66d982794156064ad12dc03c21a35dec41de48d0a7b433d079438fce6d89b940f9ff7feb856472f263083edb3dfe33d99
6
+ metadata.gz: 14a06a81679e958ba7d5a277899c14b5d59d89561ccf19be8a49b8937e30ef76bb4c3e9dec08708b8fd2b1911104e9f87917a6d7643df7b702e6562bf9a55ca1
7
+ data.tar.gz: 79a8daa00df091afa5da621b85423dd34cebeba6d60591240200f1b7eeb0848423387bc62d5a3c8beb04cc7f5a3fca305e3e3928b82f4cce01c61313b658bbef
data/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  ## master
4
4
 
5
+ ## 1.4.0.rc.2 (2023-07-03)
6
+
7
+ - Add HTTP RPC integration. ([@palkan][])
8
+
9
+ Specify `http_rpc_mounth_path` in your `anycable.yml` to enable HTTP RPC.
10
+
5
11
  ## 1.3.7 (2023-02-28)
6
12
 
7
13
  - Fix `anycable` gem dependency constraints.
@@ -7,6 +7,7 @@ module AnyCable
7
7
  IGNORE_INSTANCE_VARS = %i[
8
8
  @active_periodic_timers
9
9
  @_streams
10
+ @parameter_filter
10
11
  ]
11
12
 
12
13
  ActionCable::Channel::Base.prepend(Module.new do
@@ -9,9 +9,11 @@ require "anyway/rails"
9
9
  # - `access_logs_disabled` (defaults to true) — whether to print Started/Finished logs
10
10
  # - `persistent_session_enabled` (defaults to false) — whether to store session changes in the connection state
11
11
  # - `embedded` (defaults to false) — whether to run RPC server inside a Rails server process
12
+ # - `http_rpc_mount_path` (default to nil) — path to mount HTTP RPC server
12
13
  AnyCable::Config.attr_config(
13
14
  access_logs_disabled: true,
14
15
  persistent_session_enabled: false,
15
- embedded: false
16
+ embedded: false,
17
+ http_rpc_mount_path: nil
16
18
  )
17
19
  AnyCable::Config.ignore_options :access_logs_disabled, :persistent_session_enabled
@@ -12,8 +12,18 @@ module AnyCable
12
12
  @executor = executor
13
13
  end
14
14
 
15
- def call(*)
16
- executor.wrap { yield }
15
+ def call(method, message, metadata)
16
+ if ::Rails.respond_to?(:error)
17
+ executor.wrap do
18
+ sid = metadata["sid"]
19
+
20
+ ::Rails.error.record(context: {method: method, payload: message.to_h, sid: sid}) do
21
+ yield
22
+ end
23
+ end
24
+ else
25
+ executor.wrap { yield }
26
+ end
17
27
  end
18
28
  end
19
29
  end
@@ -48,7 +48,7 @@ module AnyCable
48
48
 
49
49
  if app.executor.respond_to?(:error_reporter)
50
50
  AnyCable.capture_exception do |ex, method, message|
51
- ::Rails.error.report(ex, handled: false, context: {method: method, payload: message})
51
+ ::Rails.error.report(ex, handled: false, context: {method: method.to_sym, payload: message})
52
52
  end
53
53
  end
54
54
  end
@@ -65,6 +65,19 @@ module AnyCable
65
65
  end
66
66
  end
67
67
 
68
+ initializer "anycable.routes" do
69
+ next unless AnyCable::Rails.enabled?
70
+
71
+ config.after_initialize do |app|
72
+ config = AnyCable.config
73
+ unless config.http_rpc_mount_path.nil?
74
+ app.routes.prepend do
75
+ mount AnyCable::HTTRPC::Server.new => config.http_rpc_mount_path, :internal => true
76
+ end
77
+ end
78
+ end
79
+ end
80
+
68
81
  # Since Rails 6.1
69
82
  if respond_to?(:server)
70
83
  server do
@@ -2,6 +2,6 @@
2
2
 
3
3
  module AnyCable
4
4
  module Rails
5
- VERSION = "1.3.7"
5
+ VERSION = "1.4.0.rc.2"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: anycable-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.7
4
+ version: 1.4.0.rc.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - palkan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-01 00:00:00.000000000 Z
11
+ date: 2023-07-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: anycable
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 1.3.0
19
+ version: 1.4.0.rc.2
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.3.0
26
+ version: 1.4.0.rc.2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: actioncable
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -136,6 +136,34 @@ dependencies:
136
136
  - - ">="
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: simplecov
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: simplecov-lcov
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
139
167
  description: Rails adapter for AnyCable
140
168
  email:
141
169
  - dementiev.vm@gmail.com
@@ -201,11 +229,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
201
229
  version: '2.7'
202
230
  required_rubygems_version: !ruby/object:Gem::Requirement
203
231
  requirements:
204
- - - ">="
232
+ - - ">"
205
233
  - !ruby/object:Gem::Version
206
- version: '0'
234
+ version: 1.3.1
207
235
  requirements: []
208
- rubygems_version: 3.4.6
236
+ rubygems_version: 3.4.8
209
237
  signing_key:
210
238
  specification_version: 4
211
239
  summary: Rails adapter for AnyCable