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,36 @@
|
|
|
1
|
+
# Process this file with autoconf to produce a configure script.
|
|
2
|
+
AC_INIT(syck, 0.54)
|
|
3
|
+
AC_CONFIG_AUX_DIR(config)
|
|
4
|
+
AC_PREREQ(2.50)
|
|
5
|
+
|
|
6
|
+
AM_INIT_AUTOMAKE(syck, 0.54)
|
|
7
|
+
AM_CONFIG_HEADER(config.h)
|
|
8
|
+
|
|
9
|
+
# Checks for programs.
|
|
10
|
+
AC_PROG_CC_STDC
|
|
11
|
+
AC_PROG_INSTALL
|
|
12
|
+
AC_PROG_LN_S
|
|
13
|
+
AC_PROG_RANLIB
|
|
14
|
+
AC_PROG_MAKE_SET
|
|
15
|
+
AC_PROG_AWK
|
|
16
|
+
AC_PROG_YACC
|
|
17
|
+
AM_PROG_LEX
|
|
18
|
+
|
|
19
|
+
# Checks for libraries.
|
|
20
|
+
|
|
21
|
+
# Checks for header files.
|
|
22
|
+
AC_HEADER_STDC
|
|
23
|
+
AC_CHECK_HEADERS(alloca.h stdlib.h string.h)
|
|
24
|
+
AC_CHECK_SIZEOF(int, 4)
|
|
25
|
+
AC_CHECK_SIZEOF(long, 4)
|
|
26
|
+
|
|
27
|
+
# Checks for typedefs, structures, and compiler characteristics.
|
|
28
|
+
|
|
29
|
+
# Checks for library functions.
|
|
30
|
+
AC_FUNC_MALLOC
|
|
31
|
+
AC_FUNC_VPRINTF
|
|
32
|
+
|
|
33
|
+
AC_CONFIG_FILES([Makefile
|
|
34
|
+
lib/Makefile
|
|
35
|
+
tests/Makefile])
|
|
36
|
+
AC_OUTPUT
|
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
--- %YAML:1.0
|
|
2
|
+
- version: 0.60
|
|
3
|
+
date: 2003-06-05
|
|
4
|
+
changes:
|
|
5
|
+
- New parser backed by Syck. [http://whytheluckystiff.net/syck/] 100x faster.
|
|
6
|
+
- New YAML::DBM module.
|
|
7
|
+
|
|
8
|
+
- version: 0.50
|
|
9
|
+
date: 2003-01-13
|
|
10
|
+
changes:
|
|
11
|
+
- YAML::Store more like PStore fixes. Thank you, Eric Hodel.
|
|
12
|
+
- Bug fix to transfer methods, anchors, aliases in a seq-map shortcut. Thank you, Brad Hilton.
|
|
13
|
+
- Prototype YPath support nearly complete (still need to handle '..').
|
|
14
|
+
- New YAML::YamlNode#select! method will transform the results of a selection.
|
|
15
|
+
- No more '+' and '-' boolean implicits.
|
|
16
|
+
- Sequence-in-sequence shortcut nailed.
|
|
17
|
+
- Output YAML repaired for YTS.
|
|
18
|
+
- Radical 0.6 + YAML patches.
|
|
19
|
+
|
|
20
|
+
- version: 0.49
|
|
21
|
+
date: 2003-01-12
|
|
22
|
+
changes:
|
|
23
|
+
- New, cleaner, more efficient tokenizer. Three months worth of work, kids.
|
|
24
|
+
- Line numbers now reported on errors.
|
|
25
|
+
- New map-seq shortcut.
|
|
26
|
+
- New collection types. !omap, !pairs, !set.
|
|
27
|
+
- New implicits for !null, !float, and !boolean.
|
|
28
|
+
- Merge token changed to '<<'.
|
|
29
|
+
- Added sexagecimal format (for time and degrees).
|
|
30
|
+
- Removed the 'undef' possibility.
|
|
31
|
+
- Fixed implicit empties in inline sequences.
|
|
32
|
+
- Flow values allowed in their own indentation.
|
|
33
|
+
- Parsing plain scalars better than ever.
|
|
34
|
+
|
|
35
|
+
- version: 0.48
|
|
36
|
+
date: 2003-01-04
|
|
37
|
+
changes:
|
|
38
|
+
- Empty string implicit.
|
|
39
|
+
- New merge type rules! See http://www.yaml.org/type/merge/.
|
|
40
|
+
- URL encoding removed, replaced with YAML escaping.
|
|
41
|
+
- Binary type now does base64 exclusively.
|
|
42
|
+
- Removed parentheses syntax from !null, !bool and !float implicits.
|
|
43
|
+
- Fixes to the seq-map shortcut, addition of the new map-seq shortcut!
|
|
44
|
+
- Enhanced !okay/rpc's server.about return.
|
|
45
|
+
- The install script's --force command was removed.
|
|
46
|
+
- Directives now in %KEY:VALUE format.
|
|
47
|
+
|
|
48
|
+
- version: 0.47
|
|
49
|
+
date: 2002-11-11
|
|
50
|
+
changes:
|
|
51
|
+
- New IO via StringIO and IO#readline. A change from 0.50 that's being merged in now for speed.
|
|
52
|
+
- Trailing document separator bugfix.
|
|
53
|
+
- DomainType class for handling undefined type families.
|
|
54
|
+
- YAML::each_document alias for YAML::load_documents
|
|
55
|
+
- YAML::each_node alias for YAML::parse_documents
|
|
56
|
+
|
|
57
|
+
- version: 0.46
|
|
58
|
+
date: 2002-11-01
|
|
59
|
+
changes:
|
|
60
|
+
- RubyConf fluf release.
|
|
61
|
+
- In other words, no real changes.
|
|
62
|
+
- I'm talking about total jubilation.
|
|
63
|
+
|
|
64
|
+
- version: 0.45
|
|
65
|
+
date: 2002-10-31
|
|
66
|
+
changes:
|
|
67
|
+
- Yod generates PDF (requires Ruby-ClibPDF).
|
|
68
|
+
- Speed improvement of 20-30% in yaml.rb parser.
|
|
69
|
+
- Support for Okay modules.
|
|
70
|
+
- Long single-line strings will be folded if emitter has folding on.
|
|
71
|
+
|
|
72
|
+
- version: 0.44
|
|
73
|
+
date: 2002-10-10
|
|
74
|
+
changes:
|
|
75
|
+
- New !okay/news and !okay/rpc specifications.
|
|
76
|
+
- Racc no longer a run YAML.
|
|
77
|
+
|
|
78
|
+
- version: 0.43
|
|
79
|
+
date: 2002-09-17
|
|
80
|
+
changes:
|
|
81
|
+
- Strings now anchored only if the string contains a new line.
|
|
82
|
+
- Prototype for the !okay/type schema validator now included.
|
|
83
|
+
- Typing and implicit checking system now wired to YAML::transfer_method.
|
|
84
|
+
|
|
85
|
+
- version: 0.42
|
|
86
|
+
date: 2002-09-16
|
|
87
|
+
changes:
|
|
88
|
+
- Timestamp usec fixes galore from Michael Witrant.
|
|
89
|
+
- New API with parse_* and load_* for accessing the generic and native models, respectively.
|
|
90
|
+
- Basic YPath support checked in.
|
|
91
|
+
|
|
92
|
+
- version: 0.41
|
|
93
|
+
date: 2002-09-06
|
|
94
|
+
changes:
|
|
95
|
+
- New taguri typing mechanism (from Last Call spec).
|
|
96
|
+
- The '/' character allowed to start unquoted strings (from Last Call spec).
|
|
97
|
+
- Added YAML::Pairs type which capitalizes on the seq-map shortcut in the spec.
|
|
98
|
+
- Repaired cases in which nested inline collections were screwing things up.
|
|
99
|
+
- Emitter now emits the seq-map shortcut when possible.
|
|
100
|
+
- Custom classes which extend from Array and Object should round-trip.
|
|
101
|
+
|
|
102
|
+
- version: 0.40
|
|
103
|
+
date: 2002-08-28
|
|
104
|
+
changes:
|
|
105
|
+
- Added Emitter#map and Emitter#seq, along with YAML::quick_emit to ease writing to_yaml methods.
|
|
106
|
+
- Fixes to headless documents.
|
|
107
|
+
- Fix to PrivateType.
|
|
108
|
+
- Fix to empty classes extended from Array and Object.
|
|
109
|
+
- New reference checker uses anchors and aliases to prevent circular references.
|
|
110
|
+
- Binary data now emitting.
|
|
111
|
+
- Kernel::y method for dumping data as an alternative to Kernel::p.
|
|
112
|
+
|
|
113
|
+
- version: 0.39
|
|
114
|
+
date: 2002-08-15
|
|
115
|
+
changes:
|
|
116
|
+
- 'Improved multi-line scalar emissions. Beware of Iconv module with large text blocks.
|
|
117
|
+
It appears to be cutting off after a few k.'
|
|
118
|
+
- Problem with space indicators emitted by String#to_yaml. Bug reported by Tom Sawyer.
|
|
119
|
+
- Bug in comment-handling code. YAML couldn't parse the README.
|
|
120
|
+
- Yod now generating compilable CHM.
|
|
121
|
+
|
|
122
|
+
- version: 0.38
|
|
123
|
+
date: 2002-08-12
|
|
124
|
+
changes:
|
|
125
|
+
- Moved the Emitter into its own class. Thread-safe now.
|
|
126
|
+
- Added some basic Unicode support.
|
|
127
|
+
- More progress on Yod.
|
|
128
|
+
|
|
129
|
+
- version: 0.37
|
|
130
|
+
date: 2002-08-04
|
|
131
|
+
changes:
|
|
132
|
+
- Finished descriptions in the Cookbook.
|
|
133
|
+
- Added simpler inline Regexp and Range serialization.
|
|
134
|
+
|
|
135
|
+
- version: 0.36
|
|
136
|
+
date: 2002-08-01
|
|
137
|
+
changes:
|
|
138
|
+
- Renamed YAML.rb.
|
|
139
|
+
- Fixed slight inconsistency with space indicators in plain scalars.
|
|
140
|
+
|
|
141
|
+
- version: 0.35
|
|
142
|
+
date: 2002-07-29
|
|
143
|
+
changes:
|
|
144
|
+
- Range#to_yaml added.
|
|
145
|
+
- Space indicators now required as the spec prescribes (http://yaml.org/spec/#space_indicators).
|
|
146
|
+
- Negative numbers parsing fixed.
|
|
147
|
+
|
|
148
|
+
- version: 0.34
|
|
149
|
+
date: 2002-07-29
|
|
150
|
+
changes:
|
|
151
|
+
- Symbol#to_yaml added with abbreviated !ruby/sym syntax.
|
|
152
|
+
- Problems with NaN, Infinity, Floats emission.
|
|
153
|
+
- Complex keys, Symbol keys, Regexp keys bugfixes.
|
|
154
|
+
- Bug in Time#to_yaml. My bad.
|
|
155
|
+
|
|
156
|
+
- version: 0.33
|
|
157
|
+
date: 2002-07-29
|
|
158
|
+
changes:
|
|
159
|
+
- Better String#to_yaml, uses the parser's implicit type checker now!
|
|
160
|
+
- Headless documents now skipping the initial newline properly.
|
|
161
|
+
- Turned off SortKeys by default; still turned on in the tests.
|
|
162
|
+
|
|
163
|
+
- version: 0.32
|
|
164
|
+
date: 2002-07-28
|
|
165
|
+
changes:
|
|
166
|
+
- Opened up unquoted strings to more characters, is closer to spec now.
|
|
167
|
+
- Round tripping started with YTS.
|
|
168
|
+
- Problems with foreign characters fixed. Thanks, Robert Wagner.
|
|
169
|
+
- Problems with Array#to_yaml and Hash#to_yaml not giving a newline when nested. Again, RW.
|
|
170
|
+
- Bugs in positive timezones with Time#to_yaml fixed by Tobias Peters!
|
|
171
|
+
|
|
172
|
+
- version: 0.31
|
|
173
|
+
date: 2002-07-27
|
|
174
|
+
changes:
|
|
175
|
+
- Fixed bug in multiline quoted strings.
|
|
176
|
+
- Added YTS cases for odd newline and spaced block scalars.
|
|
177
|
+
|
|
178
|
+
- version: 0.30
|
|
179
|
+
date: 2002-07-26
|
|
180
|
+
changes:
|
|
181
|
+
- Added support for Steve's new YTS streams.
|
|
182
|
+
- Refactored newline handling across all blocks.
|
|
183
|
+
|
|
184
|
+
- version: 0.29
|
|
185
|
+
date: 2002-07-24
|
|
186
|
+
changes:
|
|
187
|
+
- First stab at Unicode support.
|
|
188
|
+
- Basic tests fixed.
|
|
189
|
+
|
|
190
|
+
- version: 0.28
|
|
191
|
+
date: 2002-07-24
|
|
192
|
+
changes:
|
|
193
|
+
- Special comment key and default key supported.
|
|
194
|
+
- Multiline unquoted supported in in-line constructs.
|
|
195
|
+
|
|
196
|
+
- version: 0.27
|
|
197
|
+
date: 2002-07-24
|
|
198
|
+
changes:
|
|
199
|
+
- Handling of literal and folded blocks finally matches the spec for indented blocks.
|
|
200
|
+
- All indentation should be handled correctly.
|
|
201
|
+
- Indented comments properly handled.
|
|
202
|
+
|
|
203
|
+
- version: 0.26
|
|
204
|
+
date: 2002-07-23
|
|
205
|
+
changes:
|
|
206
|
+
- Fixed Timestamps to handle single character usec.
|
|
207
|
+
- Complete spec now in YTS.
|
|
208
|
+
|
|
209
|
+
- version: 0.25
|
|
210
|
+
date: 2002-07-21
|
|
211
|
+
changes:
|
|
212
|
+
- New Object#to_yaml provides a good generic export for most Ruby objects.
|
|
213
|
+
- Fixes to the TrueClass, FalseClass, NilClass export methods.
|
|
214
|
+
- Test harness for the YTS (YamlTestingSuite).
|
|
215
|
+
- Distribution now includes yaml4r.rb directly, use --force to remake.
|
|
216
|
+
|
|
217
|
+
- version: 0.24
|
|
218
|
+
date: 2002-07-17
|
|
219
|
+
changes:
|
|
220
|
+
- Started CHM output for Yod.
|
|
221
|
+
- Better support for multiline scalars, multiline double-quoted strings, and multiline single-quoted strings.
|
|
222
|
+
- Cleaned up the parser code, its indentation and comments.
|
|
223
|
+
|
|
224
|
+
- version: 0.23
|
|
225
|
+
date: 2002-07-16
|
|
226
|
+
changes:
|
|
227
|
+
- Major fixes to the Time emitter and parser. Time zones should work.
|
|
228
|
+
- Fixes to indentation at the start of a document.
|
|
229
|
+
- More Yod work.
|
|
230
|
+
|
|
231
|
+
- version: 0.22
|
|
232
|
+
date: 2002-07-16
|
|
233
|
+
changes:
|
|
234
|
+
- Started Yod documentation.
|
|
235
|
+
- Working to fix indentation problems.
|
|
236
|
+
|
|
237
|
+
- version: 0.21
|
|
238
|
+
date: 2002-07-15
|
|
239
|
+
changes:
|
|
240
|
+
- Private types now available via add_private_type or returns a PrivateType class.
|
|
241
|
+
- URI escaping.
|
|
242
|
+
- All ruby types now registered under the ruby.yaml.org domain as the spec describes.
|
|
243
|
+
- Fixed double-quoted string ending on last character of the document.
|
|
244
|
+
|
|
245
|
+
- version: 0.20
|
|
246
|
+
date: 2002-07-14
|
|
247
|
+
changes:
|
|
248
|
+
- Better error reporting from the parser. Shows the sensitive area and sometimes a bit of advice.
|
|
249
|
+
- Binary data builtin now suported for strings and scalar blocks.
|
|
250
|
+
- Spanning quoted strings should be good.
|
|
251
|
+
- Pause marker supported.
|
|
252
|
+
|
|
253
|
+
- version: 0.19
|
|
254
|
+
date: 2002-07-12
|
|
255
|
+
changes:
|
|
256
|
+
- Parsing of multiple documents via YAML4R::load_document and Parser#parse_documents.
|
|
257
|
+
|
|
258
|
+
- version: 0.18
|
|
259
|
+
date: 2002-07-11
|
|
260
|
+
changes:
|
|
261
|
+
- New YAML4R::add_domain_type, YAML4R::add_ruby_type, YAML4R::add_builtin_type! Beginning of an era!
|
|
262
|
+
- Transfer method prefixing.
|
|
263
|
+
- Better support for commas, colons in unquoted strings.
|
|
264
|
+
- All supported types now added with add_builtin_type.
|
|
265
|
+
- Separators in scalars was throwing the parser off.
|
|
266
|
+
- Seperated unit tests into smaller, more specific functions.
|
|
267
|
+
- README and CHANGELOG now fully parsed by YAML4R.
|
|
268
|
+
- The install.rb now has a --force option to force Racc to remake the grammar.
|
|
269
|
+
|
|
270
|
+
- version: 0.17
|
|
271
|
+
date: 2002-07-10
|
|
272
|
+
changes:
|
|
273
|
+
- Implicit Time elements added (without timezones).
|
|
274
|
+
- Folded and literal blocks alot closer.
|
|
275
|
+
- Spanned strings making progress.
|
|
276
|
+
- Struct fully round-trip.
|
|
277
|
+
|
|
278
|
+
- version: 0.16
|
|
279
|
+
date: 2002-07-09
|
|
280
|
+
changes:
|
|
281
|
+
- Nearing completion of scalar blocks, literal and folded both implemented.
|
|
282
|
+
- Improvements to the Struct class round-trip.
|
|
283
|
+
- Adjunct words are combined to prevent odd errors.
|
|
284
|
+
|
|
285
|
+
- version: 0.15
|
|
286
|
+
date: 2002-07-09
|
|
287
|
+
changes:
|
|
288
|
+
- Added ! explicit implicit operator.
|
|
289
|
+
- Added Struct#to_yaml.
|
|
290
|
+
- Fixes to double-quoted strings.
|
|
291
|
+
- Fixes to Regexp#to_yaml. Added unit tests to reflect.
|
|
292
|
+
|
|
293
|
+
- version: 0.14
|
|
294
|
+
date: 2002-07-08
|
|
295
|
+
changes:
|
|
296
|
+
- Initial public release.
|
|
297
|
+
- README in YAML.
|
|
298
|
+
- Complex keys.
|
|
299
|
+
- Single-quoted, double-quoted scalars.
|
|
300
|
+
- Transfer methods now parsed.
|
|
301
|
+
- Cleaned up the grammar a bit more.
|
|
302
|
+
- Anchors and aliases.
|
|
303
|
+
|
|
@@ -0,0 +1,400 @@
|
|
|
1
|
+
#
|
|
2
|
+
#
|
|
3
|
+
# .. yaml.rb .....
|
|
4
|
+
# . .
|
|
5
|
+
# . .
|
|
6
|
+
# . .
|
|
7
|
+
# ....... v0.60 ..
|
|
8
|
+
#
|
|
9
|
+
#
|
|
10
|
+
#
|
|
11
|
+
# {o}
|
|
12
|
+
# ^
|
|
13
|
+
# {o}
|
|
14
|
+
# ^
|
|
15
|
+
#
|
|
16
|
+
# Load this README!
|
|
17
|
+
#
|
|
18
|
+
# >> YAML::load( File.open( 'README' ) )
|
|
19
|
+
#
|
|
20
|
+
--- %YAML:1.0
|
|
21
|
+
title: YAML.rb
|
|
22
|
+
version: 0.60
|
|
23
|
+
author: [Why the Lucky Stiff, yaml-core@whytheluckystiff.net]
|
|
24
|
+
websites: [http://www.yaml.org, http://yaml4r.sf.net, http://sf.net/projects/yaml4r/]
|
|
25
|
+
installation: >
|
|
26
|
+
YAML.rb depends on Racc, available in the RAA:
|
|
27
|
+
|
|
28
|
+
http://www.ruby-lang.org/en/raa-list.rhtml?name=Racc
|
|
29
|
+
|
|
30
|
+
Once Racc is installed, run the install.rb script in this
|
|
31
|
+
distribution:
|
|
32
|
+
|
|
33
|
+
ruby install.rb
|
|
34
|
+
|
|
35
|
+
To run the included unit tests:
|
|
36
|
+
|
|
37
|
+
ruby tests/basic.rb
|
|
38
|
+
|
|
39
|
+
To run the new YamlTestingSuite:
|
|
40
|
+
|
|
41
|
+
cd yts
|
|
42
|
+
ruby yts.rb
|
|
43
|
+
|
|
44
|
+
about: >
|
|
45
|
+
From the specification:
|
|
46
|
+
|
|
47
|
+
"YAML(tm) (rhymes with 'camel') is a
|
|
48
|
+
straightforward machine parsable data serialization format designed for
|
|
49
|
+
human readability and interaction with scripting languages such as Perl
|
|
50
|
+
and Python. YAML is optimized for data serialization, formatted
|
|
51
|
+
dumping, configuration files, log files, Internet messaging and
|
|
52
|
+
filtering. This specification describes the YAML information model and
|
|
53
|
+
serialization format. Together with the Unicode standard for characters, it
|
|
54
|
+
provides all the information necessary to understand YAML Version 1.0
|
|
55
|
+
and construct computer programs to process it."
|
|
56
|
+
|
|
57
|
+
For Ruby developers, YAML is a natural fit for object serialization and
|
|
58
|
+
general data storage. Really, it's quite fantastic. Spreads right on
|
|
59
|
+
your Rubyware like butter on bread!
|
|
60
|
+
|
|
61
|
+
The possible uses for YAML are innumerable. Configuration files,
|
|
62
|
+
custom internet protocols, documentation, the list goes on and on.
|
|
63
|
+
Also, with YAML readers popping up for other languages (see YAML.pm
|
|
64
|
+
and others), you can pass data easily to colleagues in distant lands,
|
|
65
|
+
swamped in their archaic languages.
|
|
66
|
+
|
|
67
|
+
YAML is a beacon of light, reaching out to them all. ;)
|
|
68
|
+
|
|
69
|
+
If I can-- quickly, of course-- in the Pickaxe book-- my all-time favorite
|
|
70
|
+
coding book-- Dave Thomas and Andy Hunt say:
|
|
71
|
+
|
|
72
|
+
"When we discovered Ruby, we realized that we'd found what we'd been looking
|
|
73
|
+
for. More than any other language with which we have worked, Ruby stays
|
|
74
|
+
out of your way. You can concentrate on solving the problem at hand, instead
|
|
75
|
+
of struggling with compiler and language issues. That's how it can help you
|
|
76
|
+
become a better programmer: by giving you the chance to spend your time
|
|
77
|
+
creating solutions for your users, not for the compiler."
|
|
78
|
+
|
|
79
|
+
HeiL! So true. Ruby's elegance, its readability, its common sense! Such
|
|
80
|
+
it is with YAML. YAML is completely readable, in fact much of its syntax
|
|
81
|
+
parallels Ruby's own data structure syntax!
|
|
82
|
+
|
|
83
|
+
Another one from the Pickaxe:
|
|
84
|
+
|
|
85
|
+
"Ruby is easy to learn. Everyday tasks are simple to code and once you've done
|
|
86
|
+
them, they are easy to maintain and grow. Apparently difficult things often
|
|
87
|
+
turn out not to have been difficult after all. Ruby follows the Principle
|
|
88
|
+
of Least Surprise--things work the way you would expect them to, with very
|
|
89
|
+
few special cases or exceptions. And that really does make a difference
|
|
90
|
+
when you're programming."
|
|
91
|
+
|
|
92
|
+
A quick look at YAML and you can see your data structure immediately. If
|
|
93
|
+
I compare it to SOAP or XML-RPC, the difference is immense. With XML-RPC,
|
|
94
|
+
you can see the data structures, but its terribly verbose. More time is
|
|
95
|
+
spent describing the structure than anything else. Again, the Principle
|
|
96
|
+
of Least Surprise is wholly present in YAML. Thank God!
|
|
97
|
+
|
|
98
|
+
Well, welcome to YAML.rb. Now let's look at the API and see what we're
|
|
99
|
+
dealing with!
|
|
100
|
+
|
|
101
|
+
lets show off:
|
|
102
|
+
- section: Exporting objects to YAML
|
|
103
|
+
explanation: >
|
|
104
|
+
|
|
105
|
+
Ruby encourages objects to have their own exporting methods. Hence, YAML.rb
|
|
106
|
+
adds #to_yaml methods for built-in types. The NilClass, FalseClass, TrueClass, Symbol, Range,
|
|
107
|
+
Numeric, Date, Time, Regexp, String, Array, and Hash all contain the to_yaml method.
|
|
108
|
+
|
|
109
|
+
example: |
|
|
110
|
+
|
|
111
|
+
require 'yaml'
|
|
112
|
+
h = { 'test' => 12, 'another' => 13 }
|
|
113
|
+
puts h.to_yaml
|
|
114
|
+
|
|
115
|
+
- section: Loading a single YAML document
|
|
116
|
+
explanation: >
|
|
117
|
+
|
|
118
|
+
Although you'll often want to store multiple YAML documents in a single
|
|
119
|
+
file, YAML.rb has a mechanism for loading and storing a single document in
|
|
120
|
+
a single file. I wanted to offer a simpler API for those who don't care
|
|
121
|
+
for the multiple document styling and just want to store a single object.
|
|
122
|
+
|
|
123
|
+
example: |
|
|
124
|
+
|
|
125
|
+
require 'yaml'
|
|
126
|
+
obj = YAML::load( File::open( "/tmp/yaml.store.1" ) )
|
|
127
|
+
|
|
128
|
+
- section: Loading an object from a string
|
|
129
|
+
explanation: >
|
|
130
|
+
|
|
131
|
+
Perhaps you get an object from an HTTP post. String objects can be
|
|
132
|
+
loaded through the same YAML::load used with the File object above.
|
|
133
|
+
You can also pass StringIO into YAML::load.
|
|
134
|
+
|
|
135
|
+
example: |
|
|
136
|
+
|
|
137
|
+
require 'yaml'
|
|
138
|
+
obj = YAML::load( <<EOY
|
|
139
|
+
--- %YAML:1.0
|
|
140
|
+
- armless
|
|
141
|
+
- falling
|
|
142
|
+
- birds
|
|
143
|
+
EOY
|
|
144
|
+
)
|
|
145
|
+
p obj
|
|
146
|
+
#=> [ 'armless', 'falling', 'birds' ]
|
|
147
|
+
|
|
148
|
+
- section: Replacing PStore with YAML
|
|
149
|
+
explanation: >
|
|
150
|
+
|
|
151
|
+
PStore is an excellent utility for Ruby developers. Akin to Python's pickle,
|
|
152
|
+
objects can be serialized to a file. In YAML.rb, the PStore API is replicated
|
|
153
|
+
identically, as a drop-in replacement for PStore code.
|
|
154
|
+
|
|
155
|
+
example: |
|
|
156
|
+
|
|
157
|
+
require 'yaml'
|
|
158
|
+
y = YAML::Store.new( "/tmp/yaml.store.1", :Indent => 2, :Separator => '---.pstore' )
|
|
159
|
+
y.transaction do
|
|
160
|
+
y['names'] = ['Crispin', 'Glover']
|
|
161
|
+
y['hello'] = {'hi' => 'hello', 'yes' => 'YES!!' }
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
- section: Exporting multiple documents to YAML
|
|
165
|
+
explanation: >
|
|
166
|
+
|
|
167
|
+
A single YAML file can store several documents, each opened with a YAML separator ('---').
|
|
168
|
+
This can be especially useful for streaming data over a socket or for separating
|
|
169
|
+
log file entries (as see in the spec -- http://yaml.org/spec/).
|
|
170
|
+
|
|
171
|
+
This release writes all documents out upon calling YAML::Stream#emit, but future
|
|
172
|
+
releases will allow document writing to stream individually.
|
|
173
|
+
|
|
174
|
+
example: |
|
|
175
|
+
|
|
176
|
+
y = YAML::Stream.new( :Indent => 2, :UseVersion => true )
|
|
177
|
+
y.add( {'my_regex' => /hello [Jj][Aa][Mm][Ee][Ss]/, 'my_age' => 90 } )
|
|
178
|
+
y.add( {'hi' => 'wow!', 'bye' => 'wow!'} )
|
|
179
|
+
y.add( {['Red Socks','Boston'] => ['One', 'Two', 'Three']} )
|
|
180
|
+
y.add( [true, false, false] )
|
|
181
|
+
puts y.emit
|
|
182
|
+
|
|
183
|
+
- section: Loading multiple documents at once into a YAML::Stream
|
|
184
|
+
explanation: >
|
|
185
|
+
|
|
186
|
+
In using YAML::Stream to write your objects, you may find that
|
|
187
|
+
you want a quick way to load several documents at once back into
|
|
188
|
+
a YAML::Stream, for editing and rewriting.
|
|
189
|
+
|
|
190
|
+
example: |
|
|
191
|
+
|
|
192
|
+
require 'yaml'
|
|
193
|
+
File.open( "/home/why/.personalrc", "rw" ) { |rc|
|
|
194
|
+
# Load the objects from the file
|
|
195
|
+
y = YAML::load_stream( rc )
|
|
196
|
+
# Make edits to the objects
|
|
197
|
+
doc2 = y.documents[2]
|
|
198
|
+
doc2['car'] = '1997 Subaru Outback'
|
|
199
|
+
y.edit( 2, doc2 )
|
|
200
|
+
# Save back out
|
|
201
|
+
rc.rewind
|
|
202
|
+
rc.write( y.emit )
|
|
203
|
+
rc.close
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
- section: Loading multiple documents from a YAML stream
|
|
207
|
+
explanation: |
|
|
208
|
+
|
|
209
|
+
When reading YAML from a socket or a pipe, you should
|
|
210
|
+
consider using the event-based parser, which will parse
|
|
211
|
+
documents one at a time.
|
|
212
|
+
|
|
213
|
+
example: |
|
|
214
|
+
|
|
215
|
+
require 'yaml'
|
|
216
|
+
log = File.open( "/var/log/apache.yaml" )
|
|
217
|
+
yp = YAML::load_documents( log ) { |doc|
|
|
218
|
+
puts "#{doc['at']} #{doc['type']} #{doc['url}"
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
# Note the YAML document embedded in the YAML document!
|
|
222
|
+
cheat sheet: |
|
|
223
|
+
# A YAML reference card
|
|
224
|
+
--- %YAML:1.0
|
|
225
|
+
|
|
226
|
+
Collection indicators:
|
|
227
|
+
'? ' : Key indicator.
|
|
228
|
+
': ' : Key / value separator.
|
|
229
|
+
'- ' : Nested series entry indicator.
|
|
230
|
+
', ' : Separate in-line branch entries.
|
|
231
|
+
'[]' : Surround in-line series branch.
|
|
232
|
+
'{}' : Surround in-line keyed branch.
|
|
233
|
+
|
|
234
|
+
Scalar indicators:
|
|
235
|
+
'''' : Surround in-line unescaped scalar ('' escaped ').
|
|
236
|
+
'"' : Surround in-line escaped scalar (see escape codes below).
|
|
237
|
+
'|' : Block scalar indicator.
|
|
238
|
+
'>' : Folded scalar indicator.
|
|
239
|
+
'-' : Strip chomp modifier ('|-' or '>-').
|
|
240
|
+
'+' : Keep chomp modifier ('|+' or '>+').
|
|
241
|
+
int : Explicit indentation modifier ('|10' or '>2').
|
|
242
|
+
# Modifiers can be combined ('|2-', '>+10').
|
|
243
|
+
|
|
244
|
+
Alias indicators:
|
|
245
|
+
'&' : Anchor property.
|
|
246
|
+
'*' : Alias indicator.
|
|
247
|
+
|
|
248
|
+
Transfer indicators:
|
|
249
|
+
'!' : Transfer method indicator.
|
|
250
|
+
'!!' : Transfer method with private type family.
|
|
251
|
+
'^' : Establish/use global type family prefix.
|
|
252
|
+
'|' : Separate global type family from format.
|
|
253
|
+
|
|
254
|
+
Document indicators:
|
|
255
|
+
'%' : Directive indicator.
|
|
256
|
+
'---' : Document separator.
|
|
257
|
+
'...' : Document terminator.
|
|
258
|
+
|
|
259
|
+
Misc indicators:
|
|
260
|
+
' #' : Throwaway comment indicator.
|
|
261
|
+
'=' : Default value map key.
|
|
262
|
+
'<<' : Insert keys from map key.
|
|
263
|
+
|
|
264
|
+
Core types: ### Almost never given explicitly
|
|
265
|
+
'!map' : [ Hash table, dictionary, mapping ]
|
|
266
|
+
'!seq' : [ List, array, tuple, vector, sequence ]
|
|
267
|
+
'!str' : Unicode string
|
|
268
|
+
|
|
269
|
+
Language Independent Scalar types:
|
|
270
|
+
[ , ~, null ] : Null (no value).
|
|
271
|
+
[ 1,234, 0x4D2, 02333, 20:34 ] : [ Decimal int, Hexadecimal, Octal, Base60 ]
|
|
272
|
+
[ 1,230.15, 12.3015e+02, 20:20.15 ] : [ Fixed float, Exponential, Base60 ]
|
|
273
|
+
[ .inf, -.Inf, .NAN ] : [ Infinity (float), Negative, Not a number ]
|
|
274
|
+
[ +, true, Yes, ON ] : Boolean true
|
|
275
|
+
[ -, false, No, OFF ] : Boolean false
|
|
276
|
+
? !binary >
|
|
277
|
+
R0lG...BADS=
|
|
278
|
+
:
|
|
279
|
+
Base 64 binary value.
|
|
280
|
+
|
|
281
|
+
Escape codes:
|
|
282
|
+
Numeric : { "\xXX": 8-bit, "\uXXXX": 16-bit, "\UXXXXXXXX": 32-bit }
|
|
283
|
+
Protective: { "\\": '\', "\"": '"', "\ ": ' ' }
|
|
284
|
+
C: { "\a": BEL, "\b": BS, "\f": FF, "\n": LF, "\r": CR, "\t": TAB, "\v": VTAB }
|
|
285
|
+
Additional: { "\e": ESC, "\0": NUL, "\_": NBSP, "\N": NEL, "\L": LS, "\P": PS }
|
|
286
|
+
|
|
287
|
+
compliance:
|
|
288
|
+
- feature: YAML Separators
|
|
289
|
+
supported?: (Yes)
|
|
290
|
+
notes: Custom YAML separators are allowed and will be used in exporting multiple documents.
|
|
291
|
+
- feature: YAML directives
|
|
292
|
+
supported?: (Yes)
|
|
293
|
+
notes: >
|
|
294
|
+
Directives are parsed correctly, but are of little use. The TAB directive is completely
|
|
295
|
+
ignored, as tabs are not supported at this time.
|
|
296
|
+
- feature: Transfer methods
|
|
297
|
+
supported?: (Yes)
|
|
298
|
+
- feature: Private types
|
|
299
|
+
supported?: (Yes)
|
|
300
|
+
- feature: URI Escaping
|
|
301
|
+
supported?: (Yes)
|
|
302
|
+
- feature: URI Prefixing
|
|
303
|
+
supported?: (Yes)
|
|
304
|
+
- feature: Throwaway comments
|
|
305
|
+
supported?: (Yes)
|
|
306
|
+
- feature: Anchors
|
|
307
|
+
supported?: (Yes)
|
|
308
|
+
- feature: Aliases
|
|
309
|
+
supported?: (Yes)
|
|
310
|
+
- feature: Sequences
|
|
311
|
+
supported?: (Yes)
|
|
312
|
+
notes: Nested and flow both supported.
|
|
313
|
+
- feature: Mappings
|
|
314
|
+
supported?: (Yes)
|
|
315
|
+
notes: Nested and flow both supported.
|
|
316
|
+
- feature: Key indicators
|
|
317
|
+
supported?: (Yes)
|
|
318
|
+
- feature: Explicit indent
|
|
319
|
+
supported?: (Yes)
|
|
320
|
+
- feature: Chomping
|
|
321
|
+
supported?: (Yes)
|
|
322
|
+
- feature: Literal scalar
|
|
323
|
+
supported?: (Yes)
|
|
324
|
+
- feature: Folded scalar
|
|
325
|
+
supported?: (Yes)
|
|
326
|
+
- feature: Unquoted scalars
|
|
327
|
+
supported?: (Yes)
|
|
328
|
+
notes: No support for spanning unquoted.
|
|
329
|
+
- feature: Single-quoted scalars
|
|
330
|
+
supported?: (Yes)
|
|
331
|
+
- feature: Double-quoted scalars
|
|
332
|
+
supported?: (Yes)
|
|
333
|
+
- feature: Escape characters
|
|
334
|
+
supported?: (Yes)
|
|
335
|
+
notes: Most should be.
|
|
336
|
+
- feature: Strings
|
|
337
|
+
supported?: (Yes)
|
|
338
|
+
- feature: Null
|
|
339
|
+
supported?: (Yes)
|
|
340
|
+
feature: Canonical and english.
|
|
341
|
+
- feature: Boolean
|
|
342
|
+
supported?: (Yes)
|
|
343
|
+
notes: Canonical and english.
|
|
344
|
+
- feature: Integer
|
|
345
|
+
supported?: (Yes)
|
|
346
|
+
notes: Canonical, oct, dec, and hex.
|
|
347
|
+
- feature: Float
|
|
348
|
+
supported?: (Yes)
|
|
349
|
+
notes: Canonical, exp, fix, english
|
|
350
|
+
- feature: Time
|
|
351
|
+
supported?: (Yes)
|
|
352
|
+
notes: Canonical, iso8601, spaced and ymd (as Date).
|
|
353
|
+
- feature: Binary
|
|
354
|
+
supported?: (Yes)
|
|
355
|
+
- feature: Default key
|
|
356
|
+
supported?: (Yes)
|
|
357
|
+
|
|
358
|
+
acknowledgements:
|
|
359
|
+
- who: Brian Ingerson
|
|
360
|
+
why?: |
|
|
361
|
+
Ingy's YAML.pm was INDISPENSABLE in writing this library. In fact,
|
|
362
|
+
most of the emitter code follows the YAML.pm code quite closely.
|
|
363
|
+
I also borrowed from his testing suite. Hopefully in the near
|
|
364
|
+
future, YAML.rb and YAML.pm will use the same testing suite.
|
|
365
|
+
|
|
366
|
+
Brian is also the creator of YAML. I'd say he's the free software
|
|
367
|
+
equivalent of an Olympic long jumper.
|
|
368
|
+
email: ingy@ttul.org
|
|
369
|
+
|
|
370
|
+
- who: Steve Howell
|
|
371
|
+
why?: |
|
|
372
|
+
Comrade on the Yaml-core mailing list. He's working on the
|
|
373
|
+
Python YAML implementation. Very encouraging of this project.
|
|
374
|
+
I plan on stealing his Ruby code to handle circular data structures.
|
|
375
|
+
Steve has also contributed to the YAML Testing Suite.
|
|
376
|
+
email: showell@zipcon.net
|
|
377
|
+
|
|
378
|
+
- who: Clark Evans
|
|
379
|
+
why?: |
|
|
380
|
+
Clark showed immediate excitement upon discovery of YAML.rb.
|
|
381
|
+
And at that point I hadn't really done much yet, but the
|
|
382
|
+
encouragement sure helped alot.
|
|
383
|
+
|
|
384
|
+
- who: Oren Ben-Kiki
|
|
385
|
+
why?: |
|
|
386
|
+
For his work on the spec and the quick reference. All three
|
|
387
|
+
of these guys have built a well-written specification, paying
|
|
388
|
+
great attention to details.
|
|
389
|
+
|
|
390
|
+
- who: Yukihiro Matsumoto
|
|
391
|
+
why?: |
|
|
392
|
+
Creator of the Ruby language. The most innovative man in
|
|
393
|
+
software development bar none!
|
|
394
|
+
|
|
395
|
+
- who: qwilk
|
|
396
|
+
why?: |
|
|
397
|
+
Long-time friend at desktopian.org, developer of Blackbox for
|
|
398
|
+
Windows, Robin Hood web server. Excellent chum, persistent
|
|
399
|
+
BeOS fanatic and leader of a generation of shell folk.
|
|
400
|
+
|