erbr 0.0.1

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.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/erbr.rb +40 -0
  3. metadata +44 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 421f2bbd47625febc65b016ddbdc0476083eb0fde4516a3740a1e3e05b528b41
4
+ data.tar.gz: f1dc2eb493d94fcb9d91b29c00ab252072dc198ca7acba8dababd3edfa976434
5
+ SHA512:
6
+ metadata.gz: 005bb8166d3db963f4088909c80daebb37ff615905a7ec8ebdffe8ac66b789bd29c07b3f7643a1a02da7a7753685de4985254a7336574eb1e844a83bd932662d
7
+ data.tar.gz: 87e0ec5e35eae35edb745d7c19bdd4eecbe5cd720ad96ad55b6e541e6206d4928c926f9de5848b85c2d0487493ebab3cfefd072e793e29221dbc5d8642711f00
data/lib/erbr.rb ADDED
@@ -0,0 +1,40 @@
1
+ require 'erb'
2
+
3
+ # Main gem class;
4
+ module ERBR
5
+ class << self
6
+ # Renders template;
7
+ #
8
+ # Example:
9
+ # >> render("template.html.erb", "layout.html.erb", args)
10
+ #
11
+ # Arguments:
12
+ # args: (Any) holds flexible data type to make variables available for erb placeholders;
13
+ # args["name"] => "Fushiguro Toji": this way views can see @args["name"] making the value available for view throught @args;
14
+ # so ERBR.render(any, any, :suguru => "geto") is available throught @args[0]["suguru"];
15
+
16
+ def render(template_name, layout_name, *args)
17
+ template_file = File.read(template_name)
18
+
19
+ args.length > 0 ? @args = args : args = nil
20
+
21
+ if layout_name
22
+ layout_file = File.read(layout_name)
23
+
24
+ rendered_template = ERB.new(template_file).result(binding)
25
+ bind_template_to_layout(layout_file) { rendered_template }
26
+ else
27
+ ERB.new(template_file).result(binding)
28
+ end
29
+ end
30
+
31
+ # Bounds template with layout;
32
+
33
+ private
34
+ def bind_template_to_layout(layout_file)
35
+ yield
36
+
37
+ ERB.new(layout_file).result(binding)
38
+ end
39
+ end
40
+ end
metadata ADDED
@@ -0,0 +1,44 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: erbr
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - wnccys
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2024-04-25 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: " Allows easy ERB layout rendering with embbed variables "
14
+ email:
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/erbr.rb
20
+ homepage: https://rubygems.org/gems/erbr
21
+ licenses:
22
+ - MIT
23
+ metadata:
24
+ source_code_uri: https://github.com/wnccys/erbr
25
+ post_install_message:
26
+ rdoc_options: []
27
+ require_paths:
28
+ - lib
29
+ required_ruby_version: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 2.7.0
34
+ required_rubygems_version: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ requirements: []
40
+ rubygems_version: 3.5.9
41
+ signing_key:
42
+ specification_version: 4
43
+ summary: ERB template render
44
+ test_files: []