turbo-rails 0.5.1 → 0.5.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +18 -23
- data/app/assets/javascripts/turbo.js +272 -145
- data/app/helpers/turbo/frames_helper.rb +9 -4
- data/app/helpers/turbo/includes_helper.rb +2 -0
- data/app/helpers/turbo/streams/action_helper.rb +1 -1
- data/app/helpers/turbo/streams_helper.rb +25 -2
- data/app/javascript/turbo/cable_stream_source_element.js +1 -1
- data/app/javascript/turbo/index.js +6 -2
- data/app/models/concerns/turbo/broadcastable.rb +15 -11
- data/app/models/turbo/streams/tag_builder.rb +2 -2
- data/lib/install/turbo_with_asset_pipeline.rb +36 -0
- data/lib/install/turbo_with_webpacker.rb +23 -0
- data/lib/tasks/turbo_tasks.rake +19 -1
- data/lib/turbo/engine.rb +10 -1
- data/lib/turbo/version.rb +1 -1
- metadata +10 -175
- data/.github/workflows/ci.yml +0 -24
- data/.gitignore +0 -2
- data/Gemfile +0 -6
- data/Gemfile.lock +0 -147
- data/lib/install/turbo.rb +0 -11
- data/package.json +0 -45
- data/rollup.config.js +0 -23
- data/test/drive/drive_helper_test.rb +0 -8
- data/test/dummy/.babelrc +0 -18
- data/test/dummy/.gitignore +0 -3
- data/test/dummy/.postcssrc.yml +0 -3
- data/test/dummy/Rakefile +0 -6
- data/test/dummy/app/assets/config/manifest.js +0 -2
- data/test/dummy/app/assets/images/.keep +0 -0
- data/test/dummy/app/assets/stylesheets/application.css +0 -15
- data/test/dummy/app/assets/stylesheets/scaffold.css +0 -80
- data/test/dummy/app/channels/application_cable/channel.rb +0 -4
- data/test/dummy/app/channels/application_cable/connection.rb +0 -4
- data/test/dummy/app/controllers/application_controller.rb +0 -2
- data/test/dummy/app/controllers/concerns/.keep +0 -0
- data/test/dummy/app/controllers/messages_controller.rb +0 -12
- data/test/dummy/app/controllers/trays_controller.rb +0 -17
- data/test/dummy/app/helpers/application_helper.rb +0 -2
- data/test/dummy/app/javascript/packs/application.js +0 -0
- data/test/dummy/app/jobs/application_job.rb +0 -2
- data/test/dummy/app/mailboxes/application_mailbox.rb +0 -2
- data/test/dummy/app/mailboxes/messages_mailbox.rb +0 -4
- data/test/dummy/app/mailers/application_mailer.rb +0 -4
- data/test/dummy/app/models/application_record.rb +0 -3
- data/test/dummy/app/models/concerns/.keep +0 -0
- data/test/dummy/app/models/message.rb +0 -29
- data/test/dummy/app/views/layouts/application.html.erb +0 -14
- data/test/dummy/app/views/layouts/mailer.html.erb +0 -13
- data/test/dummy/app/views/layouts/mailer.text.erb +0 -1
- data/test/dummy/app/views/messages/_message.html.erb +0 -1
- data/test/dummy/app/views/messages/_message.turbo_stream.erb +0 -1
- data/test/dummy/app/views/messages/show.turbo_stream.erb +0 -9
- data/test/dummy/app/views/trays/index.html.erb +0 -3
- data/test/dummy/app/views/trays/show.html.erb +0 -3
- data/test/dummy/bin/bundle +0 -3
- data/test/dummy/bin/rails +0 -4
- data/test/dummy/bin/rake +0 -4
- data/test/dummy/bin/setup +0 -36
- data/test/dummy/bin/update +0 -31
- data/test/dummy/bin/yarn +0 -11
- data/test/dummy/config.ru +0 -5
- data/test/dummy/config/application.rb +0 -22
- data/test/dummy/config/boot.rb +0 -5
- data/test/dummy/config/cable.yml +0 -10
- data/test/dummy/config/environment.rb +0 -5
- data/test/dummy/config/environments/development.rb +0 -34
- data/test/dummy/config/environments/production.rb +0 -96
- data/test/dummy/config/environments/test.rb +0 -38
- data/test/dummy/config/initializers/application_controller_renderer.rb +0 -8
- data/test/dummy/config/initializers/assets.rb +0 -14
- data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
- data/test/dummy/config/initializers/content_security_policy.rb +0 -22
- data/test/dummy/config/initializers/cookies_serializer.rb +0 -5
- data/test/dummy/config/initializers/filter_parameter_logging.rb +0 -4
- data/test/dummy/config/initializers/inflections.rb +0 -16
- data/test/dummy/config/initializers/mime_types.rb +0 -4
- data/test/dummy/config/initializers/wrap_parameters.rb +0 -14
- data/test/dummy/config/locales/en.yml +0 -33
- data/test/dummy/config/puma.rb +0 -34
- data/test/dummy/config/routes.rb +0 -4
- data/test/dummy/config/spring.rb +0 -6
- data/test/dummy/config/webpack/development.js +0 -3
- data/test/dummy/config/webpack/environment.js +0 -3
- data/test/dummy/config/webpack/production.js +0 -3
- data/test/dummy/config/webpack/test.js +0 -3
- data/test/dummy/config/webpacker.yml +0 -65
- data/test/dummy/lib/assets/.keep +0 -0
- data/test/dummy/log/.keep +0 -0
- data/test/dummy/public/404.html +0 -67
- data/test/dummy/public/422.html +0 -67
- data/test/dummy/public/500.html +0 -66
- data/test/dummy/public/apple-touch-icon-precomposed.png +0 -0
- data/test/dummy/public/apple-touch-icon.png +0 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/frames/frame_request_controller_test.rb +0 -21
- data/test/frames/frames_helper_test.rb +0 -15
- data/test/native/navigation_controller_test.rb +0 -42
- data/test/streams/broadcastable_test.rb +0 -80
- data/test/streams/streams_channel_test.rb +0 -105
- data/test/streams/streams_controller_test.rb +0 -29
- data/test/turbo_test.rb +0 -10
- data/turbo-rails.gemspec +0 -16
- data/yarn.lock +0 -283
@@ -7,17 +7,22 @@ module Turbo::FramesHelper
|
|
7
7
|
# <%= turbo_frame_tag "tray", src: tray_path(tray) %>
|
8
8
|
# # => <turbo-frame id="tray" src="http://example.com/trays/1"></turbo-frame>
|
9
9
|
#
|
10
|
-
# <%= turbo_frame_tag
|
11
|
-
# # => <turbo-frame id="
|
10
|
+
# <%= turbo_frame_tag tray, src: tray_path(tray) %>
|
11
|
+
# # => <turbo-frame id="tray_1" src="http://example.com/trays/1"></turbo-frame>
|
12
12
|
#
|
13
|
-
# <%= turbo_frame_tag "tray",
|
14
|
-
# # => <turbo-frame id="tray"
|
13
|
+
# <%= turbo_frame_tag "tray", src: tray_path(tray), target: "_top" %>
|
14
|
+
# # => <turbo-frame id="tray" target="_top" src="http://example.com/trays/1"></turbo-frame>
|
15
|
+
#
|
16
|
+
# <%= turbo_frame_tag "tray", target: "other_tray" %>
|
17
|
+
# # => <turbo-frame id="tray" target="other_tray"></turbo-frame>
|
15
18
|
#
|
16
19
|
# <%= turbo_frame_tag "tray" do %>
|
17
20
|
# <div>My tray frame!</div>
|
18
21
|
# <% end %>
|
19
22
|
# # => <turbo-frame id="tray"><div>My tray frame!</div></turbo-frame>
|
20
23
|
def turbo_frame_tag(id, src: nil, target: nil, **attributes, &block)
|
24
|
+
id = id.respond_to?(:to_key) ? dom_id(id) : id
|
25
|
+
|
21
26
|
tag.turbo_frame(**attributes.merge(id: id, src: src, target: target).compact, &block)
|
22
27
|
end
|
23
28
|
end
|
@@ -1,4 +1,6 @@
|
|
1
1
|
module Turbo::IncludesHelper
|
2
|
+
# DEPRECATED: Just use <tt>javascript_include_tag "turbo", type: "module"</tt> directly if using Turbo alone, or
|
3
|
+
# javascript_include_tag "turbo", type: "module-shim" if together with Stimulus and importmaps.
|
2
4
|
def turbo_include_tags
|
3
5
|
javascript_include_tag("turbo", type: "module")
|
4
6
|
end
|
@@ -8,7 +8,7 @@ module Turbo::Streams::ActionHelper
|
|
8
8
|
# # => <turbo-stream action="replace" target="message_1"><template><div id="message_1">Hello!</div></template></turbo-stream>
|
9
9
|
def turbo_stream_action_tag(action, target:, template: nil)
|
10
10
|
target = convert_to_turbo_stream_dom_id(target)
|
11
|
-
template =
|
11
|
+
template = action.to_sym == :remove ? "" : "<template>#{template}</template>"
|
12
12
|
|
13
13
|
%(<turbo-stream action="#{action}" target="#{target}">#{template}</turbo-stream>).html_safe
|
14
14
|
end
|
@@ -1,6 +1,29 @@
|
|
1
1
|
module Turbo::StreamsHelper
|
2
2
|
# Returns a new <tt>Turbo::Streams::TagBuilder</tt> object that accepts stream actions and renders them them as
|
3
3
|
# the template tags needed to send across the wire. This object is automatically yielded to turbo_stream.erb templates.
|
4
|
+
#
|
5
|
+
# When responding to HTTP requests, controllers can declare `turbo_stream` format response templates in that same
|
6
|
+
# style as `html` and `json` response formats. For example, consider a `MessagesController` that responds to both
|
7
|
+
# `text/html` and `text/vnd.turbo-stream.html` requests along with a `.turbo_stream.erb` action template:
|
8
|
+
#
|
9
|
+
# def create
|
10
|
+
# @message = Message.create!(params.require(:message).permit(:content))
|
11
|
+
# respond_to do |format|
|
12
|
+
# format.turbo_stream
|
13
|
+
# format.html { redirect_to messages_url }
|
14
|
+
# end
|
15
|
+
# end
|
16
|
+
#
|
17
|
+
# <%# app/views/messages/create.turbo_stream.erb %>
|
18
|
+
# <%= turbo_stream.append "messages", @message %>
|
19
|
+
#
|
20
|
+
# <%= turbo_stream.replace "new_message" do %>
|
21
|
+
# <%= render partial: "new_message", locals: { room: @room } %>
|
22
|
+
# <% end %>
|
23
|
+
#
|
24
|
+
# When a `app/views/messages/create.turbo_stream.erb` template exists, the
|
25
|
+
# `MessagesController#create` will respond to `text/vnd.turbo-stream.html`
|
26
|
+
# requests by rendering the `messages/create.turbo_stream.erb` view template and transmitting the response
|
4
27
|
def turbo_stream
|
5
28
|
Turbo::Streams::TagBuilder.new(self)
|
6
29
|
end
|
@@ -11,11 +34,11 @@ module Turbo::StreamsHelper
|
|
11
34
|
#
|
12
35
|
# # app/views/entries/index.html.erb
|
13
36
|
# <%= turbo_stream_from Current.account, :entries %>
|
14
|
-
# <div id="entries">New entries will be appended to this
|
37
|
+
# <div id="entries">New entries will be appended to this target</div>
|
15
38
|
#
|
16
39
|
# The example above will process all turbo streams sent to a stream name like <tt>account:5:entries</tt>
|
17
40
|
# (when Current.account.id = 5). Updates to this stream can be sent like
|
18
|
-
# <tt>entry.broadcast_append_to entry.account, :entries,
|
41
|
+
# <tt>entry.broadcast_append_to entry.account, :entries, target: "entries"</tt>.
|
19
42
|
def turbo_stream_from(*streamables)
|
20
43
|
tag.turbo_cable_stream_source channel: "Turbo::StreamsChannel", "signed-stream-name": Turbo::StreamsChannel.signed_stream_name(streamables)
|
21
44
|
end
|
@@ -4,7 +4,7 @@ import { subscribeTo } from "./cable"
|
|
4
4
|
class TurboCableStreamSourceElement extends HTMLElement {
|
5
5
|
async connectedCallback() {
|
6
6
|
connectStreamSource(this)
|
7
|
-
this.subscription = subscribeTo(this.channel, { received: this.dispatchMessageEvent.bind(this) })
|
7
|
+
this.subscription = await subscribeTo(this.channel, { received: this.dispatchMessageEvent.bind(this) })
|
8
8
|
}
|
9
9
|
|
10
10
|
disconnectedCallback() {
|
@@ -51,18 +51,23 @@ module Turbo::Broadcastable
|
|
51
51
|
# belongs_to :board
|
52
52
|
# broadcasts_to ->(message) { [ message.board, :messages ] }, inserts_by: :prepend, target: "board_messages"
|
53
53
|
# end
|
54
|
-
def broadcasts_to(stream, inserts_by: :append, target:
|
54
|
+
def broadcasts_to(stream, inserts_by: :append, target: broadcast_target_default)
|
55
55
|
after_create_commit -> { broadcast_action_later_to stream.try(:call, self) || send(stream), action: inserts_by, target: target }
|
56
56
|
after_update_commit -> { broadcast_replace_later_to stream.try(:call, self) || send(stream) }
|
57
57
|
after_destroy_commit -> { broadcast_remove_to stream.try(:call, self) || send(stream) }
|
58
58
|
end
|
59
59
|
|
60
60
|
# Same as <tt>#broadcasts_to</tt>, but the designated stream is automatically set to the current model.
|
61
|
-
def broadcasts(inserts_by: :append, target:
|
61
|
+
def broadcasts(inserts_by: :append, target: broadcast_target_default)
|
62
62
|
after_create_commit -> { broadcast_action_later action: inserts_by, target: target }
|
63
63
|
after_update_commit -> { broadcast_replace_later }
|
64
64
|
after_destroy_commit -> { broadcast_remove }
|
65
65
|
end
|
66
|
+
|
67
|
+
# All default targets will use the return of this method. Overwrite if you want something else than <tt>model_name.plural</tt>.
|
68
|
+
def broadcast_target_default
|
69
|
+
model_name.plural
|
70
|
+
end
|
66
71
|
end
|
67
72
|
|
68
73
|
# Remove this broadcastable model from the dom for subscribers of the stream name identified by the passed streamables.
|
@@ -202,15 +207,14 @@ module Turbo::Broadcastable
|
|
202
207
|
# # Template: entries/_entry.turbo_stream.erb
|
203
208
|
# <%= turbo_stream.remove entry %>
|
204
209
|
#
|
205
|
-
# <%= turbo_stream.append "entries"
|
206
|
-
# <%= render partial: "entries/entry", locals: { entry: entry }, formats: [ :html ] %>
|
207
|
-
# <% end if entry.active? %>
|
210
|
+
# <%= turbo_stream.append "entries", entry if entry.active? %>
|
208
211
|
#
|
209
|
-
#
|
210
|
-
#
|
211
|
-
#
|
212
|
-
#
|
213
|
-
#
|
212
|
+
# Sends:
|
213
|
+
#
|
214
|
+
# <turbo-stream action="remove" target="entry_5"></turbo-stream>
|
215
|
+
# <turbo-stream action="append" target="entries"><template><div id="entry_5">My Entry</div></template></turbo-stream>
|
216
|
+
#
|
217
|
+
# ...to the stream named "entry:5"
|
214
218
|
def broadcast_render_later(**rendering)
|
215
219
|
broadcast_render_later_to self, **rendering
|
216
220
|
end
|
@@ -224,7 +228,7 @@ module Turbo::Broadcastable
|
|
224
228
|
|
225
229
|
private
|
226
230
|
def broadcast_target_default
|
227
|
-
|
231
|
+
self.class.broadcast_target_default
|
228
232
|
end
|
229
233
|
|
230
234
|
def broadcast_rendering_with_defaults(options)
|
@@ -12,8 +12,8 @@
|
|
12
12
|
# <%= turbo_stream.remove entry %>
|
13
13
|
#
|
14
14
|
# <%= turbo_stream.append "entries" do %>
|
15
|
-
# <% # format
|
16
|
-
# <%= render partial: "entries/entry", locals: { entry: entry }
|
15
|
+
# <% # format is automatically switched, such that _entry.html.erb partial is rendered, not _entry.turbo_stream.erb %>
|
16
|
+
# <%= render partial: "entries/entry", locals: { entry: entry } %>
|
17
17
|
# <%= end %>
|
18
18
|
#
|
19
19
|
# Or you can render the HTML that should be part of the update inline:
|
@@ -0,0 +1,36 @@
|
|
1
|
+
APPLICATION_LAYOUT_PATH = Rails.root.join("app/views/layouts/application.html.erb")
|
2
|
+
IMPORTMAP_PATH = Rails.root.join("app/assets/javascripts/importmap.json.erb")
|
3
|
+
|
4
|
+
if APPLICATION_LAYOUT_PATH.exist?
|
5
|
+
say "Yield head in application layout for cache helper"
|
6
|
+
insert_into_file APPLICATION_LAYOUT_PATH.to_s, "\n <%= yield :head %>", before: /\s*<\/head>/
|
7
|
+
|
8
|
+
if APPLICATION_LAYOUT_PATH.read =~ /stimulus/
|
9
|
+
say "Add Turbo include tags in application layout"
|
10
|
+
insert_into_file APPLICATION_LAYOUT_PATH.to_s, %(\n <%= javascript_include_tag "turbo", type: "module-shim" %>), after: /<%= stimulus_include_tags %>/
|
11
|
+
|
12
|
+
if IMPORTMAP_PATH.exist?
|
13
|
+
say "Add Turbo to importmap"
|
14
|
+
insert_into_file IMPORTMAP_PATH, %( "turbo": "<%= asset_path "turbo" %>",\n), after: / "imports": {\n/
|
15
|
+
end
|
16
|
+
else
|
17
|
+
say "Add Turbo include tags in application layout"
|
18
|
+
insert_into_file APPLICATION_LAYOUT_PATH.to_s, %(\n <%= javascript_include_tag "turbo", type: "module" %>), before: /\s*<\/head>/
|
19
|
+
end
|
20
|
+
else
|
21
|
+
say "Default application.html.erb is missing!", :red
|
22
|
+
|
23
|
+
if APPLICATION_LAYOUT_PATH.read =~ /stimulus/
|
24
|
+
say %( Add <%= javascript_include_tag("turbo", type: "module-shim") %> and <%= yield :head %> within the <head> tag after Stimulus includes in your custom layout.)
|
25
|
+
else
|
26
|
+
say %( Add <%= javascript_include_tag("turbo", type: "module") %> and <%= yield :head %> within the <head> tag in your custom layout.)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
say "Enable redis in bundle"
|
31
|
+
uncomment_lines "Gemfile", %(gem 'redis')
|
32
|
+
|
33
|
+
say "Switch development cable to use redis"
|
34
|
+
gsub_file "config/cable.yml", /development:\n\s+adapter: async/, "development:\n adapter: redis\n url: redis://localhost:6379/1"
|
35
|
+
|
36
|
+
say "Turbo successfully installed ⚡️", :green
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# Some Rails versions use commonJS(require) others use ESM(import).
|
2
|
+
TURBOLINKS_REGEX = /(import .* from "turbolinks".*\n|require\("turbolinks"\).*\n)/.freeze
|
3
|
+
|
4
|
+
abort "❌ Webpacker not found. Exiting." unless defined?(Webpacker::Engine)
|
5
|
+
|
6
|
+
say "Install Turbo"
|
7
|
+
run "yarn add @hotwired/turbo-rails"
|
8
|
+
insert_into_file "#{Webpacker.config.source_entry_path}/application.js", "import \"@hotwired/turbo-rails\"\n", before: /import.*ActiveStorage/
|
9
|
+
|
10
|
+
say "Remove Turbolinks"
|
11
|
+
gsub_file 'Gemfile', /gem 'turbolinks'.*/, ''
|
12
|
+
run "bin/bundle", capture: true
|
13
|
+
run "bin/yarn remove turbolinks"
|
14
|
+
gsub_file "#{Webpacker.config.source_entry_path}/application.js", TURBOLINKS_REGEX, ''
|
15
|
+
gsub_file "#{Webpacker.config.source_entry_path}/application.js", /Turbolinks.start.*\n/, ''
|
16
|
+
|
17
|
+
say "Enable redis in bundle"
|
18
|
+
uncomment_lines "Gemfile", %(gem 'redis')
|
19
|
+
|
20
|
+
say "Switch development cable to use redis"
|
21
|
+
gsub_file "config/cable.yml", /development:\n\s+adapter: async/, "development:\n adapter: redis\n url: redis://localhost:6379/1"
|
22
|
+
|
23
|
+
say "Turbo successfully installed ⚡️", :green
|
data/lib/tasks/turbo_tasks.rake
CHANGED
@@ -1,6 +1,24 @@
|
|
1
|
+
def run_install_template(path) system "#{RbConfig.ruby} ./bin/rails app:template LOCATION=#{File.expand_path("../install/#{path}.rb", __dir__)}" end
|
2
|
+
|
1
3
|
namespace :turbo do
|
2
4
|
desc "Install Turbo into the app"
|
3
5
|
task :install do
|
4
|
-
|
6
|
+
if defined?(Webpacker::Engine)
|
7
|
+
Rake::Task["turbo:install:webpacker"].invoke
|
8
|
+
else
|
9
|
+
Rake::Task["turbo:install:asset_pipeline"].invoke
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
namespace :install do
|
14
|
+
desc "Install Turbo into the app with asset pipeline"
|
15
|
+
task :asset_pipeline do
|
16
|
+
run_install_template "turbo_with_asset_pipeline"
|
17
|
+
end
|
18
|
+
|
19
|
+
desc "Install Turbo into the app with webpacker"
|
20
|
+
task :webpacker do
|
21
|
+
run_install_template "turbo_with_webpacker"
|
22
|
+
end
|
5
23
|
end
|
6
24
|
end
|
data/lib/turbo/engine.rb
CHANGED
@@ -6,6 +6,15 @@ module Turbo
|
|
6
6
|
isolate_namespace Turbo
|
7
7
|
config.eager_load_namespaces << Turbo
|
8
8
|
config.turbo = ActiveSupport::OrderedOptions.new
|
9
|
+
config.autoload_once_paths = %W(
|
10
|
+
#{root}/app/channels
|
11
|
+
#{root}/app/controllers
|
12
|
+
#{root}/app/controllers/concerns
|
13
|
+
#{root}/app/helpers
|
14
|
+
#{root}/app/models
|
15
|
+
#{root}/app/models/concerns
|
16
|
+
#{root}/app/jobs
|
17
|
+
)
|
9
18
|
|
10
19
|
initializer "turbo.assets" do
|
11
20
|
if Rails.application.config.respond_to?(:assets)
|
@@ -27,7 +36,7 @@ module Turbo
|
|
27
36
|
end
|
28
37
|
|
29
38
|
initializer "turbo.mimetype" do
|
30
|
-
Mime::Type.register "text/
|
39
|
+
Mime::Type.register "text/vnd.turbo-stream.html", :turbo_stream
|
31
40
|
end
|
32
41
|
|
33
42
|
initializer "turbo.renderer" do
|
data/lib/turbo/version.rb
CHANGED
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: turbo-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sam Stephenson
|
8
8
|
- Javan Mahkmali
|
9
9
|
- David Heinemeier Hansson
|
10
|
-
autorequire:
|
10
|
+
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2021-01-15 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|
@@ -26,16 +26,12 @@ dependencies:
|
|
26
26
|
- - ">="
|
27
27
|
- !ruby/object:Gem::Version
|
28
28
|
version: 6.0.0
|
29
|
-
description:
|
29
|
+
description:
|
30
30
|
email: david@loudthinking.com
|
31
31
|
executables: []
|
32
32
|
extensions: []
|
33
33
|
extra_rdoc_files: []
|
34
34
|
files:
|
35
|
-
- ".github/workflows/ci.yml"
|
36
|
-
- ".gitignore"
|
37
|
-
- Gemfile
|
38
|
-
- Gemfile.lock
|
39
35
|
- MIT-LICENSE
|
40
36
|
- README.md
|
41
37
|
- Rakefile
|
@@ -60,100 +56,18 @@ files:
|
|
60
56
|
- app/models/concerns/turbo/broadcastable.rb
|
61
57
|
- app/models/turbo/streams/tag_builder.rb
|
62
58
|
- config/routes.rb
|
63
|
-
- lib/install/
|
59
|
+
- lib/install/turbo_with_asset_pipeline.rb
|
60
|
+
- lib/install/turbo_with_webpacker.rb
|
64
61
|
- lib/tasks/turbo_tasks.rake
|
65
62
|
- lib/turbo-rails.rb
|
66
63
|
- lib/turbo/engine.rb
|
67
64
|
- lib/turbo/test_assertions.rb
|
68
65
|
- lib/turbo/version.rb
|
69
|
-
- package.json
|
70
|
-
- rollup.config.js
|
71
|
-
- test/drive/drive_helper_test.rb
|
72
|
-
- test/dummy/.babelrc
|
73
|
-
- test/dummy/.gitignore
|
74
|
-
- test/dummy/.postcssrc.yml
|
75
|
-
- test/dummy/Rakefile
|
76
|
-
- test/dummy/app/assets/config/manifest.js
|
77
|
-
- test/dummy/app/assets/images/.keep
|
78
|
-
- test/dummy/app/assets/stylesheets/application.css
|
79
|
-
- test/dummy/app/assets/stylesheets/scaffold.css
|
80
|
-
- test/dummy/app/channels/application_cable/channel.rb
|
81
|
-
- test/dummy/app/channels/application_cable/connection.rb
|
82
|
-
- test/dummy/app/controllers/application_controller.rb
|
83
|
-
- test/dummy/app/controllers/concerns/.keep
|
84
|
-
- test/dummy/app/controllers/messages_controller.rb
|
85
|
-
- test/dummy/app/controllers/trays_controller.rb
|
86
|
-
- test/dummy/app/helpers/application_helper.rb
|
87
|
-
- test/dummy/app/javascript/packs/application.js
|
88
|
-
- test/dummy/app/jobs/application_job.rb
|
89
|
-
- test/dummy/app/mailboxes/application_mailbox.rb
|
90
|
-
- test/dummy/app/mailboxes/messages_mailbox.rb
|
91
|
-
- test/dummy/app/mailers/application_mailer.rb
|
92
|
-
- test/dummy/app/models/application_record.rb
|
93
|
-
- test/dummy/app/models/concerns/.keep
|
94
|
-
- test/dummy/app/models/message.rb
|
95
|
-
- test/dummy/app/views/layouts/application.html.erb
|
96
|
-
- test/dummy/app/views/layouts/mailer.html.erb
|
97
|
-
- test/dummy/app/views/layouts/mailer.text.erb
|
98
|
-
- test/dummy/app/views/messages/_message.html.erb
|
99
|
-
- test/dummy/app/views/messages/_message.turbo_stream.erb
|
100
|
-
- test/dummy/app/views/messages/show.turbo_stream.erb
|
101
|
-
- test/dummy/app/views/trays/index.html.erb
|
102
|
-
- test/dummy/app/views/trays/show.html.erb
|
103
|
-
- test/dummy/bin/bundle
|
104
|
-
- test/dummy/bin/rails
|
105
|
-
- test/dummy/bin/rake
|
106
|
-
- test/dummy/bin/setup
|
107
|
-
- test/dummy/bin/update
|
108
|
-
- test/dummy/bin/yarn
|
109
|
-
- test/dummy/config.ru
|
110
|
-
- test/dummy/config/application.rb
|
111
|
-
- test/dummy/config/boot.rb
|
112
|
-
- test/dummy/config/cable.yml
|
113
|
-
- test/dummy/config/environment.rb
|
114
|
-
- test/dummy/config/environments/development.rb
|
115
|
-
- test/dummy/config/environments/production.rb
|
116
|
-
- test/dummy/config/environments/test.rb
|
117
|
-
- test/dummy/config/initializers/application_controller_renderer.rb
|
118
|
-
- test/dummy/config/initializers/assets.rb
|
119
|
-
- test/dummy/config/initializers/backtrace_silencers.rb
|
120
|
-
- test/dummy/config/initializers/content_security_policy.rb
|
121
|
-
- test/dummy/config/initializers/cookies_serializer.rb
|
122
|
-
- test/dummy/config/initializers/filter_parameter_logging.rb
|
123
|
-
- test/dummy/config/initializers/inflections.rb
|
124
|
-
- test/dummy/config/initializers/mime_types.rb
|
125
|
-
- test/dummy/config/initializers/wrap_parameters.rb
|
126
|
-
- test/dummy/config/locales/en.yml
|
127
|
-
- test/dummy/config/puma.rb
|
128
|
-
- test/dummy/config/routes.rb
|
129
|
-
- test/dummy/config/spring.rb
|
130
|
-
- test/dummy/config/webpack/development.js
|
131
|
-
- test/dummy/config/webpack/environment.js
|
132
|
-
- test/dummy/config/webpack/production.js
|
133
|
-
- test/dummy/config/webpack/test.js
|
134
|
-
- test/dummy/config/webpacker.yml
|
135
|
-
- test/dummy/lib/assets/.keep
|
136
|
-
- test/dummy/log/.keep
|
137
|
-
- test/dummy/public/404.html
|
138
|
-
- test/dummy/public/422.html
|
139
|
-
- test/dummy/public/500.html
|
140
|
-
- test/dummy/public/apple-touch-icon-precomposed.png
|
141
|
-
- test/dummy/public/apple-touch-icon.png
|
142
|
-
- test/dummy/public/favicon.ico
|
143
|
-
- test/frames/frame_request_controller_test.rb
|
144
|
-
- test/frames/frames_helper_test.rb
|
145
|
-
- test/native/navigation_controller_test.rb
|
146
|
-
- test/streams/broadcastable_test.rb
|
147
|
-
- test/streams/streams_channel_test.rb
|
148
|
-
- test/streams/streams_controller_test.rb
|
149
|
-
- test/turbo_test.rb
|
150
|
-
- turbo-rails.gemspec
|
151
|
-
- yarn.lock
|
152
66
|
homepage: https://github.com/hotwired/turbo-rails
|
153
67
|
licenses:
|
154
68
|
- MIT
|
155
69
|
metadata: {}
|
156
|
-
post_install_message:
|
70
|
+
post_install_message:
|
157
71
|
rdoc_options: []
|
158
72
|
require_paths:
|
159
73
|
- lib
|
@@ -161,7 +75,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
161
75
|
requirements:
|
162
76
|
- - ">="
|
163
77
|
- !ruby/object:Gem::Version
|
164
|
-
version:
|
78
|
+
version: 2.6.0
|
165
79
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
166
80
|
requirements:
|
167
81
|
- - ">="
|
@@ -169,86 +83,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
169
83
|
version: '0'
|
170
84
|
requirements: []
|
171
85
|
rubygems_version: 3.1.2
|
172
|
-
signing_key:
|
86
|
+
signing_key:
|
173
87
|
specification_version: 4
|
174
88
|
summary: The speed of a single-page web application without having to write any JavaScript.
|
175
|
-
test_files:
|
176
|
-
- test/drive/drive_helper_test.rb
|
177
|
-
- test/dummy/.babelrc
|
178
|
-
- test/dummy/.gitignore
|
179
|
-
- test/dummy/.postcssrc.yml
|
180
|
-
- test/dummy/Rakefile
|
181
|
-
- test/dummy/app/assets/config/manifest.js
|
182
|
-
- test/dummy/app/assets/images/.keep
|
183
|
-
- test/dummy/app/assets/stylesheets/application.css
|
184
|
-
- test/dummy/app/assets/stylesheets/scaffold.css
|
185
|
-
- test/dummy/app/channels/application_cable/channel.rb
|
186
|
-
- test/dummy/app/channels/application_cable/connection.rb
|
187
|
-
- test/dummy/app/controllers/application_controller.rb
|
188
|
-
- test/dummy/app/controllers/concerns/.keep
|
189
|
-
- test/dummy/app/controllers/messages_controller.rb
|
190
|
-
- test/dummy/app/controllers/trays_controller.rb
|
191
|
-
- test/dummy/app/helpers/application_helper.rb
|
192
|
-
- test/dummy/app/javascript/packs/application.js
|
193
|
-
- test/dummy/app/jobs/application_job.rb
|
194
|
-
- test/dummy/app/mailboxes/application_mailbox.rb
|
195
|
-
- test/dummy/app/mailboxes/messages_mailbox.rb
|
196
|
-
- test/dummy/app/mailers/application_mailer.rb
|
197
|
-
- test/dummy/app/models/application_record.rb
|
198
|
-
- test/dummy/app/models/concerns/.keep
|
199
|
-
- test/dummy/app/models/message.rb
|
200
|
-
- test/dummy/app/views/layouts/application.html.erb
|
201
|
-
- test/dummy/app/views/layouts/mailer.html.erb
|
202
|
-
- test/dummy/app/views/layouts/mailer.text.erb
|
203
|
-
- test/dummy/app/views/messages/_message.html.erb
|
204
|
-
- test/dummy/app/views/messages/_message.turbo_stream.erb
|
205
|
-
- test/dummy/app/views/messages/show.turbo_stream.erb
|
206
|
-
- test/dummy/app/views/trays/index.html.erb
|
207
|
-
- test/dummy/app/views/trays/show.html.erb
|
208
|
-
- test/dummy/bin/bundle
|
209
|
-
- test/dummy/bin/rails
|
210
|
-
- test/dummy/bin/rake
|
211
|
-
- test/dummy/bin/setup
|
212
|
-
- test/dummy/bin/update
|
213
|
-
- test/dummy/bin/yarn
|
214
|
-
- test/dummy/config.ru
|
215
|
-
- test/dummy/config/application.rb
|
216
|
-
- test/dummy/config/boot.rb
|
217
|
-
- test/dummy/config/cable.yml
|
218
|
-
- test/dummy/config/environment.rb
|
219
|
-
- test/dummy/config/environments/development.rb
|
220
|
-
- test/dummy/config/environments/production.rb
|
221
|
-
- test/dummy/config/environments/test.rb
|
222
|
-
- test/dummy/config/initializers/application_controller_renderer.rb
|
223
|
-
- test/dummy/config/initializers/assets.rb
|
224
|
-
- test/dummy/config/initializers/backtrace_silencers.rb
|
225
|
-
- test/dummy/config/initializers/content_security_policy.rb
|
226
|
-
- test/dummy/config/initializers/cookies_serializer.rb
|
227
|
-
- test/dummy/config/initializers/filter_parameter_logging.rb
|
228
|
-
- test/dummy/config/initializers/inflections.rb
|
229
|
-
- test/dummy/config/initializers/mime_types.rb
|
230
|
-
- test/dummy/config/initializers/wrap_parameters.rb
|
231
|
-
- test/dummy/config/locales/en.yml
|
232
|
-
- test/dummy/config/puma.rb
|
233
|
-
- test/dummy/config/routes.rb
|
234
|
-
- test/dummy/config/spring.rb
|
235
|
-
- test/dummy/config/webpack/development.js
|
236
|
-
- test/dummy/config/webpack/environment.js
|
237
|
-
- test/dummy/config/webpack/production.js
|
238
|
-
- test/dummy/config/webpack/test.js
|
239
|
-
- test/dummy/config/webpacker.yml
|
240
|
-
- test/dummy/lib/assets/.keep
|
241
|
-
- test/dummy/log/.keep
|
242
|
-
- test/dummy/public/404.html
|
243
|
-
- test/dummy/public/422.html
|
244
|
-
- test/dummy/public/500.html
|
245
|
-
- test/dummy/public/apple-touch-icon-precomposed.png
|
246
|
-
- test/dummy/public/apple-touch-icon.png
|
247
|
-
- test/dummy/public/favicon.ico
|
248
|
-
- test/frames/frame_request_controller_test.rb
|
249
|
-
- test/frames/frames_helper_test.rb
|
250
|
-
- test/native/navigation_controller_test.rb
|
251
|
-
- test/streams/broadcastable_test.rb
|
252
|
-
- test/streams/streams_channel_test.rb
|
253
|
-
- test/streams/streams_controller_test.rb
|
254
|
-
- test/turbo_test.rb
|
89
|
+
test_files: []
|