rails-intest-views 0.1.0 → 0.2.0

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: 5f1c5b45aa3ca9ad07771ada2aefbf51872dde130890102d4ea8549364e48834
4
- data.tar.gz: f5b8a0c5b64eb11ef0e7d3a39dbdd0cbf51f71e3b2a3414089bdd6534ba48485
3
+ metadata.gz: fbbb77038ece8edad24a39f87d7dcf3d906e181abdc42766b9f6d8728e48251e
4
+ data.tar.gz: a0a828e7d2fa1d78258812699c4c5ec95e866f843f50ab153b2e69c48b7872f8
5
5
  SHA512:
6
- metadata.gz: 2d6a5c0a6f07e4c4e1e0be853032a8b6610083d6231b8b36507c85ff6efc77a21bd7f4a8a7bf7848cfff2da1e2b3a3c1201dc37180781005cf37c332ffb9779a
7
- data.tar.gz: ef9f23793df6a00b57d4a4f2f8928191ebd017c7d753c996aeeb5a2fe98d8be0b3595280aef21d3c560244e3f033c95a55819bb96fcd9c9e511757f0818e5962
6
+ metadata.gz: c7137864811f78ffcac11d772e3187cd3d46a3b2f6b4842fb895b3351d7a96a8b7ea6d8b88e642c2b41bb0808318e24be1d6bc5e23dcbb520380ce933454a408
7
+ data.tar.gz: 68e694c069ed39065d9152e242e7b4d3a24d87b8aeca43eb6b4789ef449781ec49342d632e89074e562b08db5ba3296ba96deb479ca5ef88378a7eae4e5e0eb6
data/CHANGELOG.md CHANGED
@@ -2,8 +2,13 @@
2
2
 
3
3
  ## master
4
4
 
5
+ ## 0.2.0 (2023-12-12)
6
+
7
+ - Added support for Phlex and ViewComponent-type views and layouts. ([@dhnaranjo])
8
+
5
9
  ## 0.1.0 (2023-11-09)
6
10
 
7
11
  - Initial release. ([@palkan][])
8
12
 
9
13
  [@palkan]: https://github.com/palkan
14
+ [@dhnaranjo]: https://github.com/dhnaranjo
data/README.md CHANGED
@@ -80,6 +80,28 @@ ERB
80
80
  visit_template source, layout: "custom"
81
81
  ```
82
82
 
83
+ View components are supported through the `#render_component` helper:
84
+
85
+ ```ruby
86
+ button = ButtonComponent.new(type: :submit) do
87
+ "Save me!"
88
+ end
89
+
90
+ render_component button
91
+ ```
92
+
93
+ View component-based layouts are supported as well:
94
+
95
+ ```ruby
96
+ button = ButtonComponent.new(type: :submit) do
97
+ "Save me!"
98
+ end
99
+
100
+ render_component button, layout: PreviewLayout
101
+ # or
102
+ render_component button, layout: -> { PreviewLayout }
103
+ ```
104
+
83
105
  ### Configuration
84
106
 
85
107
  The following configuration parameters are available (the default values are shown):
@@ -8,11 +8,20 @@ module RailsIntestViews
8
8
  return head :not_found unless template_config
9
9
 
10
10
  params = {
11
- inline: template_config[:template],
12
- layout: RailsIntestViews.config.default_layout
11
+ inline: template_config[:template]
13
12
  }
14
13
 
15
- params[:layout] = template_config[:layout] if template_config.key?(:layout)
14
+ params[:layout] = case template_config
15
+ in {layout: Class => klass}
16
+ proc { klass }
17
+ in {layout: Proc => lambda} if lambda.lambda?
18
+ contents = lambda.call
19
+ proc { contents }
20
+ in {layout: layout}
21
+ layout
22
+ else
23
+ RailsIntestViews.config.default_layout
24
+ end
16
25
 
17
26
  render(**params)
18
27
  end
@@ -6,5 +6,10 @@ module RailsIntestViews
6
6
  id = RailsIntestViews.write(source, **options)
7
7
  visit RailsIntestViews.url_for(id)
8
8
  end
9
+
10
+ def visit_component(component, **options)
11
+ source = RailsIntestViews.render_component(component)
12
+ visit_template(source, **options)
13
+ end
9
14
  end
10
15
  end
@@ -6,5 +6,10 @@ module RailsIntestViews
6
6
  id = RailsIntestViews.write(source, **options)
7
7
  get RailsIntestViews.url_for(id)
8
8
  end
9
+
10
+ def get_component(component, **options)
11
+ source = RailsIntestViews.render_component(component)
12
+ get_template(source, **options)
13
+ end
9
14
  end
10
15
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsIntestViews # :nodoc:
4
- VERSION = "0.1.0"
4
+ VERSION = "0.2.0"
5
5
  end
@@ -55,6 +55,11 @@ module RailsIntestViews
55
55
  def url_for(id)
56
56
  File.join(config.mount_path, id)
57
57
  end
58
+
59
+ def render_component(component)
60
+ controller = config.templates_controller.constantize
61
+ controller.renderer.render_to_string(component)
62
+ end
58
63
  end
59
64
 
60
65
  autoload :RequestHelpers, "rails-intest-views/request_helpers"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-intest-views
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vladimir Dementyev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-11-09 00:00:00.000000000 Z
11
+ date: 2023-12-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler