erbx 0.1.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 +7 -0
- data/README.md +57 -0
- data/lib/erbx.rb +29 -0
- data/lib/erbx/version.rb +3 -0
- metadata +45 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 6e31bdf6421cebb1ec8d4527078e6459370107053b322536b26caadb41d11810
|
4
|
+
data.tar.gz: 3d739c286468a2b39f8444343deaaddd7ae19b93e4c4796389080c2b8e244c2a
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d39a67f89f6c707cbf127911842966fffaaa5ddc5aee7a97278d6381bcb2d20a1473f8531fb68b11e8b9638f887d7227c25213b54f134ff101449d1e4f806608
|
7
|
+
data.tar.gz: 83b240ba9ab750b85fe6ba064b3c672d277015402502804649fbffa643af20a13b7b395f03a635cf3e92cc6467317ed9b847b8336fb8626a4b82acf03134f6d3
|
data/README.md
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
# ERBX - ERB Extended with Pretty Tags
|
2
|
+
|
3
|
+
[](https://badge.fury.io/rb/erbx)
|
4
|
+
[](https://github.com/DannyBen/erbx/actions?query=workflow%3ATest)
|
5
|
+
|
6
|
+
---
|
7
|
+
|
8
|
+
ERBX is a tiny extension to ERB allowing these tags:
|
9
|
+
|
10
|
+
- `{{ ... }}` as an equivalent to `<%= ... %>`
|
11
|
+
- `(( ... ))` as an equivalent to `<%- ... %>`
|
12
|
+
|
13
|
+
---
|
14
|
+
|
15
|
+
Installation
|
16
|
+
--------------------------------------------------
|
17
|
+
|
18
|
+
```
|
19
|
+
$ gem install erbx
|
20
|
+
```
|
21
|
+
|
22
|
+
Usage
|
23
|
+
--------------------------------------------------
|
24
|
+
|
25
|
+
Given this ERBX templalte:
|
26
|
+
|
27
|
+
```
|
28
|
+
# example/template.md
|
29
|
+
((
|
30
|
+
# Any ruby code can go here
|
31
|
+
today = Time.now.strftime "%B %d, %Y"
|
32
|
+
dice = [rand(6) + 1, rand(6) + 1]
|
33
|
+
))
|
34
|
+
|
35
|
+
This roll of a dice happened on {{ today }}.
|
36
|
+
(( if dice[0] == dice[1] ))
|
37
|
+
Congratulations, its a double: {{ dice }}
|
38
|
+
(( else ))
|
39
|
+
You rolled {{ dice }}
|
40
|
+
(( end ))
|
41
|
+
```
|
42
|
+
|
43
|
+
|
44
|
+
```ruby
|
45
|
+
# Render example
|
46
|
+
require 'erbx'
|
47
|
+
|
48
|
+
template = ERBX.load 'example/template.md'
|
49
|
+
p template.class
|
50
|
+
#=> ERB
|
51
|
+
|
52
|
+
puts template.result
|
53
|
+
#=>
|
54
|
+
#=> This roll of a dice happened on April 24, 2020.
|
55
|
+
#=> You rolled [4, 2]
|
56
|
+
```
|
57
|
+
|
data/lib/erbx.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'erb'
|
2
|
+
require 'erbx/version'
|
3
|
+
|
4
|
+
class ERBX
|
5
|
+
class << self
|
6
|
+
attr_reader :content
|
7
|
+
|
8
|
+
def load(filename)
|
9
|
+
new File.read filename
|
10
|
+
end
|
11
|
+
|
12
|
+
def new(content)
|
13
|
+
erb_content = expose_erb_tags content
|
14
|
+
ERB.new(erb_content, trim_mode: '%-')
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def expose_erb_tags(content)
|
20
|
+
content
|
21
|
+
.gsub("((", "<%-")
|
22
|
+
.gsub("))", "-%>")
|
23
|
+
.gsub("{{", "<%=")
|
24
|
+
.gsub("}}", "%>")
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
|
data/lib/erbx/version.rb
ADDED
metadata
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: erbx
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Danny Ben Shitrit
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2020-04-24 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Extended ERB with prettier tags
|
14
|
+
email: db@dannyben.com
|
15
|
+
executables: []
|
16
|
+
extensions: []
|
17
|
+
extra_rdoc_files: []
|
18
|
+
files:
|
19
|
+
- README.md
|
20
|
+
- lib/erbx.rb
|
21
|
+
- lib/erbx/version.rb
|
22
|
+
homepage: https://github.com/dannyben/erbx
|
23
|
+
licenses:
|
24
|
+
- MIT
|
25
|
+
metadata: {}
|
26
|
+
post_install_message:
|
27
|
+
rdoc_options: []
|
28
|
+
require_paths:
|
29
|
+
- lib
|
30
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: 2.4.0
|
35
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0'
|
40
|
+
requirements: []
|
41
|
+
rubygems_version: 3.0.3
|
42
|
+
signing_key:
|
43
|
+
specification_version: 4
|
44
|
+
summary: ERB Extra
|
45
|
+
test_files: []
|