anycable-rails 1.3.7 → 1.4.0

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: da6dd37a3736867b489ceabcc4ed290550fe5736cbf10ad19d6b2e2b0721297d
4
+ data.tar.gz: d6b8401fc9938ba87d9e19e878dc58a618271f5bffd99da83398b3a5b1403e9e
5
5
  SHA512:
6
- metadata.gz: befbe33cd332ef3f4be7b7eb754975bf38970d8cb67428e1ff68f72826da00b88c5b1ca203cee01433f5c3c197ec26148cdb8b2a0534afe93d48962055417b85
7
- data.tar.gz: d6e97f87c28a15d07204bb4d78d371b66d982794156064ad12dc03c21a35dec41de48d0a7b433d079438fce6d89b940f9ff7feb856472f263083edb3dfe33d99
6
+ metadata.gz: 67891351a6bb37e4c69e4d81ca51a3cbafeb07ced7d7607c08691ddd33c4dbe4b2bf18231826db85632937313a2d76a35945c59cb2a94f68ad37ac88735dce78
7
+ data.tar.gz: ca63fd1ec1c346777882434870dc01e9ef35f9fe82ae428c23d4ad481b201eb4f0f726c1e5a50045ffbaf84b7fd94b1adbdcf4640f5e70b3d3b4d2ec8c1ed935
data/CHANGELOG.md CHANGED
@@ -2,6 +2,16 @@
2
2
 
3
3
  ## master
4
4
 
5
+ ## 1.4.0 (2023-07-07)
6
+
7
+ - Add HTTP RPC integration. ([@palkan][])
8
+
9
+ Specify `http_rpc_mounth_path` in your `anycable.yml` to enable HTTP RPC.
10
+
11
+ - Fix `anycable:download` command. ([@palkan][])
12
+
13
+ Detect MacOS arm64, create target bin path if it doesn't exist.
14
+
5
15
  ## 1.3.7 (2023-02-28)
6
16
 
7
17
  - 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"
6
6
  end
7
7
  end
@@ -61,6 +61,8 @@ module AnyCableRailsGenerators
61
61
  def download_exe(url, to:, file_name:)
62
62
  file_path = File.join(to, file_name)
63
63
 
64
+ FileUtils.mkdir_p(to) unless File.directory?(to)
65
+
64
66
  run "#{sudo(to)}curl -L #{url} -o #{file_path}", abort_on_failure: true
65
67
  run "#{sudo(to)}chmod +x #{file_path}", abort_on_failure: true
66
68
  run "#{file_path} -v", abort_on_failure: true
@@ -23,7 +23,7 @@ module AnyCableRailsGenerators
23
23
  "amd64"
24
24
  when "x86_32", "x86", "i386", "i486", "i686"
25
25
  "i386"
26
- when "aarch64", "aarch64_be", /armv8/
26
+ when "aarch64", "aarch64_be", "arm64", /armv8/
27
27
  "arm64"
28
28
  when "arm", /armv7/, /armv6/
29
29
  "arm"
metadata CHANGED
@@ -1,14 +1,14 @@
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
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-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: anycable
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.3.0
19
+ version: '1.4'
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'
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
@@ -205,7 +233,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
205
233
  - !ruby/object:Gem::Version
206
234
  version: '0'
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