handlebarsjs 0.1.1 → 0.1.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.
@@ -0,0 +1,3 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1087px" height="367px" viewBox="-0.5 -0.5 1087 367"><defs/><g><rect x="0" y="0" width="210" height="210" fill="#f5f5f5" stroke="#666666" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 208px; height: 1px; padding-top: 7px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Tailwind GEM</div></div></div></foreignObject><text x="105" y="27" fill="#333333" font-family="Helvetica" font-size="20px" text-anchor="middle">Tailwind GEM</text></switch></g><rect x="205" y="25" width="160" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 105px; margin-left: 206px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Handlebars-Helpers (ruby)</div></div></div></foreignObject><text x="285" y="109" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">Handlebars-Helpers (ruby)</text></switch></g><rect x="385" y="25" width="160" height="160" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 105px; margin-left: 386px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Handlebars (ruby)</div></div></div></foreignObject><text x="465" y="109" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">Handlebars (ruby)</text></switch></g><rect x="565" y="25" width="160" height="160" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 105px; margin-left: 566px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">The Ruby Racer</div></div></div></foreignObject><text x="645" y="109" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">The Ruby Racer</text></switch></g><rect x="745" y="25" width="160" height="160" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 105px; margin-left: 746px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Node V8 engine</div></div></div></foreignObject><text x="825" y="109" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">Node V8 engine</text></switch></g><rect x="925" y="25" width="160" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 105px; margin-left: 926px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Handlebars JS (javascript</div></div></div></foreignObject><text x="1005" y="109" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">Handlebars JS (javascript</text></switch></g><rect x="25" y="205" width="160" height="160" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 285px; margin-left: 26px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">HandlebarsJS (ruby)</div></div></div></foreignObject><text x="105" y="289" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">HandlebarsJS (ruby)</text></switch></g><rect x="205" y="205" width="160" height="160" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 285px; margin-left: 206px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Mini Racer</div></div></div></foreignObject><text x="285" y="289" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">Mini Racer</text></switch></g><rect x="365" y="205" width="200" height="160" fill="#ffe6cc" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 202px; height: 160px; padding-top: 205px; margin-left: 365px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 200px; height: 160px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; overflow-wrap: normal;"><p style="margin: 0px ; margin-left: 4px ; margin-bottom: 4px ; text-align: center"><b>Component</b></p><hr size="1" /><p style="margin: 0px ; margin-left: 4px ; margin-bottom: 4px">key: Symbol</p><p style="margin: 0px ; margin-left: 4px ; margin-bottom: 4px">name: String</p><p style="margin: 0px ; margin-left: 4px ; margin-bottom: 4px">description: String</p><p style="margin: 0px ; margin-left: 4px ; margin-bottom: 4px">data_shape: DataShape</p></div></div></div></foreignObject><text x="365" y="289" fill="#333333" font-family="Helvetica" font-size="12px">Component...</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
@@ -0,0 +1,61 @@
1
+ <mxfile host="65bd71144e">
2
+ <diagram id="eju" name="Domain Modal">
3
+ <mxGraphModel dx="1097" dy="583" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" background="#fafafa" math="0" shadow="0">
4
+ <root>
5
+ <mxCell id="page_root_eju"/>
6
+ <mxCell id="node_root_eju" parent="page_root_eju"/>
7
+ <mxCell id="eju-10" value="GEM Architecture Flow" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;fontSize=20;verticalAlign=top" parent="node_root_eju" vertex="1">
8
+ <mxGeometry x="8" y="10" width="1113" height="581" as="geometry"/>
9
+ </mxCell>
10
+ <mxCell id="a1" value="KManager -&gt; KBuilder" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" parent="node_root_eju" vertex="1">
11
+ <mxGeometry x="47" y="334" width="160" height="160" as="geometry"/>
12
+ </mxCell>
13
+ <mxCell id="a2" value="Handlebars-Helpers (ruby)" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333" parent="node_root_eju" vertex="1">
14
+ <mxGeometry x="231" y="188" width="160" height="160" as="geometry"/>
15
+ </mxCell>
16
+ <mxCell id="a3" value="Handlebars (ruby)" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" parent="node_root_eju" vertex="1">
17
+ <mxGeometry x="468" y="304" width="160" height="160" as="geometry"/>
18
+ </mxCell>
19
+ <mxCell id="a4" value="The Ruby Racer" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" parent="node_root_eju" vertex="1">
20
+ <mxGeometry x="686" y="304" width="160" height="160" as="geometry"/>
21
+ </mxCell>
22
+ <mxCell id="a5" value="HandlebarsJS (ruby)" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333" parent="node_root_eju" vertex="1">
23
+ <mxGeometry x="468" y="68" width="160" height="160" as="geometry"/>
24
+ </mxCell>
25
+ <mxCell id="a6" value="Mini Racer" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333" parent="node_root_eju" vertex="1">
26
+ <mxGeometry x="686" y="68" width="160" height="160" as="geometry"/>
27
+ </mxCell>
28
+ <mxCell id="a7" value="Node V8 engine" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#1ba1e2;strokeColor=#006EAF;fontColor=#ffffff" parent="node_root_eju" vertex="1">
29
+ <mxGeometry x="936" y="177" width="160" height="160" as="geometry"/>
30
+ </mxCell>
31
+ <mxCell id="a8" value="&lt;span&gt;Handlebars.js (javascript)&lt;/span&gt;" style="whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#333333" parent="node_root_eju" vertex="1">
32
+ <mxGeometry x="936" y="393" width="160" height="160" as="geometry"/>
33
+ </mxCell>
34
+ <mxCell id="eju-12" value="" style="edgeStyle=orthogonalEdgeStyle;curved=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=none;startFill=1;endArrow=open;endFill=1;whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00" parent="node_root_eju" source="a2" target="a3" edge="1">
35
+ <mxGeometry relative="1" as="geometry"/>
36
+ </mxCell>
37
+ <mxCell id="eju-13" value="" style="edgeStyle=orthogonalEdgeStyle;curved=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=none;startFill=1;endArrow=open;endFill=1;whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00" parent="node_root_eju" source="a3" target="a4" edge="1">
38
+ <mxGeometry relative="1" as="geometry"/>
39
+ </mxCell>
40
+ <mxCell id="eju-14" value="" style="edgeStyle=orthogonalEdgeStyle;curved=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=none;startFill=1;endArrow=open;endFill=1;whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00" parent="node_root_eju" source="a2" target="a5" edge="1">
41
+ <mxGeometry relative="1" as="geometry"/>
42
+ </mxCell>
43
+ <mxCell id="eju-15" value="" style="edgeStyle=orthogonalEdgeStyle;curved=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=none;startFill=1;endArrow=open;endFill=1;whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00" parent="node_root_eju" source="a5" target="a6" edge="1">
44
+ <mxGeometry relative="1" as="geometry"/>
45
+ </mxCell>
46
+ <mxCell id="eju-16" value="" style="edgeStyle=orthogonalEdgeStyle;curved=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=none;startFill=1;endArrow=open;endFill=1;whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00" parent="node_root_eju" source="a4" target="a7" edge="1">
47
+ <mxGeometry relative="1" as="geometry"/>
48
+ </mxCell>
49
+ <mxCell id="eju-17" value="" style="edgeStyle=orthogonalEdgeStyle;curved=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=none;startFill=1;endArrow=open;endFill=1;whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00" parent="node_root_eju" source="a6" target="a7" edge="1">
50
+ <mxGeometry relative="1" as="geometry"/>
51
+ </mxCell>
52
+ <mxCell id="eju-18" value="" style="edgeStyle=orthogonalEdgeStyle;curved=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;startArrow=none;startFill=1;endArrow=open;endFill=1;whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00" parent="node_root_eju" source="a7" target="a8" edge="1">
53
+ <mxGeometry relative="1" as="geometry"/>
54
+ </mxCell>
55
+ <mxCell id="eju-19" value="" style="edgeStyle=orthogonalEdgeStyle;curved=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=none;startFill=1;endArrow=open;endFill=1;whiteSpace=wrap;html=1;rounded=0;fillColor=#ffe6cc;strokeColor=#d79b00" parent="node_root_eju" source="a1" target="a2" edge="1">
56
+ <mxGeometry relative="1" as="geometry"/>
57
+ </mxCell>
58
+ </root>
59
+ </mxGraphModel>
60
+ </diagram>
61
+ </mxfile>
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ # module Handlebarsjs
4
+ # class Handlebars
5
+
6
+ # end
7
+ # end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Handlebarsjs
4
+ class Handlebars
5
+ # @helpers = {}
6
+ # @partials = {}
7
+ # @partial_missing = nil
8
+ # @precompile = nil
9
+ # @template_cache = {}
10
+
11
+ attr_reader :snapshot
12
+
13
+ # def initialize
14
+ end
15
+ end
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ # reference: https://github.com/rails/rails/blob/master/activesupport/lib/active_support/inflector/methods.rb
4
+ # require 'active_support/core_ext/string'
5
+
6
+ # require 'handlebars/helpers/base_helper'
7
+
8
+ module Handlebarsjs
9
+ module Helpers
10
+ # Comparison helpers, eg. or, and, equal, not equal, less than, greater than etc.
11
+ module Comparison
12
+ # And: Block helper that renders a block if **all of** the given values are truthy. If an inverse block is specified it will be rendered when falsy.
13
+ # < Handlebars::Helpers::BaseHelper
14
+ class And
15
+ # Parse will And: Block helper that renders a block if **all of** the given values are truthy. If an inverse block is specified it will be rendered when falsy.
16
+ #
17
+ # @example
18
+ #
19
+ # {{#if (and p1 p2 p3 p4 p5)}}
20
+ # found
21
+ # {{/if}}
22
+ #
23
+ # @example
24
+ #
25
+ # @example
26
+ # {{#if (and name age)}}
27
+ # {{name}}-{{age}}
28
+ # {{else}}
29
+ # no name or age
30
+ # {{/if}}
31
+ #
32
+ # @param values list of values (via *splat) to be checked via AND condition
33
+ # @return [String] return block when every value is truthy
34
+ def parse(values)
35
+ values.all? { |value| value }
36
+ end
37
+
38
+ def handlebars_helper
39
+ # Exclude last paramater which is the context V8::Object
40
+ proc { |_context, *values| wrapper(parse(values[0..-2])) }
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end