mkrf 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.
- data/CHANGELOG +2 -0
- data/MIT-LICENSE +7 -0
- data/README +54 -0
- data/Rakefile +107 -0
- data/lib/mkrf.rb +4 -0
- data/lib/mkrf/availability.rb +219 -0
- data/lib/mkrf/generator.rb +146 -0
- data/test/abstract_unit.rb +4 -0
- data/test/fixtures/down_a_directory/header_down_a_directory.h +1 -0
- data/test/fixtures/stdmkrf.h +1 -0
- data/test/sample_files/libtrivial/Rakefile +31 -0
- data/test/sample_files/libtrivial/extconf.rb +3 -0
- data/test/sample_files/libtrivial/lib/libtrivial.c +5 -0
- data/test/sample_files/libtrivial/lib/libtrivial.o +0 -0
- data/test/sample_files/libtrivial/libtrivial_so.bundle +0 -0
- data/test/sample_files/libtrivial/mkrf.log +1 -0
- data/test/sample_files/libxml-ruby-0.3.8/CHANGELOG +74 -0
- data/test/sample_files/libxml-ruby-0.3.8/LICENSE +22 -0
- data/test/sample_files/libxml-ruby-0.3.8/README +144 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/cbg.c +76 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/extconf.rb +49 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/libxml.c +86 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/libxml.h +82 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/libxml.rb +107 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/mkrf.log +1 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/old_extconf.rb +95 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_attr.c +372 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_attr.h +21 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_attribute.c +224 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_attribute.h +21 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_document.c +1159 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_document.h +27 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_dtd.c +168 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_dtd.h +17 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_input_cbg.c +167 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_input_cbg.h +21 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_node.c +2139 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_node.h +28 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_node_set.c +248 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_node_set.h +26 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_ns.c +153 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_ns.h +21 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_parser.c +1417 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_parser.h +31 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_parser_context.c +715 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_parser_context.h +22 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_sax_parser.c +426 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_sax_parser.h +52 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_schema.c +142 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_schema.h +16 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_tree.c +43 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_tree.h +12 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_xinclude.c +20 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_xinclude.h +13 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_xpath.c +363 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_xpath.h +24 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_xpath_context.c +125 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_xpath_context.h +24 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_xpointer.c +100 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_xpointer.h +27 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_xpointer_context.c +21 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_xpointer_context.h +18 -0
- data/test/sample_files/libxml-ruby-0.3.8/ext/xml/sax_parser_callbacks.inc +202 -0
- data/test/sample_files/syck-0.55/CHANGELOG +186 -0
- data/test/sample_files/syck-0.55/COPYING +54 -0
- data/test/sample_files/syck-0.55/Makefile +582 -0
- data/test/sample_files/syck-0.55/Makefile.am +5 -0
- data/test/sample_files/syck-0.55/Makefile.in +582 -0
- data/test/sample_files/syck-0.55/README +105 -0
- data/test/sample_files/syck-0.55/README.BYTECODE +484 -0
- data/test/sample_files/syck-0.55/README.EXT +444 -0
- data/test/sample_files/syck-0.55/RELEASE +123 -0
- data/test/sample_files/syck-0.55/TODO +25 -0
- data/test/sample_files/syck-0.55/aclocal.m4 +883 -0
- data/test/sample_files/syck-0.55/bootstrap +7 -0
- data/test/sample_files/syck-0.55/config.h +79 -0
- data/test/sample_files/syck-0.55/config.h.in +78 -0
- data/test/sample_files/syck-0.55/config.status +1197 -0
- data/test/sample_files/syck-0.55/config/README +14 -0
- data/test/sample_files/syck-0.55/config/depcomp +529 -0
- data/test/sample_files/syck-0.55/config/install-sh +323 -0
- data/test/sample_files/syck-0.55/config/missing +357 -0
- data/test/sample_files/syck-0.55/configure +6728 -0
- data/test/sample_files/syck-0.55/configure.in +36 -0
- data/test/sample_files/syck-0.55/ext/ruby/CHANGELOG +303 -0
- data/test/sample_files/syck-0.55/ext/ruby/README +400 -0
- data/test/sample_files/syck-0.55/ext/ruby/ext/syck/MANIFEST +1 -0
- data/test/sample_files/syck-0.55/ext/ruby/ext/syck/bytecode.c +1170 -0
- data/test/sample_files/syck-0.55/ext/ruby/ext/syck/emitter.c +1224 -0
- data/test/sample_files/syck-0.55/ext/ruby/ext/syck/extconf.rb +10 -0
- data/test/sample_files/syck-0.55/ext/ruby/ext/syck/gram.c +1894 -0
- data/test/sample_files/syck-0.55/ext/ruby/ext/syck/gram.h +79 -0
- data/test/sample_files/syck-0.55/ext/ruby/ext/syck/handler.c +174 -0
- data/test/sample_files/syck-0.55/ext/ruby/ext/syck/implicit.c +2989 -0
- data/test/sample_files/syck-0.55/ext/ruby/ext/syck/mkrf.log +1 -0
- data/test/sample_files/syck-0.55/ext/ruby/ext/syck/node.c +407 -0
- data/test/sample_files/syck-0.55/ext/ruby/ext/syck/rubyext.c +2385 -0
- data/test/sample_files/syck-0.55/ext/ruby/ext/syck/syck.c +504 -0
- data/test/sample_files/syck-0.55/ext/ruby/ext/syck/syck.h +458 -0
- data/test/sample_files/syck-0.55/ext/ruby/ext/syck/token.c +2707 -0
- data/test/sample_files/syck-0.55/ext/ruby/ext/syck/yaml2byte.c +250 -0
- data/test/sample_files/syck-0.55/ext/ruby/ext/syck/yamlbyte.h +170 -0
- data/test/sample_files/syck-0.55/ext/ruby/install.rb +1022 -0
- data/test/sample_files/syck-0.55/ext/ruby/lib/okay.rb +161 -0
- data/test/sample_files/syck-0.55/ext/ruby/lib/okay/news.rb +69 -0
- data/test/sample_files/syck-0.55/ext/ruby/lib/okay/rpc.rb +434 -0
- data/test/sample_files/syck-0.55/ext/ruby/lib/yaml.rb +436 -0
- data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/baseemitter.rb +247 -0
- data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/basenode.rb +216 -0
- data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/compat.rb +26 -0
- data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/constants.rb +45 -0
- data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/dbm.rb +111 -0
- data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/emitter.rb +107 -0
- data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/encoding.rb +33 -0
- data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/error.rb +34 -0
- data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/rubytypes.rb +438 -0
- data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/store.rb +29 -0
- data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/stream.rb +40 -0
- data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/stringio.rb +83 -0
- data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/syck.rb +19 -0
- data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/tag.rb +86 -0
- data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/types.rb +188 -0
- data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/yamlnode.rb +54 -0
- data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/ypath.rb +52 -0
- data/test/sample_files/syck-0.55/ext/ruby/lib/yod.rb +1168 -0
- data/test/sample_files/syck-0.55/ext/ruby/samples/okayNews-modules.rb +27 -0
- data/test/sample_files/syck-0.55/ext/ruby/samples/okayNews-sample.rb +336 -0
- data/test/sample_files/syck-0.55/ext/ruby/samples/okayNews-validate.rb +341 -0
- data/test/sample_files/syck-0.55/ext/ruby/samples/okayRpc-client.rb +51 -0
- data/test/sample_files/syck-0.55/ext/ruby/samples/okayRpc-server.rb +85 -0
- data/test/sample_files/syck-0.55/ext/ruby/samples/yaml-sortHashKeys.rb +128 -0
- data/test/sample_files/syck-0.55/ext/ruby/tests/basic.rb +1653 -0
- data/test/sample_files/syck-0.55/ext/ruby/yts/YtsAnchorAlias.yml +51 -0
- data/test/sample_files/syck-0.55/ext/ruby/yts/YtsBasicTests.yml +282 -0
- data/test/sample_files/syck-0.55/ext/ruby/yts/YtsBlockMapping.yml +78 -0
- data/test/sample_files/syck-0.55/ext/ruby/yts/YtsBlockSequence.yml +0 -0
- data/test/sample_files/syck-0.55/ext/ruby/yts/YtsDocumentSeparator.yml +102 -0
- data/test/sample_files/syck-0.55/ext/ruby/yts/YtsErrorTests.yml +23 -0
- data/test/sample_files/syck-0.55/ext/ruby/yts/YtsFlowCollections.yml +73 -0
- data/test/sample_files/syck-0.55/ext/ruby/yts/YtsFoldedScalars.yml +215 -0
- data/test/sample_files/syck-0.55/ext/ruby/yts/YtsMapInSeq.yml +0 -0
- data/test/sample_files/syck-0.55/ext/ruby/yts/YtsNullsAndEmpties.yml +66 -0
- data/test/sample_files/syck-0.55/ext/ruby/yts/YtsRubyTests.yml +182 -0
- data/test/sample_files/syck-0.55/ext/ruby/yts/YtsSpecificationExamples.yml +2699 -0
- data/test/sample_files/syck-0.55/ext/ruby/yts/YtsTypeTransfers.yml +265 -0
- data/test/sample_files/syck-0.55/ext/ruby/yts/YtsYpath.yml +221 -0
- data/test/sample_files/syck-0.55/ext/ruby/yts/cookbook.rb +159 -0
- data/test/sample_files/syck-0.55/ext/ruby/yts/index.yml +10 -0
- data/test/sample_files/syck-0.55/ext/ruby/yts/yts.rb +193 -0
- data/test/sample_files/syck-0.55/lib/Makefile +497 -0
- data/test/sample_files/syck-0.55/lib/Makefile.am +27 -0
- data/test/sample_files/syck-0.55/lib/Makefile.in +497 -0
- data/test/sample_files/syck-0.55/lib/bytecode.c +1170 -0
- data/test/sample_files/syck-0.55/lib/bytecode.re +525 -0
- data/test/sample_files/syck-0.55/lib/emitter.c +1224 -0
- data/test/sample_files/syck-0.55/lib/gram.c +1894 -0
- data/test/sample_files/syck-0.55/lib/gram.h +79 -0
- data/test/sample_files/syck-0.55/lib/gram.output +2005 -0
- data/test/sample_files/syck-0.55/lib/gram.y +481 -0
- data/test/sample_files/syck-0.55/lib/handler.c +174 -0
- data/test/sample_files/syck-0.55/lib/implicit.c +2989 -0
- data/test/sample_files/syck-0.55/lib/implicit.re +206 -0
- data/test/sample_files/syck-0.55/lib/node.c +407 -0
- data/test/sample_files/syck-0.55/lib/syck.c +504 -0
- data/test/sample_files/syck-0.55/lib/syck.h +458 -0
- data/test/sample_files/syck-0.55/lib/syck_st.c +577 -0
- data/test/sample_files/syck-0.55/lib/syck_st.h +46 -0
- data/test/sample_files/syck-0.55/lib/token.c +2707 -0
- data/test/sample_files/syck-0.55/lib/token.re +1139 -0
- data/test/sample_files/syck-0.55/lib/yaml2byte.c +250 -0
- data/test/sample_files/syck-0.55/lib/yamlbyte.h +170 -0
- data/test/sample_files/syck-0.55/stamp-h1 +1 -0
- data/test/sample_files/syck-0.55/tests/Basic.c +141 -0
- data/test/sample_files/syck-0.55/tests/CuTest.c +294 -0
- data/test/sample_files/syck-0.55/tests/CuTest.h +84 -0
- data/test/sample_files/syck-0.55/tests/Emit.c +87 -0
- data/test/sample_files/syck-0.55/tests/Makefile +480 -0
- data/test/sample_files/syck-0.55/tests/Makefile.am +13 -0
- data/test/sample_files/syck-0.55/tests/Makefile.in +480 -0
- data/test/sample_files/syck-0.55/tests/Parse.c +208 -0
- data/test/sample_files/syck-0.55/tests/YTS.c +2310 -0
- data/test/sample_files/syck-0.55/tests/YTS.c.erb +326 -0
- data/test/sample_files/syck-0.55/tests/YTS.c.rb +44 -0
- data/test/test_availability.rb +68 -0
- data/test/test_generator.rb +74 -0
- metadata +252 -0
@@ -0,0 +1,23 @@
|
|
1
|
+
---
|
2
|
+
test: Missing value for hash item
|
3
|
+
brief: |
|
4
|
+
Third item in this hash doesn't have a value
|
5
|
+
yaml: |
|
6
|
+
okay: value
|
7
|
+
also okay: ~
|
8
|
+
causes error because no value specified
|
9
|
+
last key: value okay here too
|
10
|
+
python-error: causes error because no value specified
|
11
|
+
|
12
|
+
---
|
13
|
+
test: Not indenting enough
|
14
|
+
brief: |
|
15
|
+
There was a bug in PyYaml where it was off by one
|
16
|
+
in the indentation check. It was allowing the YAML
|
17
|
+
below.
|
18
|
+
# This is actually valid YAML now. Someone should tell showell.
|
19
|
+
yaml: |
|
20
|
+
foo:
|
21
|
+
firstline: 1
|
22
|
+
secondline: 2
|
23
|
+
python-error: Inadequate indentation
|
@@ -0,0 +1,73 @@
|
|
1
|
+
---
|
2
|
+
test: Simple Inline Array
|
3
|
+
brief: >
|
4
|
+
Sequences can be contained on a
|
5
|
+
single line, using the inline syntax.
|
6
|
+
Separate each entry with commas and
|
7
|
+
enclose in square brackets.
|
8
|
+
yaml: |
|
9
|
+
---
|
10
|
+
seq: [ a, b, c ]
|
11
|
+
python: |
|
12
|
+
[
|
13
|
+
{ 'seq': [ 'a', 'b', 'c' ] }
|
14
|
+
]
|
15
|
+
ruby: |
|
16
|
+
{ 'seq' => [ 'a', 'b', 'c' ] }
|
17
|
+
|
18
|
+
---
|
19
|
+
test: Simple Inline Hash
|
20
|
+
brief: >
|
21
|
+
Mapping can also be contained on
|
22
|
+
a single line, using the inline
|
23
|
+
syntax. Each key-value pair is
|
24
|
+
separated by a colon, with a comma
|
25
|
+
between each entry in the mapping.
|
26
|
+
Enclose with curly braces.
|
27
|
+
yaml: |
|
28
|
+
---
|
29
|
+
hash: { name: Steve, foo: bar }
|
30
|
+
python: |
|
31
|
+
[
|
32
|
+
{ 'hash': {'name': 'Steve', 'foo': 'bar'} }
|
33
|
+
]
|
34
|
+
ruby: |
|
35
|
+
{ 'hash' => { 'name' => 'Steve', 'foo' => 'bar' } }
|
36
|
+
|
37
|
+
---
|
38
|
+
test: Multi-line Inline Collections
|
39
|
+
brief: >
|
40
|
+
Both inline sequences and inline mappings
|
41
|
+
can span multiple lines, provided that you
|
42
|
+
indent the additional lines.
|
43
|
+
yaml: |
|
44
|
+
languages: [ Ruby,
|
45
|
+
Perl,
|
46
|
+
Python ]
|
47
|
+
websites: { YAML: yaml.org,
|
48
|
+
Ruby: ruby-lang.org,
|
49
|
+
Python: python.org,
|
50
|
+
Perl: use.perl.org }
|
51
|
+
ruby: |
|
52
|
+
{ 'languages' => [ 'Ruby', 'Perl', 'Python' ],
|
53
|
+
'websites' => {
|
54
|
+
'YAML' => 'yaml.org',
|
55
|
+
'Ruby' => 'ruby-lang.org',
|
56
|
+
'Python' => 'python.org',
|
57
|
+
'Perl' => 'use.perl.org'
|
58
|
+
}
|
59
|
+
}
|
60
|
+
---
|
61
|
+
test: Commas in Values
|
62
|
+
brief: >
|
63
|
+
List items in collections are delimited by commas, but
|
64
|
+
there must be a space after each comma. This allows you
|
65
|
+
to add numbers without quoting.
|
66
|
+
yaml: |
|
67
|
+
attendances: [ 45,123, 70,000, 17,222 ]
|
68
|
+
python: |
|
69
|
+
[
|
70
|
+
{'attendances': [ 45123, 70000, 17222 ]}
|
71
|
+
]
|
72
|
+
ruby: |
|
73
|
+
{ 'attendances' => [ 45123, 70000, 17222 ] }
|
@@ -0,0 +1,215 @@
|
|
1
|
+
--- %YAML:1.0
|
2
|
+
test: Single ending newline
|
3
|
+
brief: >
|
4
|
+
A pipe character, followed by an indented
|
5
|
+
block of text is treated as a literal
|
6
|
+
block, in which newlines are preserved
|
7
|
+
throughout the block, including the final
|
8
|
+
newline.
|
9
|
+
yaml: |
|
10
|
+
---
|
11
|
+
this: |
|
12
|
+
Foo
|
13
|
+
Bar
|
14
|
+
|
15
|
+
ruby: |
|
16
|
+
{ 'this' => "Foo\nBar\n" }
|
17
|
+
python: |
|
18
|
+
[
|
19
|
+
{ 'this': "Foo\nBar\n" }
|
20
|
+
]
|
21
|
+
---
|
22
|
+
test: The '+' indicator
|
23
|
+
brief: >
|
24
|
+
The '+' indicator says to keep newlines at the end of text
|
25
|
+
blocks.
|
26
|
+
yaml: |
|
27
|
+
normal: |
|
28
|
+
extra new lines not kept
|
29
|
+
|
30
|
+
preserving: |+
|
31
|
+
extra new lines are kept
|
32
|
+
|
33
|
+
|
34
|
+
dummy: value
|
35
|
+
ruby: |
|
36
|
+
{
|
37
|
+
'normal' => "extra new lines not kept\n",
|
38
|
+
'preserving' => "extra new lines are kept\n\n\n",
|
39
|
+
'dummy' => 'value'
|
40
|
+
}
|
41
|
+
python: |
|
42
|
+
[ {
|
43
|
+
'normal': "extra new lines not kept\n",
|
44
|
+
'preserving': "extra new lines are kept\n\n\n",
|
45
|
+
'dummy': 'value'
|
46
|
+
} ]
|
47
|
+
---
|
48
|
+
test: Three trailing newlines in literals
|
49
|
+
brief: >
|
50
|
+
To give you more control over how space
|
51
|
+
is preserved in text blocks, YAML has
|
52
|
+
the keep '+' and chomp '-' indicators.
|
53
|
+
The keep indicator will preserve all
|
54
|
+
ending newlines, while the chomp indicator
|
55
|
+
will strip all ending newlines.
|
56
|
+
yaml: |
|
57
|
+
clipped: |
|
58
|
+
This has one newline.
|
59
|
+
|
60
|
+
|
61
|
+
|
62
|
+
same as "clipped" above: "This has one newline.\n"
|
63
|
+
|
64
|
+
stripped: |-
|
65
|
+
This has no newline.
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
same as "stripped" above: "This has no newline."
|
70
|
+
|
71
|
+
kept: |+
|
72
|
+
This has four newlines.
|
73
|
+
|
74
|
+
|
75
|
+
|
76
|
+
same as "kept" above: "This has four newlines.\n\n\n\n"
|
77
|
+
ruby: |
|
78
|
+
{
|
79
|
+
'clipped' => "This has one newline.\n",
|
80
|
+
'same as "clipped" above' => "This has one newline.\n",
|
81
|
+
'stripped' => 'This has no newline.',
|
82
|
+
'same as "stripped" above' => 'This has no newline.',
|
83
|
+
'kept' => "This has four newlines.\n\n\n\n",
|
84
|
+
'same as "kept" above' => "This has four newlines.\n\n\n\n"
|
85
|
+
}
|
86
|
+
not_yet_in_python: |
|
87
|
+
[
|
88
|
+
{
|
89
|
+
'clipped': "This has one newline.\n",
|
90
|
+
'same as "clipped" above': "This has one newline.\n",
|
91
|
+
'stripped': 'This has no newline.',
|
92
|
+
'same as "stripped" above': 'This has no newline.',
|
93
|
+
'kept': "This has four newlines.\n\n\n\n",
|
94
|
+
'same as "kept" above': "This has four newlines.\n\n\n\n"
|
95
|
+
}
|
96
|
+
]
|
97
|
+
|
98
|
+
---
|
99
|
+
test: Extra trailing newlines with spaces
|
100
|
+
brief: >
|
101
|
+
Normally, only a single newline is kept
|
102
|
+
from the end of a literal block, unless the
|
103
|
+
keep '+' character is used in combination
|
104
|
+
with the pipe. The following example
|
105
|
+
will preserve all ending whitespace
|
106
|
+
since the last line of both literal blocks
|
107
|
+
contains spaces which extend past the indentation
|
108
|
+
level.
|
109
|
+
yaml: |
|
110
|
+
---
|
111
|
+
this: |
|
112
|
+
Foo
|
113
|
+
|
114
|
+
|
115
|
+
kept: |+
|
116
|
+
Foo
|
117
|
+
|
118
|
+
|
119
|
+
ruby: |
|
120
|
+
{ 'this' => "Foo\n\n \n",
|
121
|
+
'kept' => "Foo\n\n \n" }
|
122
|
+
|
123
|
+
---
|
124
|
+
test: Folded Block in a Sequence
|
125
|
+
brief: >
|
126
|
+
A greater-then character, followed by an indented
|
127
|
+
block of text is treated as a folded block, in
|
128
|
+
which lines of text separated by a single newline
|
129
|
+
are concatenated as a single line.
|
130
|
+
yaml: |
|
131
|
+
---
|
132
|
+
- apple
|
133
|
+
- banana
|
134
|
+
- >
|
135
|
+
can't you see
|
136
|
+
the beauty of yaml?
|
137
|
+
hmm
|
138
|
+
- dog
|
139
|
+
python: |
|
140
|
+
[
|
141
|
+
[
|
142
|
+
'apple',
|
143
|
+
'banana',
|
144
|
+
"can't you see the beauty of yaml? hmm\n",
|
145
|
+
'dog'
|
146
|
+
]
|
147
|
+
]
|
148
|
+
ruby: |
|
149
|
+
[
|
150
|
+
'apple',
|
151
|
+
'banana',
|
152
|
+
"can't you see the beauty of yaml? hmm\n",
|
153
|
+
'dog'
|
154
|
+
]
|
155
|
+
---
|
156
|
+
test: Folded Block as a Mapping Value
|
157
|
+
brief: >
|
158
|
+
Both literal and folded blocks can be
|
159
|
+
used in collections, as values in a
|
160
|
+
sequence or a mapping.
|
161
|
+
yaml: |
|
162
|
+
---
|
163
|
+
quote: >
|
164
|
+
Mark McGwire's
|
165
|
+
year was crippled
|
166
|
+
by a knee injury.
|
167
|
+
source: espn
|
168
|
+
python: |
|
169
|
+
[
|
170
|
+
{
|
171
|
+
'quote': "Mark McGwire's year was crippled by a knee injury.\n",
|
172
|
+
'source': 'espn'
|
173
|
+
}
|
174
|
+
]
|
175
|
+
ruby: |
|
176
|
+
{
|
177
|
+
'quote' => "Mark McGwire's year was crippled by a knee injury.\n",
|
178
|
+
'source' => 'espn'
|
179
|
+
}
|
180
|
+
|
181
|
+
---
|
182
|
+
test: Three trailing newlines in folded blocks
|
183
|
+
brief: >
|
184
|
+
The keep and chomp indicators can also
|
185
|
+
be applied to folded blocks.
|
186
|
+
yaml: |
|
187
|
+
clipped: >
|
188
|
+
This has one newline.
|
189
|
+
|
190
|
+
|
191
|
+
|
192
|
+
same as "clipped" above: "This has one newline.\n"
|
193
|
+
|
194
|
+
stripped: >-
|
195
|
+
This has no newline.
|
196
|
+
|
197
|
+
|
198
|
+
|
199
|
+
same as "stripped" above: "This has no newline."
|
200
|
+
|
201
|
+
kept: >+
|
202
|
+
This has four newlines.
|
203
|
+
|
204
|
+
|
205
|
+
|
206
|
+
same as "kept" above: "This has four newlines.\n\n\n\n"
|
207
|
+
ruby: |
|
208
|
+
{
|
209
|
+
'clipped' => "This has one newline.\n",
|
210
|
+
'same as "clipped" above' => "This has one newline.\n",
|
211
|
+
'stripped' => 'This has no newline.',
|
212
|
+
'same as "stripped" above' => 'This has no newline.',
|
213
|
+
'kept' => "This has four newlines.\n\n\n\n",
|
214
|
+
'same as "kept" above' => "This has four newlines.\n\n\n\n"
|
215
|
+
}
|
File without changes
|
@@ -0,0 +1,66 @@
|
|
1
|
+
--- %YAML:1.0
|
2
|
+
test: Empty Sequence
|
3
|
+
brief: >
|
4
|
+
You can represent the empty sequence
|
5
|
+
with an empty inline sequence.
|
6
|
+
yaml: |
|
7
|
+
empty: []
|
8
|
+
python: |
|
9
|
+
[
|
10
|
+
{ 'empty': [] }
|
11
|
+
]
|
12
|
+
ruby: |
|
13
|
+
{ 'empty' => [] }
|
14
|
+
|
15
|
+
---
|
16
|
+
test: Empty Mapping
|
17
|
+
brief: >
|
18
|
+
You can represent the empty mapping
|
19
|
+
with an empty inline mapping.
|
20
|
+
yaml: |
|
21
|
+
empty: {}
|
22
|
+
python: |
|
23
|
+
[
|
24
|
+
{ 'empty': {} }
|
25
|
+
]
|
26
|
+
ruby: |
|
27
|
+
{ 'empty' => {} }
|
28
|
+
|
29
|
+
---
|
30
|
+
test: Empty Sequence as Entire Document
|
31
|
+
yaml: |
|
32
|
+
--- []
|
33
|
+
python: |
|
34
|
+
[ [] ]
|
35
|
+
ruby: |
|
36
|
+
[]
|
37
|
+
|
38
|
+
---
|
39
|
+
test: Empty Mapping as Entire Document
|
40
|
+
yaml: |
|
41
|
+
--- {}
|
42
|
+
python: |
|
43
|
+
[ {} ]
|
44
|
+
ruby: |
|
45
|
+
{}
|
46
|
+
|
47
|
+
---
|
48
|
+
test: Null as Document
|
49
|
+
yaml: |
|
50
|
+
--- ~
|
51
|
+
python: |
|
52
|
+
[ None ]
|
53
|
+
ruby: |
|
54
|
+
nil
|
55
|
+
|
56
|
+
---
|
57
|
+
test: Empty String
|
58
|
+
brief: >
|
59
|
+
You can represent an empty string
|
60
|
+
with a pair of quotes.
|
61
|
+
yaml: |
|
62
|
+
--- ''
|
63
|
+
python: |
|
64
|
+
[ '' ]
|
65
|
+
ruby: |
|
66
|
+
''
|
@@ -0,0 +1,182 @@
|
|
1
|
+
--- %YAML:1.0
|
2
|
+
test: Symbols
|
3
|
+
brief: >
|
4
|
+
Ruby Symbols can be simply serialized using
|
5
|
+
the !ruby/symbol transfer method, or the
|
6
|
+
abbreviated !ruby/sym.
|
7
|
+
yaml: |
|
8
|
+
simple symbol: !ruby/symbol Simple
|
9
|
+
shortcut syntax: !ruby/sym Simple
|
10
|
+
symbols in seqs:
|
11
|
+
- !ruby/symbol ValOne
|
12
|
+
- !ruby/symbol ValTwo
|
13
|
+
- !ruby/symbol ValThree
|
14
|
+
symbols in maps:
|
15
|
+
- !ruby/symbol MapKey: !ruby/symbol MapValue
|
16
|
+
ruby: |
|
17
|
+
{ 'simple symbol' => :Simple,
|
18
|
+
'shortcut syntax' => :Simple,
|
19
|
+
'symbols in seqs' => [ :ValOne, :ValTwo, :ValThree ],
|
20
|
+
'symbols in maps' => [ { :MapKey => :MapValue } ]
|
21
|
+
}
|
22
|
+
|
23
|
+
---
|
24
|
+
test: Ranges
|
25
|
+
brief: >
|
26
|
+
Ranges are serialized with the !ruby/range
|
27
|
+
type family.
|
28
|
+
yaml: |
|
29
|
+
normal range: !ruby/range 10..20
|
30
|
+
exclusive range: !ruby/range 11...20
|
31
|
+
negative range: !ruby/range -1..-5
|
32
|
+
? !ruby/range 0..40
|
33
|
+
: range as a map key
|
34
|
+
ruby: |
|
35
|
+
{ 'normal range' => (10..20),
|
36
|
+
'exclusive range' => (11...20),
|
37
|
+
'negative range' => (-1..-5),
|
38
|
+
(0..40) => 'range as a map key'
|
39
|
+
}
|
40
|
+
|
41
|
+
---
|
42
|
+
test: Regexps
|
43
|
+
brief: >
|
44
|
+
Regexps may be serialized to YAML, both its
|
45
|
+
syntax and any modifiers.
|
46
|
+
yaml: |
|
47
|
+
case-insensitive: !ruby/regexp "/George McFly/i"
|
48
|
+
complex: !ruby/regexp "/\\A\"((?:[^\"]|\\\")+)\"/"
|
49
|
+
simple: !ruby/regexp '/a.b/'
|
50
|
+
ruby: |
|
51
|
+
{ 'simple' => /a.b/, 'complex' => /\A"((?:[^"]|\")+)"/,
|
52
|
+
'case-insensitive' => /George McFly/i }
|
53
|
+
|
54
|
+
---
|
55
|
+
test: Struct class
|
56
|
+
brief: >
|
57
|
+
The Ruby Struct class is registered as a YAML
|
58
|
+
builtin type through Ruby, so it can safely
|
59
|
+
be serialized. To use it, first make sure you
|
60
|
+
define your Struct with Struct::new. Then,
|
61
|
+
you are able to serialize with Struct#to_yaml
|
62
|
+
and unserialize from a YAML stream.
|
63
|
+
yaml: |
|
64
|
+
--- !ruby/struct:BookStruct
|
65
|
+
author: Yukihiro Matsumoto
|
66
|
+
title: Ruby in a Nutshell
|
67
|
+
year: 2002
|
68
|
+
isbn: 0-596-00214-9
|
69
|
+
ruby-setup: |
|
70
|
+
book_struct = Struct::new( "BookStruct", :author, :title, :year, :isbn )
|
71
|
+
ruby: |
|
72
|
+
book_struct.new( "Yukihiro Matsumoto", "Ruby in a Nutshell", 2002, "0-596-00214-9" )
|
73
|
+
|
74
|
+
---
|
75
|
+
test: Nested Structs
|
76
|
+
brief: >
|
77
|
+
As with other YAML builtins, you may nest the
|
78
|
+
Struct inside of other Structs or other data
|
79
|
+
types.
|
80
|
+
yaml: |
|
81
|
+
- !ruby/struct:FoodStruct
|
82
|
+
name: Nachos
|
83
|
+
ingredients:
|
84
|
+
- Mission Chips
|
85
|
+
- !ruby/struct:FoodStruct
|
86
|
+
name: Tostitos Nacho Cheese
|
87
|
+
ingredients:
|
88
|
+
- Milk and Enzymes
|
89
|
+
- Jack Cheese
|
90
|
+
- Some Volatile Chemicals
|
91
|
+
taste: Angelic
|
92
|
+
- Sour Cream
|
93
|
+
taste: Zesty
|
94
|
+
- !ruby/struct:FoodStruct
|
95
|
+
name: Banana Cream Pie
|
96
|
+
ingredients:
|
97
|
+
- Bananas
|
98
|
+
- Creamy Stuff
|
99
|
+
- And Such
|
100
|
+
taste: Puffy
|
101
|
+
ruby-setup: |
|
102
|
+
food_struct = Struct::new( "FoodStruct", :name, :ingredients, :taste )
|
103
|
+
ruby: |
|
104
|
+
[
|
105
|
+
food_struct.new( 'Nachos', [ 'Mission Chips',
|
106
|
+
food_struct.new( 'Tostitos Nacho Cheese', [ 'Milk and Enzymes', 'Jack Cheese', 'Some Volatile Chemicals' ], 'Angelic' ),
|
107
|
+
'Sour Cream' ], 'Zesty' ),
|
108
|
+
food_struct.new( 'Banana Cream Pie', [ 'Bananas', 'Creamy Stuff', 'And Such' ], 'Puffy' )
|
109
|
+
]
|
110
|
+
|
111
|
+
---
|
112
|
+
test: Objects
|
113
|
+
brief: >
|
114
|
+
YAML has generic support for serializing objects
|
115
|
+
from any class available in Ruby. If using the
|
116
|
+
generic object serialization, no extra code is
|
117
|
+
needed.
|
118
|
+
yaml: |
|
119
|
+
--- !ruby/object:Zoolander
|
120
|
+
name: Derek
|
121
|
+
look: Blue Steel
|
122
|
+
ruby-setup: |
|
123
|
+
class Zoolander
|
124
|
+
attr_accessor :name, :look
|
125
|
+
def initialize( look )
|
126
|
+
@name = "Derek"
|
127
|
+
@look = look
|
128
|
+
end
|
129
|
+
def ==( z )
|
130
|
+
self.name == z.name and self.look == z.look
|
131
|
+
end
|
132
|
+
end
|
133
|
+
ruby: |
|
134
|
+
Zoolander.new( "Blue Steel" )
|
135
|
+
|
136
|
+
---
|
137
|
+
test: Extending Kernel::Array
|
138
|
+
brief: >
|
139
|
+
When extending the Array class, your instances
|
140
|
+
of such a class will dump as YAML sequences,
|
141
|
+
tagged with a class name.
|
142
|
+
yaml: |
|
143
|
+
--- !ruby/array:MyArray
|
144
|
+
- jacket
|
145
|
+
- sweater
|
146
|
+
- windbreaker
|
147
|
+
ruby-setup: |
|
148
|
+
class MyArray < ::Array; end
|
149
|
+
ruby: |
|
150
|
+
outerwear = MyArray.new
|
151
|
+
outerwear << 'jacket'
|
152
|
+
outerwear << 'sweater'
|
153
|
+
outerwear << 'windbreaker'
|
154
|
+
outerwear
|
155
|
+
|
156
|
+
---
|
157
|
+
test: Extending Kernel::Hash
|
158
|
+
brief: >
|
159
|
+
When extending the Hash class, your instances
|
160
|
+
of such a class will dump as YAML maps, tagged
|
161
|
+
with a class name.
|
162
|
+
yaml: |
|
163
|
+
--- !ruby/hash:MyHash
|
164
|
+
Black Francis: Frank Black
|
165
|
+
Kim Deal: Breeders
|
166
|
+
Joey Santiago: Martinis
|
167
|
+
ruby-setup: |
|
168
|
+
# Note that the @me attribute isn't dumped
|
169
|
+
# because the default to_yaml is trained
|
170
|
+
# to dump as a regular Hash.
|
171
|
+
class MyHash < ::Hash
|
172
|
+
attr_accessor :me
|
173
|
+
def initialize
|
174
|
+
@me = "Why"
|
175
|
+
end
|
176
|
+
end
|
177
|
+
ruby: |
|
178
|
+
pixies = MyHash.new
|
179
|
+
pixies['Black Francis'] = 'Frank Black'
|
180
|
+
pixies['Kim Deal'] = 'Breeders'
|
181
|
+
pixies['Joey Santiago'] = 'Martinis'
|
182
|
+
pixies
|