yrby-rails 0.4.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.
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "y"
4
+
5
+ module Y
6
+ # ActionCable integration for yrby.
7
+ #
8
+ # Provides Y::ActionCable::Sync, a channel concern implementing the
9
+ # y-websocket sync protocol and awareness/presence over ActionCable (and
10
+ # AnyCable), so a Rails app can be the collaboration server for Y.js editors
11
+ # with no Node sidecar. The CRDT documents, awareness, and protocol primitives
12
+ # themselves come from the core `yrby` gem.
13
+ module ActionCable
14
+ # `include Y::ActionCable` forwards to `Y::ActionCable::Sync`, the
15
+ # module's home. Both spellings work; the short one reads better in a
16
+ # channel.
17
+ def self.included(base)
18
+ base.include(Sync)
19
+ end
20
+ end
21
+ end
22
+
23
+ require "y/action_cable/sync"
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rails/engine"
4
+ require "action_dispatch" # Engine::Configuration references it at subclass definition
5
+
6
+ module Yrby
7
+ # The Rails engine. Autoloads the gem's models (Y::Document,
8
+ # Y::DocumentUpdate) from app/models.
9
+ class Engine < ::Rails::Engine
10
+ end
11
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Yrby
4
+ module Rails
5
+ VERSION = "0.4.0"
6
+ end
7
+ end
data/lib/yrby-rails.rb ADDED
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Entry point matching the gem name, so `Bundler.require` loads it automatically.
4
+ require "yrby/rails/version"
5
+ require "y/action_cable"
6
+ require "yrby/engine" if defined?(Rails::Engine)
metadata ADDED
@@ -0,0 +1,175 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: yrby-rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.0
5
+ platform: ruby
6
+ authors:
7
+ - JP Camara
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: activerecord
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '7.1'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '7.1'
26
+ - !ruby/object:Gem::Dependency
27
+ name: base64
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '0.2'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '0.2'
40
+ - !ruby/object:Gem::Dependency
41
+ name: railties
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '7.1'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '7.1'
54
+ - !ruby/object:Gem::Dependency
55
+ name: yrby
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 0.3.1
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: 0.3.1
68
+ - !ruby/object:Gem::Dependency
69
+ name: actioncable
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '7.1'
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '7.1'
82
+ - !ruby/object:Gem::Dependency
83
+ name: activesupport
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '7.1'
89
+ type: :runtime
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '7.1'
96
+ - !ruby/object:Gem::Dependency
97
+ name: minitest
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '5.0'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '5.0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: rake
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '13.0'
117
+ type: :development
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '13.0'
124
+ description: 'The Rails integration for yrby (formerly yrby-actioncable): a y-websocket
125
+ sync channel for Action Cable and AnyCable (include Y::ActionCable), engine-owned
126
+ document storage with compaction (Y::Document, Y::DocumentUpdate), and an install
127
+ generator. A Rails app serves Y.js editors with no Node sidecar.'
128
+ email:
129
+ - johnpcamara@gmail.com
130
+ executables: []
131
+ extensions: []
132
+ extra_rdoc_files: []
133
+ files:
134
+ - CHANGELOG-rails.md
135
+ - LICENSE
136
+ - README.md
137
+ - app/models/y/document.rb
138
+ - app/models/y/document_update.rb
139
+ - lib/generators/yrby/install/USAGE
140
+ - lib/generators/yrby/install/install_generator.rb
141
+ - lib/generators/yrby/install/templates/document_channel.rb
142
+ - lib/generators/yrby/tables/tables_generator.rb
143
+ - lib/generators/yrby/tables/templates/create_y_tables.rb
144
+ - lib/y/action_cable.rb
145
+ - lib/y/action_cable/sync.rb
146
+ - lib/yrby-rails.rb
147
+ - lib/yrby/engine.rb
148
+ - lib/yrby/rails/version.rb
149
+ homepage: https://github.com/jpcamara/yrby
150
+ licenses:
151
+ - MIT
152
+ metadata:
153
+ source_code_uri: https://github.com/jpcamara/yrby
154
+ changelog_uri: https://github.com/jpcamara/yrby/blob/main/CHANGELOG-rails.md
155
+ bug_tracker_uri: https://github.com/jpcamara/yrby/issues
156
+ rubygems_mfa_required: 'true'
157
+ rdoc_options: []
158
+ require_paths:
159
+ - lib
160
+ required_ruby_version: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - ">="
163
+ - !ruby/object:Gem::Version
164
+ version: 3.4.0
165
+ required_rubygems_version: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - ">="
168
+ - !ruby/object:Gem::Version
169
+ version: '0'
170
+ requirements: []
171
+ rubygems_version: 3.6.9
172
+ specification_version: 4
173
+ summary: 'The Rails integration for yrby: sync channel, document models, and install
174
+ generator'
175
+ test_files: []