asciidoctor-json-value-loader 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/lib/asciidoctor-json-value-loader.rb +43 -0
- metadata +57 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: a20adf4280493c953889b84644669e9b4c8e0d439dc2524fc9ff721d56e6ccb6
|
4
|
+
data.tar.gz: 21669a87007c43d50e7acd46ed85b4de7dd133f3a6752a8515186d175e7ea791
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7af8e4aff520f814075505bbfba00b6636d2261b877681909252f2bbbbf50c16fb45414cd8af4011f24b174d5baaed04b200f051adde86afd30ab4a4f7777581
|
7
|
+
data.tar.gz: 749a64356c450e09fcc2eb899ccd8c1e77e0faca1203e8f446d4e4faa65d30c02a6d5e4808d0f34e33ebfd3604b26747f3452a4c939bc713e68e680de43540d0
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'asciidoctor'
|
2
|
+
require 'json'
|
3
|
+
require 'uri'
|
4
|
+
|
5
|
+
class JsonValueLoadInlineMacro < Asciidoctor::Extensions::InlineMacroProcessor
|
6
|
+
use_dsl
|
7
|
+
|
8
|
+
named "json-value"
|
9
|
+
name_positional_attributes 'volnum'
|
10
|
+
|
11
|
+
def process parent, target, attrs
|
12
|
+
|
13
|
+
path, query = target.split(':')
|
14
|
+
|
15
|
+
query = query.split('.').map do |q|
|
16
|
+
decoded = URI.decode_www_form_component(q)
|
17
|
+
if decoded.match(/^\d+$/) then
|
18
|
+
decoded.to_i
|
19
|
+
else
|
20
|
+
decoded
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
json = JSON.parse(File.open(path, 'r:utf-8', &:read))
|
25
|
+
|
26
|
+
content = json.dig(*query)
|
27
|
+
|
28
|
+
content = case content
|
29
|
+
when String
|
30
|
+
content
|
31
|
+
when Numeric
|
32
|
+
content.to_s
|
33
|
+
else
|
34
|
+
JSON.generate(content)
|
35
|
+
end
|
36
|
+
|
37
|
+
create_inline_pass parent, content, attributes: { 'subs' => :normal }
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
Asciidoctor::Extensions.register do
|
42
|
+
inline_macro JsonValueLoadInlineMacro
|
43
|
+
end
|
metadata
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: asciidoctor-json-value-loader
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- msr1k
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2024-07-13 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: asciidoctor
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
description: Adds asciidoctor a funcitons to load specific JSON value from JSON file
|
28
|
+
email: msr0210@gmail.com
|
29
|
+
executables: []
|
30
|
+
extensions: []
|
31
|
+
extra_rdoc_files: []
|
32
|
+
files:
|
33
|
+
- lib/asciidoctor-json-value-loader.rb
|
34
|
+
homepage: https://github.com/msr1k/asciidoctor-json-value-loader
|
35
|
+
licenses:
|
36
|
+
- MIT
|
37
|
+
metadata: {}
|
38
|
+
post_install_message:
|
39
|
+
rdoc_options: []
|
40
|
+
require_paths:
|
41
|
+
- lib
|
42
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0'
|
47
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
48
|
+
requirements:
|
49
|
+
- - ">="
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
version: '0'
|
52
|
+
requirements: []
|
53
|
+
rubygems_version: 3.4.22
|
54
|
+
signing_key:
|
55
|
+
specification_version: 4
|
56
|
+
summary: An asciidoctor extention to load specific JSON value
|
57
|
+
test_files: []
|