svelte-rails 0.3.1 → 0.3.2

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: 22fb87061e54bba3b787d7dfbefb673e7343985b0a31d1431ec23534399da26b
4
- data.tar.gz: e0097ac4522d372725e70132ba4e944294875865b2a6151e564d67fb66741bfc
3
+ metadata.gz: 8dad830db778c7ee7f995adab22cd5e3777dc45ecd2d3a72ee8e8f6971bdb8da
4
+ data.tar.gz: 1a0591a511234a4affc3a9083bdcec016667453f40518d1adeb7e7642f33810c
5
5
  SHA512:
6
- metadata.gz: 5d49a2c72d0479a8d7914dd19ba72c3f770b765c76754195bc0ce9e2581cd484f7430da8ef87a02409ace96a32d9270c2c907c110719ba57f360ca5b9731c5ff
7
- data.tar.gz: 72895676c1d5bdf834a6645edf1a8e19804cb63124cfb0f3101c0e9f99e3e034ee8b77fa87f519234f83993e9a11af98ebbf6a889d244fe2174d19013cef71cd
6
+ metadata.gz: 6d8317c399d79c588d07595e97604278eb3d2ea073e4290c68cbb978fb2d9eb31aeda7e52af5f8fd529584f5864485ca349276dd65fd0d577899501f1b3de022
7
+ data.tar.gz: ff2ca419374a2ef56c21c5da36c8662e0ffab238438262c2246051fe3a4016dda65aa65a98c00ea5078f9ea76ea0b727413e9e27c7e1200a75205b456c803bb3
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- svelte-rails (0.3.1)
4
+ svelte-rails (0.3.2)
5
5
  execjs
6
6
  railties (>= 5.2)
7
7
 
data/README.md CHANGED
@@ -9,6 +9,10 @@ Svelte-Rails integrates [Svelte](https://svelte.dev/) with Ruby on Rails. It has
9
9
 
10
10
  Make sure, you have [set-up Webpacker](https://github.com/rails/webpacker#installation) and it's [Svelte integration](https://github.com/rails/webpacker/blob/master/docs/integrations.md#svelte).
11
11
 
12
+ For a quick start with a new app, simply run:
13
+
14
+ rails new demo --webpack=svelte
15
+
12
16
  Add this line to your application's Gemfile:
13
17
 
14
18
  ```ruby
@@ -20,7 +24,7 @@ And then execute:
20
24
  $ bundle
21
25
  $ rails svelte:install
22
26
 
23
- If you have started with a fresh Rails app, you can overwrite conflicting files.
27
+ You can overwrite conflicting files if you have started with a fresh Rails app or did not change the webpack config of your existing one.
24
28
 
25
29
  An example Rails app demonstrating the integration of svelte-rails can be found here:
26
30
  https://github.com/nning/svelte-rails-demo/commits/master
@@ -29,6 +33,7 @@ https://github.com/nning/svelte-rails-demo/commits/master
29
33
 
30
34
  ```erb
31
35
  <%= svelte_component :Hello, name: 'Svelte' %>
36
+ <%= svelte_component :Hello, {name: 'Svelte'}, {prerender: true} %>
32
37
  ```
33
38
 
34
39
  ## Controller Renderer
@@ -51,6 +56,13 @@ end
51
56
  * Render pools
52
57
  * Better documentation for setup
53
58
 
59
+ ## Configuration Options
60
+
61
+ Configuration can be changed in `config/application.rb`, for example.
62
+
63
+ # Prerender (SSR) by default (i.e. without passing `prerender:true` to the view helper)
64
+ config.svelte.prerender_default = false
65
+
54
66
  ## Contributing
55
67
 
56
68
  Bug reports and pull requests are welcome on GitHub at https://github.com/nning/svelte-rails. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/nning/svelte-rails/blob/master/CODE_OF_CONDUCT.md).
@@ -2,19 +2,28 @@ require 'rails/railtie'
2
2
 
3
3
  module Svelte::Rails
4
4
  class Railtie < ::Rails::Railtie
5
+ config.svelte = ActiveSupport::OrderedOptions.new
6
+
7
+ # Prerender (SSR) by default (i.e. without passing `prerender:true` to the view helper)
8
+ config.svelte.predender_default = false
9
+
5
10
  initializer 'svelte_rails.setup_view_helpers', after: :load_config_initializers, group: :all do |app|
6
11
  ActiveSupport.on_load(:action_view) do
7
12
  include ::Svelte::Rails::ViewHelper
8
13
  end
9
14
  end
10
15
 
11
- initializer 'svelte_rails.add_component_renderer', group: :all do |app|
12
- ActionController::Renderers.add :component do |component_name, options|
16
+ initializer 'svelte_rails.add_component_renderers', group: :all do |app|
17
+ render_component = lambda do |component_name, options|
13
18
  renderer = ::Svelte::Rails::ControllerRenderer.new
14
19
  html = renderer.call(component_name, options)
15
20
  render_options = options.merge(inline: html)
16
21
  render(render_options)
17
22
  end
23
+
24
+ %i[component svelte svelte_component].each do |renderer_name|
25
+ ActionController::Renderers.add renderer_name, &render_component
26
+ end
18
27
  end
19
28
 
20
29
  rake_tasks do
@@ -1,5 +1,5 @@
1
1
  module Svelte
2
2
  module Rails
3
- VERSION = '0.3.1'
3
+ VERSION = '0.3.2'
4
4
  end
5
5
  end
@@ -13,6 +13,11 @@ module Svelte
13
13
 
14
14
  def render(name, props = {}, options = {}, &block)
15
15
  prerender_options = options[:prerender]
16
+
17
+ if prerender_options.nil?
18
+ prerender_options = ::Rails.application.config.svelte.prerender_default
19
+ end
20
+
16
21
  if prerender_options
17
22
  block = Proc.new { concat(prerender_component(name, props, prerender_options)) }
18
23
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: svelte-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - henning mueller