svelte-rails 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
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