turbo-rails 0.5.0 → 0.5.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (105) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +18 -10
  3. data/app/assets/javascripts/turbo.js +272 -145
  4. data/app/helpers/turbo/frames_helper.rb +11 -6
  5. data/app/helpers/turbo/includes_helper.rb +2 -0
  6. data/app/helpers/turbo/streams/action_helper.rb +3 -3
  7. data/app/helpers/turbo/streams_helper.rb +25 -2
  8. data/app/javascript/turbo/cable_stream_source_element.js +1 -1
  9. data/app/javascript/turbo/index.js +6 -2
  10. data/app/models/concerns/turbo/broadcastable.rb +15 -11
  11. data/app/models/turbo/streams/tag_builder.rb +2 -2
  12. data/lib/install/turbo_with_asset_pipeline.rb +30 -0
  13. data/lib/install/turbo_with_webpacker.rb +23 -0
  14. data/lib/tasks/turbo_tasks.rake +19 -1
  15. data/lib/turbo/engine.rb +13 -2
  16. data/lib/turbo/version.rb +1 -1
  17. metadata +10 -175
  18. data/.github/workflows/ci.yml +0 -24
  19. data/.gitignore +0 -2
  20. data/Gemfile +0 -6
  21. data/Gemfile.lock +0 -147
  22. data/lib/install/turbo.rb +0 -11
  23. data/package.json +0 -42
  24. data/rollup.config.js +0 -23
  25. data/test/drive/drive_helper_test.rb +0 -8
  26. data/test/dummy/.babelrc +0 -18
  27. data/test/dummy/.gitignore +0 -3
  28. data/test/dummy/.postcssrc.yml +0 -3
  29. data/test/dummy/Rakefile +0 -6
  30. data/test/dummy/app/assets/config/manifest.js +0 -2
  31. data/test/dummy/app/assets/images/.keep +0 -0
  32. data/test/dummy/app/assets/stylesheets/application.css +0 -15
  33. data/test/dummy/app/assets/stylesheets/scaffold.css +0 -80
  34. data/test/dummy/app/channels/application_cable/channel.rb +0 -4
  35. data/test/dummy/app/channels/application_cable/connection.rb +0 -4
  36. data/test/dummy/app/controllers/application_controller.rb +0 -2
  37. data/test/dummy/app/controllers/concerns/.keep +0 -0
  38. data/test/dummy/app/controllers/messages_controller.rb +0 -12
  39. data/test/dummy/app/controllers/trays_controller.rb +0 -17
  40. data/test/dummy/app/helpers/application_helper.rb +0 -2
  41. data/test/dummy/app/javascript/packs/application.js +0 -0
  42. data/test/dummy/app/jobs/application_job.rb +0 -2
  43. data/test/dummy/app/mailboxes/application_mailbox.rb +0 -2
  44. data/test/dummy/app/mailboxes/messages_mailbox.rb +0 -4
  45. data/test/dummy/app/mailers/application_mailer.rb +0 -4
  46. data/test/dummy/app/models/application_record.rb +0 -3
  47. data/test/dummy/app/models/concerns/.keep +0 -0
  48. data/test/dummy/app/models/message.rb +0 -29
  49. data/test/dummy/app/views/layouts/application.html.erb +0 -14
  50. data/test/dummy/app/views/layouts/mailer.html.erb +0 -13
  51. data/test/dummy/app/views/layouts/mailer.text.erb +0 -1
  52. data/test/dummy/app/views/messages/_message.html.erb +0 -1
  53. data/test/dummy/app/views/messages/_message.turbo_stream.erb +0 -1
  54. data/test/dummy/app/views/messages/show.turbo_stream.erb +0 -9
  55. data/test/dummy/app/views/trays/index.html.erb +0 -3
  56. data/test/dummy/app/views/trays/show.html.erb +0 -3
  57. data/test/dummy/bin/bundle +0 -3
  58. data/test/dummy/bin/rails +0 -4
  59. data/test/dummy/bin/rake +0 -4
  60. data/test/dummy/bin/setup +0 -36
  61. data/test/dummy/bin/update +0 -31
  62. data/test/dummy/bin/yarn +0 -11
  63. data/test/dummy/config.ru +0 -5
  64. data/test/dummy/config/application.rb +0 -22
  65. data/test/dummy/config/boot.rb +0 -5
  66. data/test/dummy/config/cable.yml +0 -10
  67. data/test/dummy/config/environment.rb +0 -5
  68. data/test/dummy/config/environments/development.rb +0 -34
  69. data/test/dummy/config/environments/production.rb +0 -96
  70. data/test/dummy/config/environments/test.rb +0 -38
  71. data/test/dummy/config/initializers/application_controller_renderer.rb +0 -8
  72. data/test/dummy/config/initializers/assets.rb +0 -14
  73. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
  74. data/test/dummy/config/initializers/content_security_policy.rb +0 -22
  75. data/test/dummy/config/initializers/cookies_serializer.rb +0 -5
  76. data/test/dummy/config/initializers/filter_parameter_logging.rb +0 -4
  77. data/test/dummy/config/initializers/inflections.rb +0 -16
  78. data/test/dummy/config/initializers/mime_types.rb +0 -4
  79. data/test/dummy/config/initializers/wrap_parameters.rb +0 -14
  80. data/test/dummy/config/locales/en.yml +0 -33
  81. data/test/dummy/config/puma.rb +0 -34
  82. data/test/dummy/config/routes.rb +0 -4
  83. data/test/dummy/config/spring.rb +0 -6
  84. data/test/dummy/config/webpack/development.js +0 -3
  85. data/test/dummy/config/webpack/environment.js +0 -3
  86. data/test/dummy/config/webpack/production.js +0 -3
  87. data/test/dummy/config/webpack/test.js +0 -3
  88. data/test/dummy/config/webpacker.yml +0 -65
  89. data/test/dummy/lib/assets/.keep +0 -0
  90. data/test/dummy/log/.keep +0 -0
  91. data/test/dummy/public/404.html +0 -67
  92. data/test/dummy/public/422.html +0 -67
  93. data/test/dummy/public/500.html +0 -66
  94. data/test/dummy/public/apple-touch-icon-precomposed.png +0 -0
  95. data/test/dummy/public/apple-touch-icon.png +0 -0
  96. data/test/dummy/public/favicon.ico +0 -0
  97. data/test/frames/frame_request_controller_test.rb +0 -21
  98. data/test/frames/frames_helper_test.rb +0 -15
  99. data/test/native/navigation_controller_test.rb +0 -42
  100. data/test/streams/broadcastable_test.rb +0 -80
  101. data/test/streams/streams_channel_test.rb +0 -105
  102. data/test/streams/streams_controller_test.rb +0 -29
  103. data/test/turbo_test.rb +0 -10
  104. data/turbo-rails.gemspec +0 -16
  105. data/yarn.lock +0 -282
@@ -4,20 +4,25 @@ module Turbo::FramesHelper
4
4
  #
5
5
  # === Examples
6
6
  #
7
- # # => turbo-frame id="tray" src="http://example.com/trays/1"></turbo-frame>
8
7
  # <%= turbo_frame_tag "tray", src: tray_path(tray) %>
8
+ # # => <turbo-frame id="tray" src="http://example.com/trays/1"></turbo-frame>
9
9
  #
10
- # # => turbo-frame id="tray" links-target="top" src="http://example.com/trays/1"></turbo-frame>
11
- # <%= turbo_frame_tag "tray", src: tray_path(tray), links_target: "top" %>
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 id="tray" links-target="other_tray"></turbo-frame>
14
- # <%= turbo_frame_tag "tray", links_target: "other_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
- # # => turbo-frame id="tray"><div>My tray frame!</div></turbo-frame>
17
19
  # <%= turbo_frame_tag "tray" do %>
18
20
  # <div>My tray frame!</div>
19
21
  # <% end %>
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
@@ -1,14 +1,14 @@
1
1
  module Turbo::Streams::ActionHelper
2
2
  # Creates a `turbo-stream` tag according to the passed parameters. Examples:
3
3
  #
4
- # # => <turbo-stream action="remove" target="message_1"></turbo-stream>
5
4
  # turbo_stream_action_tag "remove", target: "message_1"
5
+ # # => <turbo-stream action="remove" target="message_1"></turbo-stream>
6
6
  #
7
- # # => <turbo-stream action="replace" target="message_1"><template><div id="message_1">Hello!</div></template></turbo-stream>
8
7
  # turbo_stream_action_tag "replace", target: "message_1", template: %(<div id="message_1">Hello!</div>)
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 = template ? "<template>#{template}</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 container</div>
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, contrainer: "entries"</tt>.
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() {
@@ -1,3 +1,7 @@
1
1
  import "./cable_stream_source_element"
2
- export * as Turbo from "@hotwired/turbo"
3
- export * as cable from "./cable"
2
+
3
+ import * as Turbo from "@hotwired/turbo"
4
+ export { Turbo }
5
+
6
+ import * as cable from "./cable"
7
+ export { cable }
@@ -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: model_name.plural)
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: model_name.plural)
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" do %>
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
- # # Sends:
210
- # # <turbo-stream action="remove" target="entry_5"></turbo-stream>
211
- # # <turbo-stream action="append" target="entries"><template><div id="entry_5">My Entry</div></template></turbo-stream>
212
- # # to the stream named "entry:5"
213
- # entry.broadcast_render_later
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
- model_name.plural
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 ensures that the _entry.html.erb partial is rendered, not _entry.turbo_stream.erb %>
16
- # <%= render partial: "entries/entry", locals: { entry: entry }, formats: [ :html ] %>
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,30 @@
1
+ APPLICATION_LAYOUT_PATH = Rails.root.join("app/views/layouts/application.html.erb")
2
+
3
+ if APPLICATION_LAYOUT_PATH.exist?
4
+ say "Yield head in application layout for cache helper"
5
+ insert_into_file APPLICATION_LAYOUT_PATH.to_s, "\n <%= yield :head %>", before: /\s*<\/head>/
6
+
7
+ if APPLICATION_LAYOUT_PATH.read =~ /stimulus/
8
+ say "Add Turbo include tags in application layout"
9
+ insert_into_file APPLICATION_LAYOUT_PATH.to_s, %(\n <%= javascript_include_tag "turbo", type: "module-shim" %>), after: /<%= stimulus_include_tags %>/
10
+ else
11
+ say "Add Turbo include tags in application layout"
12
+ insert_into_file APPLICATION_LAYOUT_PATH.to_s, %(\n <%= javascript_include_tag "turbo", type: "module" %>), before: /\s*<\/head>/
13
+ end
14
+ else
15
+ say "Default application.html.erb is missing!", :red
16
+
17
+ if APPLICATION_LAYOUT_PATH.read =~ /stimulus/
18
+ say %( Add <%= javascript_include_tag("turbo", type: "module-shim") %> and <%= yield :head %> within the <head> tag after Stimulus includes in your custom layout.)
19
+ else
20
+ say %( Add <%= javascript_include_tag("turbo", type: "module") %> and <%= yield :head %> within the <head> tag in your custom layout.)
21
+ end
22
+ end
23
+
24
+ say "Enable redis in bundle"
25
+ uncomment_lines "Gemfile", %(gem 'redis')
26
+
27
+ say "Switch development cable to use redis"
28
+ gsub_file "config/cable.yml", /development:\n\s+adapter: async/, "development:\n adapter: redis\n url: redis://localhost:6379/1"
29
+
30
+ 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
@@ -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
- system "#{RbConfig.ruby} ./bin/rails app:template LOCATION=#{File.expand_path("../install/turbo.rb", __dir__)}"
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
@@ -6,9 +6,20 @@ 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
- Rails.application.config.assets.precompile += %w( turbo )
20
+ if Rails.application.config.respond_to?(:assets)
21
+ Rails.application.config.assets.precompile += %w( turbo )
22
+ end
12
23
  end
13
24
 
14
25
  initializer "turbo.helpers" do
@@ -25,7 +36,7 @@ module Turbo
25
36
  end
26
37
 
27
38
  initializer "turbo.mimetype" do
28
- Mime::Type.register "text/html; turbo-stream", :turbo_stream
39
+ Mime::Type.register "text/vnd.turbo-stream.html", :turbo_stream
29
40
  end
30
41
 
31
42
  initializer "turbo.renderer" do
@@ -1,3 +1,3 @@
1
1
  module Turbo
2
- VERSION = "0.5.0"
2
+ VERSION = "0.5.5"
3
3
  end
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.0
4
+ version: 0.5.5
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: 2020-12-22 00:00:00.000000000 Z
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/turbo.rb
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: '0'
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: []