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.
- checksums.yaml +7 -0
- data/CHANGELOG-rails.md +123 -0
- data/LICENSE +21 -0
- data/README.md +753 -0
- data/app/models/y/document.rb +182 -0
- data/app/models/y/document_update.rb +10 -0
- data/lib/generators/yrby/install/USAGE +11 -0
- data/lib/generators/yrby/install/install_generator.rb +44 -0
- data/lib/generators/yrby/install/templates/document_channel.rb +36 -0
- data/lib/generators/yrby/tables/tables_generator.rb +41 -0
- data/lib/generators/yrby/tables/templates/create_y_tables.rb +24 -0
- data/lib/y/action_cable/sync.rb +333 -0
- data/lib/y/action_cable.rb +23 -0
- data/lib/yrby/engine.rb +11 -0
- data/lib/yrby/rails/version.rb +7 -0
- data/lib/yrby-rails.rb +6 -0
- metadata +175 -0
|
@@ -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"
|
data/lib/yrby/engine.rb
ADDED
|
@@ -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
|
data/lib/yrby-rails.rb
ADDED
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: []
|