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.
- checksums.yaml +4 -4
- data/.builders/generators/domain_model.rb +146 -442
- data/CHANGELOG.md +7 -0
- data/Gemfile +1 -1
- data/docs/domain_model.drawio +94 -0
- data/docs/domain_model.json +741 -0
- data/docs/domain_model.svg +3 -0
- data/docs/domain_model_custom.drawio +61 -0
- data/lib/handlebarsjs/api.rb +7 -0
- data/lib/handlebarsjs/handlebars.rb +15 -0
- data/lib/handlebarsjs/helpers/comparison/and.rb +45 -0
- data/lib/handlebarsjs/javascript/handlebars-4.7.7.js +5210 -0
- data/lib/handlebarsjs/javascript/handlebars-api.js +11 -0
- data/lib/handlebarsjs/javascript/handlebars-helpers.js +3 -0
- data/lib/handlebarsjs/snapshot_builder.rb +51 -0
- data/lib/handlebarsjs/version.rb +1 -1
- data/lib/handlebarsjs.rb +6 -1
- data/package-lock.json +2 -2
- data/package.json +1 -1
- metadata +27 -2
@@ -0,0 +1,11 @@
|
|
1
|
+
// Is this name ok? would compile_and_process_template be better?
|
2
|
+
// Also, should this be at the top level namespace?
|
3
|
+
|
4
|
+
function compile_template(template) {
|
5
|
+
return Handlebars.compile(template);
|
6
|
+
}
|
7
|
+
|
8
|
+
function process_template(template, data) {
|
9
|
+
const compiled_template = Handlebars.compile(template);
|
10
|
+
return compiled_template(data);
|
11
|
+
}
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Handlebarsjs
|
4
|
+
# Wraps MiniRacer snapshot and provides clean API
|
5
|
+
class SnapshotBuilder
|
6
|
+
attr_reader :scripts
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
@scripts = []
|
10
|
+
end
|
11
|
+
|
12
|
+
def add_handlebars_js
|
13
|
+
add_script('handlebars', 'library', path: Handlebarsjs::JAVASCRIPT_PATH)
|
14
|
+
end
|
15
|
+
|
16
|
+
def add_library(name, script: nil, path: nil)
|
17
|
+
add_script(name, 'library', script: script, path: path)
|
18
|
+
end
|
19
|
+
|
20
|
+
def register_helper(name)
|
21
|
+
add_script(name, 'helper', script: "Handlebars.registerHelper('#{name}', ruby_#{name})")
|
22
|
+
end
|
23
|
+
|
24
|
+
def script
|
25
|
+
scripts.map { |script| "# #{script[:type]} - #{script[:name]}\n#{script[:script]}" }.join("\n\n")
|
26
|
+
end
|
27
|
+
|
28
|
+
def build
|
29
|
+
MiniRacer::Snapshot.new(script)
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
def add_script(name, type, script: nil, path: nil)
|
35
|
+
raise Handlebarsjs::Error, 'script or path is required' if script.nil? && path.nil?
|
36
|
+
raise Handlebarsjs::Error, 'script and path are mutually exclusive' if script && path
|
37
|
+
|
38
|
+
script ||= File.read(path)
|
39
|
+
add_script_item(name, type, script, path)
|
40
|
+
end
|
41
|
+
|
42
|
+
def add_script_item(name, type, script, path = nil)
|
43
|
+
scripts << {
|
44
|
+
name: name,
|
45
|
+
type: type,
|
46
|
+
script: script,
|
47
|
+
path: path
|
48
|
+
}
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
data/lib/handlebarsjs/version.rb
CHANGED
data/lib/handlebarsjs.rb
CHANGED
@@ -1,15 +1,20 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'mini_racer'
|
3
4
|
require_relative 'handlebarsjs/version'
|
5
|
+
require_relative 'handlebarsjs/snapshot_builder'
|
6
|
+
require_relative 'handlebarsjs/handlebars'
|
4
7
|
|
5
8
|
module Handlebarsjs
|
9
|
+
JAVASCRIPT_PATH = 'lib/handlebarsjs/javascript/handlebars-4.7.7.js'
|
10
|
+
|
6
11
|
# raise Handlebarsjs::Error, 'Sample message'
|
7
12
|
Error = Class.new(StandardError)
|
8
13
|
|
9
14
|
# Your code goes here...
|
10
15
|
end
|
11
16
|
|
12
|
-
if ENV
|
17
|
+
if ENV.fetch('KLUE_DEBUG', 'false').downcase == 'true'
|
13
18
|
namespace = 'Handlebarsjs::Version'
|
14
19
|
file_path = $LOADED_FEATURES.find { |f| f.include?('handlebarsjs/version') }
|
15
20
|
version = Handlebarsjs::VERSION.ljust(9)
|
data/package-lock.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "handlebarsjs",
|
3
|
-
"version": "0.1.
|
3
|
+
"version": "0.1.2",
|
4
4
|
"lockfileVersion": 2,
|
5
5
|
"requires": true,
|
6
6
|
"packages": {
|
7
7
|
"": {
|
8
8
|
"name": "handlebarsjs",
|
9
|
-
"version": "0.1.
|
9
|
+
"version": "0.1.2",
|
10
10
|
"devDependencies": {
|
11
11
|
"@klueless-js/semantic-release-rubygem": "github:klueless-js/semantic-release-rubygem",
|
12
12
|
"@semantic-release/changelog": "^6.0.1",
|
data/package.json
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: handlebarsjs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Cruwys
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-07-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: k_log
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 0.0.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: mini_racer
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
description: " handlebarsjs GEM wraps the handlebars.js library and provides ruby/javascript
|
28
42
|
interoperability\n"
|
29
43
|
email:
|
@@ -49,9 +63,20 @@ files:
|
|
49
63
|
- Rakefile
|
50
64
|
- bin/console
|
51
65
|
- bin/setup
|
66
|
+
- docs/domain_model.drawio
|
67
|
+
- docs/domain_model.json
|
68
|
+
- docs/domain_model.svg
|
69
|
+
- docs/domain_model_custom.drawio
|
52
70
|
- docs/project-plan/project.drawio
|
53
71
|
- docs/project-plan/project_in_progress.svg
|
54
72
|
- lib/handlebarsjs.rb
|
73
|
+
- lib/handlebarsjs/api.rb
|
74
|
+
- lib/handlebarsjs/handlebars.rb
|
75
|
+
- lib/handlebarsjs/helpers/comparison/and.rb
|
76
|
+
- lib/handlebarsjs/javascript/handlebars-4.7.7.js
|
77
|
+
- lib/handlebarsjs/javascript/handlebars-api.js
|
78
|
+
- lib/handlebarsjs/javascript/handlebars-helpers.js
|
79
|
+
- lib/handlebarsjs/snapshot_builder.rb
|
55
80
|
- lib/handlebarsjs/version.rb
|
56
81
|
- package-lock.json
|
57
82
|
- package.json
|