is-ial-parser 0.8.0 → 0.8.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 (4) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +8 -0
  3. data/lib/ial_parser/parser.rb +19 -0
  4. metadata +15 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ebe701d1b52fcfd76b99d9172fd5b39e40e5489994a33a2a76fb72a6bc7a243f
4
- data.tar.gz: 6107624c76fd38a18353a326f19c00f994c387ba062e1bbbd3461a93f4491c98
3
+ metadata.gz: 90b4a4df3eb591ed468ef74a20756c00d33133689dedde69830f8dd73181a8dd
4
+ data.tar.gz: 0af92e9061e5f9b11ceba474d621269c55a38c87077e26648c6225ed521f890a
5
5
  SHA512:
6
- metadata.gz: 2614ae584ba04803856808b5d99146350cc3f428b84ed4bfd1df2c7b905faa7ba09bb4e2ae91714018e3f33c118668d76be8e4c26560875ec862a1cb9d251f3a
7
- data.tar.gz: 2ab9e4c64004de8d35fad47eaf3af58c24f49fc5e59c53578e244b204e95100e26f262e241776c3a2c8573dc026f0009c5bd55b7506218185a57825a7b935752
6
+ metadata.gz: a95b9496dc5f38785fb6e1d998b1bcbca431d36adeaa423fa94f6c5a8bacdfc182ca015023b64e50a66b59b870030c0f29237e69a7b43b73c4de354df92e5af7
7
+ data.tar.gz: f1e9f836da415fa26e24676929e8db7d94b4a5264d8f666a8468020294d52430bf9c0fb3c24bd8f480df460e36aa0b037a6468592f0e1af158f8dfdd4d6969d0
data/README.md CHANGED
@@ -1,5 +1,13 @@
1
+ | **EN** | [ru](README-ru.md) |
2
+ |----------|----------|
3
+
1
4
  # is-ial-parser
2
5
 
6
+ [![GitHub License](https://img.shields.io/github/license/jekyll-is/is-ial-parser)](LICENSE)
7
+ [![Gem Version](https://badge.fury.io/rb/is-ial-parser.svg?icon=si%3Arubygems)](https://badge.fury.io/rb/is-ial-parser)
8
+ [![Ruby](https://github.com/jekyll-is/is-ial-parser/actions/workflows/ruby.yml/badge.svg)](https://github.com/jekyll-is/is-ial-parser/actions/workflows/ruby.yml)
9
+ ![Coverage](coverage-badge.svg)
10
+
3
11
  Universal Inline Attribute List (IAL) parser for Kramdown and Jekyll plugins.
4
12
 
5
13
  ## Version
@@ -18,6 +18,25 @@ module IALParser
18
18
  result
19
19
  end
20
20
 
21
+ def parse! source, context = nil, **options
22
+ result = {}
23
+
24
+ tokenize source, **options do |token, position, quoting|
25
+ opts = options.merge preserve_quotes: true, preserve_escape: true
26
+ parsed = parse_token token, position, quoting, **opts
27
+ if parsed && parsed.type == :attribute && parsed.quotes == '"'
28
+ parsed.value = if Binding === context
29
+ context.eval parsed.value
30
+ else
31
+ context.instance_eval parsed.value
32
+ end
33
+ end
34
+ append_token result, parsed, **options if parsed
35
+ end
36
+
37
+ result
38
+ end
39
+
21
40
  ESCAPE = "\\"
22
41
  QUOTES = Set['"', "'"]
23
42
  SPACES = /\s/
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: is-ial-parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Shikhalev
@@ -37,6 +37,20 @@ dependencies:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
39
  version: '13.3'
40
+ - !ruby/object:Gem::Dependency
41
+ name: simplecov
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: 0.22.0
47
+ type: :development
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: 0.22.0
40
54
  description: Parses Inline Attribute Lists with extensions, quotes, interpolation
41
55
  email:
42
56
  - shikhalev@gmail.com