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 +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +13 -1
- data/lib/svelte/rails/railtie.rb +11 -2
- data/lib/svelte/rails/version.rb +1 -1
- data/lib/svelte/renderer.rb +5 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8dad830db778c7ee7f995adab22cd5e3777dc45ecd2d3a72ee8e8f6971bdb8da
|
4
|
+
data.tar.gz: 1a0591a511234a4affc3a9083bdcec016667453f40518d1adeb7e7642f33810c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6d8317c399d79c588d07595e97604278eb3d2ea073e4290c68cbb978fb2d9eb31aeda7e52af5f8fd529584f5864485ca349276dd65fd0d577899501f1b3de022
|
7
|
+
data.tar.gz: ff2ca419374a2ef56c21c5da36c8662e0ffab238438262c2246051fe3a4016dda65aa65a98c00ea5078f9ea76ea0b727413e9e27c7e1200a75205b456c803bb3
|
data/Gemfile.lock
CHANGED
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
|
-
|
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).
|
data/lib/svelte/rails/railtie.rb
CHANGED
@@ -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.
|
12
|
-
|
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
|
data/lib/svelte/rails/version.rb
CHANGED
data/lib/svelte/renderer.rb
CHANGED
@@ -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
|