anycable-rails-core 1.6.0.rc.2 → 1.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2fa2800d673ee7d03d6faee822368319e1930f4f31336127a09c10ac536048d3
4
- data.tar.gz: 19b10b1b47fee99b344e40371e6f3159627d18118768d50812a07cc22324fe43
3
+ metadata.gz: 98df74fbee0c55c64bfddfba7f3523739e53585d069aba4c38e473a12a799d42
4
+ data.tar.gz: b2df57d980697a1ed0f9d6ba0b8ea46b3f8af00214c6965c18fb1ab645fde209
5
5
  SHA512:
6
- metadata.gz: c7ed672ed4817e197bc43a2839642556a432be2dd41916841cbfc065135afa3009ca4592f84159c58c804e5e1050e27db3b767e0856493ece3690427c7675a33
7
- data.tar.gz: 5ddc58e66b3f7d49eda206fbba61b993789ab92ba4adb382276a550a3492b571d53722f0f9bbfdee13a61d2df6874a7859e793446d3f2951fe441a4f4d94585a
6
+ metadata.gz: d48105a43d0693bece056fe51d6367d4b4c51ff4182911e2352d07f2e461e75324d7015a512e5146064c02cf40f7546420f4f60968fed0fd819cb461bb2076d0
7
+ data.tar.gz: d7859990689306126edae8e2d412ed4c6e9c4fcb135ae4db165cf02a1bcfee8ab2643ee465fbaceb4db53a2b7c2f1e0225a3ddbfaa52721012baa04683b5cbd0
data/CHANGELOG.md CHANGED
@@ -2,7 +2,13 @@
2
2
 
3
3
  ## main
4
4
 
5
- ## 1.6.0.rc.2 (2025-02-10)
5
+ ## 1.6.0 (2025-03-18)
6
+
7
+ - Update `anycable:download` generator to support v1.6+. ([@palkan][])
8
+
9
+ - Add `#anycable_token_meta_tag` helper. ([@palkan][])
10
+
11
+ It generates a meta tag with the AnyCable JWT token (w/o the URL).
6
12
 
7
13
  - Add Presence API. ([@palkan][])
8
14
 
@@ -22,10 +22,10 @@ module AnyCable
22
22
  tag "meta", name: "action-cable-url", content: url
23
23
  end
24
24
 
25
- def any_cable_jwt_meta_tag(**identifiers)
25
+ def anycable_token_meta_tag(**identifiers)
26
26
  token = JWT.encode(identifiers)
27
27
 
28
- tag "meta", name: "any-cable-jwt", content: token
28
+ tag "meta", name: "cable-token", content: token
29
29
  end
30
30
 
31
31
  def signed_stream_name(streamables)
@@ -15,14 +15,9 @@ module RuboCop
15
15
  #
16
16
  class PeriodicalTimers < RuboCop::Cop::Base
17
17
  MSG = "Periodical Timers are not supported in AnyCable"
18
+ RESTRICT_ON_SEND = %i[periodically].freeze
18
19
 
19
- def_node_matcher :calls_periodically?, <<-PATTERN
20
- (send _ :periodically ...)
21
- PATTERN
22
-
23
- def on_send(node)
24
- add_offense(node) if calls_periodically?(node)
25
- end
20
+ alias_method :on_send, :add_offense
26
21
  end
27
22
  end
28
23
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module AnyCable
4
4
  module Rails
5
- VERSION = "1.6.0.rc.2"
5
+ VERSION = "1.6.0"
6
6
  end
7
7
  end
@@ -37,24 +37,35 @@ module AnyCableRailsGenerators
37
37
  return latest_release_url(version) if version == "latest"
38
38
 
39
39
  if Gem::Version.new(version).segments.first >= 1
40
- new_release_url("v#{version}")
40
+ new_release_url(version)
41
41
  else
42
- legacy_release_url("v#{version}")
42
+ legacy_release_url(version)
43
+ end
44
+ end
45
+
46
+ def repository_name(version)
47
+ return "anycable/anycable" if version == "latest"
48
+
49
+ major, minor, = Gem::Version.new(version).segments
50
+ if (major >= 1 && minor >= 6) || (major > 1)
51
+ "anycable/anycable"
52
+ else
53
+ "anycable/anycable-go"
43
54
  end
44
55
  end
45
56
 
46
57
  def legacy_release_url(version)
47
- "https://github.com/anycable/anycable-go/releases/download/#{version}/" \
58
+ "https://github.com/#{repository_name(version)}/releases/download/v#{version}/" \
48
59
  "anycable-go-v#{version}-#{os_name}-#{cpu_name}"
49
60
  end
50
61
 
51
62
  def new_release_url(version)
52
- "https://github.com/anycable/anycable-go/releases/download/#{version}/" \
63
+ "https://github.com/#{repository_name(version)}/releases/download/v#{version}/" \
53
64
  "anycable-go-#{os_name}-#{cpu_name}"
54
65
  end
55
66
 
56
67
  def latest_release_url(version)
57
- "https://github.com/anycable/anycable-go/releases/latest/download/" \
68
+ "https://github.com/#{repository_name(version)}/releases/latest/download/" \
58
69
  "anycable-go-#{os_name}-#{cpu_name}"
59
70
  end
60
71
 
@@ -88,6 +88,13 @@ module AnyCableRailsGenerators
88
88
  "`action_cable_meta_tag` or `action_cable_with_jwt_meta_tag` included in your HTML layout"
89
89
  end
90
90
 
91
+ def cable_engine_warning
92
+ return unless application_rb
93
+ return if application_rb.match?(/^require\s+['"](action_cable\/engine|rails\/all)['"]/)
94
+
95
+ say_status :help, "⚠️ Ensure Action Cable is loaded.\nAdd `require \"action_cable/engine\"` to your `config/application.rb`."
96
+ end
97
+
91
98
  def deployment_method
92
99
  say_status :info, "🚢 See our deployment guide to learn how to run AnyCable in production 👉 #{DOCS_ROOT}/deployment"
93
100
 
@@ -139,6 +146,17 @@ module AnyCableRailsGenerators
139
146
  end
140
147
  end
141
148
 
149
+ def application_rb
150
+ @application_rb ||= begin
151
+ res = nil
152
+ in_root do
153
+ next unless File.file?("config/application.rb")
154
+ res = File.read("config/application.rb")
155
+ end
156
+ res
157
+ end
158
+ end
159
+
142
160
  def install_for_docker
143
161
  say_status :help, "️️⚠️ Docker development configuration could vary", :yellow
144
162
 
metadata CHANGED
@@ -1,35 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: anycable-rails-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0.rc.2
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - palkan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-02-11 00:00:00.000000000 Z
11
+ date: 2025-03-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: anycable-core
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: 1.6.0.rc.1
20
- - - "<"
17
+ - - "~>"
21
18
  - !ruby/object:Gem::Version
22
- version: 1.7.0
19
+ version: 1.6.0
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
- - - ">="
24
+ - - "~>"
28
25
  - !ruby/object:Gem::Version
29
- version: 1.6.0.rc.1
30
- - - "<"
31
- - !ruby/object:Gem::Version
32
- version: 1.7.0
26
+ version: 1.6.0
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: actioncable
35
29
  requirement: !ruby/object:Gem::Requirement
@@ -150,9 +144,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
150
144
  version: '2.7'
151
145
  required_rubygems_version: !ruby/object:Gem::Requirement
152
146
  requirements:
153
- - - ">"
147
+ - - ">="
154
148
  - !ruby/object:Gem::Version
155
- version: 1.3.1
149
+ version: '0'
156
150
  requirements: []
157
151
  rubygems_version: 3.4.19
158
152
  signing_key: