dslh 0.4.6 → 0.4.7
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/lib/dslh.rb +9 -1
- data/lib/dslh/version.rb +1 -1
- data/spec/dslh_spec.rb +48 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 384dc946f3f3d868008d2795fa6e83ca0cac2a6d
|
4
|
+
data.tar.gz: aaeac51e7a989eb285890d40615d3ae984a2effb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5ea3a48d2a14832c2a01412b2b116bfa85ad5883151968b714c03022e712887fd51affe41408f7f0b4190a556d573a547644b3c334fcc12360acda39c8d743a4
|
7
|
+
data.tar.gz: 83e180695a786f0babe25c097dc1ecefd15fc6941bb201424dd9c1b9e9ab794d7c31687e34a86fee3eaaff768c874f31cdc8d4e043736587473dbf60596b2cb1
|
data/lib/dslh.rb
CHANGED
@@ -37,6 +37,7 @@ class Dslh
|
|
37
37
|
:time_inspecter,
|
38
38
|
:use_braces_instead_of_do_end,
|
39
39
|
:value_conv,
|
40
|
+
:use_heredoc_for_multi_line,
|
40
41
|
]
|
41
42
|
|
42
43
|
class << self
|
@@ -83,6 +84,7 @@ class Dslh
|
|
83
84
|
:dump_old_hash_array_format => false,
|
84
85
|
:force_dump_braces => false,
|
85
86
|
:use_braces_instead_of_do_end => false,
|
87
|
+
:use_heredoc_for_multi_line => false,
|
86
88
|
}.merge(options)
|
87
89
|
|
88
90
|
@options[:key_conv] ||= (@options[:conv] || proc {|i| i.to_s })
|
@@ -318,7 +320,13 @@ class Dslh
|
|
318
320
|
value = @options[:time_inspecter].call(value)
|
319
321
|
value_buf.puts(' ' + value)
|
320
322
|
else
|
321
|
-
|
323
|
+
if @options[:use_heredoc_for_multi_line] \
|
324
|
+
and value.kind_of?(String) \
|
325
|
+
and value.match(/\R/)
|
326
|
+
value_buf.puts(' ' + "<<-EOS\n#{value}\nEOS")
|
327
|
+
else
|
328
|
+
value_buf.puts(' ' + value.inspect)
|
329
|
+
end
|
322
330
|
end
|
323
331
|
end
|
324
332
|
|
data/lib/dslh/version.rb
CHANGED
data/spec/dslh_spec.rb
CHANGED
@@ -545,6 +545,54 @@ end
|
|
545
545
|
EOS
|
546
546
|
end
|
547
547
|
|
548
|
+
it 'should convert hash to dsl with use_heredoc_for_multi_line' do
|
549
|
+
h = {"glossary"=>
|
550
|
+
{"title"=>"example glossary",
|
551
|
+
"description" => "example\nglossary",
|
552
|
+
"GlossDiv"=>
|
553
|
+
{"title"=>"S",
|
554
|
+
"GlossList"=>
|
555
|
+
{"GlossEntry"=>
|
556
|
+
{"ID"=>"SGML",
|
557
|
+
"SortAs"=>"SGML",
|
558
|
+
"GlossTerm"=>"Standard Generalized Markup Language",
|
559
|
+
"Acronym"=>"SGML",
|
560
|
+
"Abbrev"=>"ISO 8879:1986",
|
561
|
+
"GlossDef"=>
|
562
|
+
{"para"=>
|
563
|
+
"A meta-markup language, used to create markup languages such as DocBook.",
|
564
|
+
"GlossSeeAlso"=>["GML", "XML"]},
|
565
|
+
"GlossSee"=>"markup"}}}}}
|
566
|
+
|
567
|
+
dsl = Dslh.deval(h, :use_heredoc_for_multi_line => true)
|
568
|
+
expect(dsl).to eq(<<-EOT)
|
569
|
+
glossary do
|
570
|
+
title "example glossary"
|
571
|
+
description <<-EOS
|
572
|
+
example
|
573
|
+
glossary
|
574
|
+
EOS
|
575
|
+
GlossDiv do
|
576
|
+
title "S"
|
577
|
+
GlossList do
|
578
|
+
GlossEntry do
|
579
|
+
ID "SGML"
|
580
|
+
SortAs "SGML"
|
581
|
+
GlossTerm "Standard Generalized Markup Language"
|
582
|
+
Acronym "SGML"
|
583
|
+
Abbrev "ISO 8879:1986"
|
584
|
+
GlossDef do
|
585
|
+
para "A meta-markup language, used to create markup languages such as DocBook."
|
586
|
+
GlossSeeAlso "GML", "XML"
|
587
|
+
end
|
588
|
+
GlossSee "markup"
|
589
|
+
end
|
590
|
+
end
|
591
|
+
end
|
592
|
+
end
|
593
|
+
EOT
|
594
|
+
end
|
595
|
+
|
548
596
|
it 'does not allow duplicate key' do
|
549
597
|
expect {
|
550
598
|
Dslh.eval do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dslh
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Genki Sugawara
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-02-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -107,7 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
107
107
|
version: '0'
|
108
108
|
requirements: []
|
109
109
|
rubyforge_project:
|
110
|
-
rubygems_version: 2.5.
|
110
|
+
rubygems_version: 2.5.2
|
111
111
|
signing_key:
|
112
112
|
specification_version: 4
|
113
113
|
summary: It define Hash as a DSL.
|