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.
Files changed (186) hide show
  1. data/CHANGELOG +2 -0
  2. data/MIT-LICENSE +7 -0
  3. data/README +54 -0
  4. data/Rakefile +107 -0
  5. data/lib/mkrf.rb +4 -0
  6. data/lib/mkrf/availability.rb +219 -0
  7. data/lib/mkrf/generator.rb +146 -0
  8. data/test/abstract_unit.rb +4 -0
  9. data/test/fixtures/down_a_directory/header_down_a_directory.h +1 -0
  10. data/test/fixtures/stdmkrf.h +1 -0
  11. data/test/sample_files/libtrivial/Rakefile +31 -0
  12. data/test/sample_files/libtrivial/extconf.rb +3 -0
  13. data/test/sample_files/libtrivial/lib/libtrivial.c +5 -0
  14. data/test/sample_files/libtrivial/lib/libtrivial.o +0 -0
  15. data/test/sample_files/libtrivial/libtrivial_so.bundle +0 -0
  16. data/test/sample_files/libtrivial/mkrf.log +1 -0
  17. data/test/sample_files/libxml-ruby-0.3.8/CHANGELOG +74 -0
  18. data/test/sample_files/libxml-ruby-0.3.8/LICENSE +22 -0
  19. data/test/sample_files/libxml-ruby-0.3.8/README +144 -0
  20. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/cbg.c +76 -0
  21. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/extconf.rb +49 -0
  22. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/libxml.c +86 -0
  23. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/libxml.h +82 -0
  24. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/libxml.rb +107 -0
  25. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/mkrf.log +1 -0
  26. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/old_extconf.rb +95 -0
  27. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_attr.c +372 -0
  28. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_attr.h +21 -0
  29. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_attribute.c +224 -0
  30. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_attribute.h +21 -0
  31. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_document.c +1159 -0
  32. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_document.h +27 -0
  33. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_dtd.c +168 -0
  34. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_dtd.h +17 -0
  35. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_input_cbg.c +167 -0
  36. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_input_cbg.h +21 -0
  37. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_node.c +2139 -0
  38. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_node.h +28 -0
  39. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_node_set.c +248 -0
  40. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_node_set.h +26 -0
  41. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_ns.c +153 -0
  42. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_ns.h +21 -0
  43. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_parser.c +1417 -0
  44. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_parser.h +31 -0
  45. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_parser_context.c +715 -0
  46. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_parser_context.h +22 -0
  47. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_sax_parser.c +426 -0
  48. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_sax_parser.h +52 -0
  49. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_schema.c +142 -0
  50. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_schema.h +16 -0
  51. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_tree.c +43 -0
  52. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_tree.h +12 -0
  53. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_xinclude.c +20 -0
  54. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_xinclude.h +13 -0
  55. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_xpath.c +363 -0
  56. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_xpath.h +24 -0
  57. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_xpath_context.c +125 -0
  58. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_xpath_context.h +24 -0
  59. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_xpointer.c +100 -0
  60. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_xpointer.h +27 -0
  61. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_xpointer_context.c +21 -0
  62. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/ruby_xml_xpointer_context.h +18 -0
  63. data/test/sample_files/libxml-ruby-0.3.8/ext/xml/sax_parser_callbacks.inc +202 -0
  64. data/test/sample_files/syck-0.55/CHANGELOG +186 -0
  65. data/test/sample_files/syck-0.55/COPYING +54 -0
  66. data/test/sample_files/syck-0.55/Makefile +582 -0
  67. data/test/sample_files/syck-0.55/Makefile.am +5 -0
  68. data/test/sample_files/syck-0.55/Makefile.in +582 -0
  69. data/test/sample_files/syck-0.55/README +105 -0
  70. data/test/sample_files/syck-0.55/README.BYTECODE +484 -0
  71. data/test/sample_files/syck-0.55/README.EXT +444 -0
  72. data/test/sample_files/syck-0.55/RELEASE +123 -0
  73. data/test/sample_files/syck-0.55/TODO +25 -0
  74. data/test/sample_files/syck-0.55/aclocal.m4 +883 -0
  75. data/test/sample_files/syck-0.55/bootstrap +7 -0
  76. data/test/sample_files/syck-0.55/config.h +79 -0
  77. data/test/sample_files/syck-0.55/config.h.in +78 -0
  78. data/test/sample_files/syck-0.55/config.status +1197 -0
  79. data/test/sample_files/syck-0.55/config/README +14 -0
  80. data/test/sample_files/syck-0.55/config/depcomp +529 -0
  81. data/test/sample_files/syck-0.55/config/install-sh +323 -0
  82. data/test/sample_files/syck-0.55/config/missing +357 -0
  83. data/test/sample_files/syck-0.55/configure +6728 -0
  84. data/test/sample_files/syck-0.55/configure.in +36 -0
  85. data/test/sample_files/syck-0.55/ext/ruby/CHANGELOG +303 -0
  86. data/test/sample_files/syck-0.55/ext/ruby/README +400 -0
  87. data/test/sample_files/syck-0.55/ext/ruby/ext/syck/MANIFEST +1 -0
  88. data/test/sample_files/syck-0.55/ext/ruby/ext/syck/bytecode.c +1170 -0
  89. data/test/sample_files/syck-0.55/ext/ruby/ext/syck/emitter.c +1224 -0
  90. data/test/sample_files/syck-0.55/ext/ruby/ext/syck/extconf.rb +10 -0
  91. data/test/sample_files/syck-0.55/ext/ruby/ext/syck/gram.c +1894 -0
  92. data/test/sample_files/syck-0.55/ext/ruby/ext/syck/gram.h +79 -0
  93. data/test/sample_files/syck-0.55/ext/ruby/ext/syck/handler.c +174 -0
  94. data/test/sample_files/syck-0.55/ext/ruby/ext/syck/implicit.c +2989 -0
  95. data/test/sample_files/syck-0.55/ext/ruby/ext/syck/mkrf.log +1 -0
  96. data/test/sample_files/syck-0.55/ext/ruby/ext/syck/node.c +407 -0
  97. data/test/sample_files/syck-0.55/ext/ruby/ext/syck/rubyext.c +2385 -0
  98. data/test/sample_files/syck-0.55/ext/ruby/ext/syck/syck.c +504 -0
  99. data/test/sample_files/syck-0.55/ext/ruby/ext/syck/syck.h +458 -0
  100. data/test/sample_files/syck-0.55/ext/ruby/ext/syck/token.c +2707 -0
  101. data/test/sample_files/syck-0.55/ext/ruby/ext/syck/yaml2byte.c +250 -0
  102. data/test/sample_files/syck-0.55/ext/ruby/ext/syck/yamlbyte.h +170 -0
  103. data/test/sample_files/syck-0.55/ext/ruby/install.rb +1022 -0
  104. data/test/sample_files/syck-0.55/ext/ruby/lib/okay.rb +161 -0
  105. data/test/sample_files/syck-0.55/ext/ruby/lib/okay/news.rb +69 -0
  106. data/test/sample_files/syck-0.55/ext/ruby/lib/okay/rpc.rb +434 -0
  107. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml.rb +436 -0
  108. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/baseemitter.rb +247 -0
  109. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/basenode.rb +216 -0
  110. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/compat.rb +26 -0
  111. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/constants.rb +45 -0
  112. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/dbm.rb +111 -0
  113. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/emitter.rb +107 -0
  114. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/encoding.rb +33 -0
  115. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/error.rb +34 -0
  116. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/rubytypes.rb +438 -0
  117. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/store.rb +29 -0
  118. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/stream.rb +40 -0
  119. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/stringio.rb +83 -0
  120. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/syck.rb +19 -0
  121. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/tag.rb +86 -0
  122. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/types.rb +188 -0
  123. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/yamlnode.rb +54 -0
  124. data/test/sample_files/syck-0.55/ext/ruby/lib/yaml/ypath.rb +52 -0
  125. data/test/sample_files/syck-0.55/ext/ruby/lib/yod.rb +1168 -0
  126. data/test/sample_files/syck-0.55/ext/ruby/samples/okayNews-modules.rb +27 -0
  127. data/test/sample_files/syck-0.55/ext/ruby/samples/okayNews-sample.rb +336 -0
  128. data/test/sample_files/syck-0.55/ext/ruby/samples/okayNews-validate.rb +341 -0
  129. data/test/sample_files/syck-0.55/ext/ruby/samples/okayRpc-client.rb +51 -0
  130. data/test/sample_files/syck-0.55/ext/ruby/samples/okayRpc-server.rb +85 -0
  131. data/test/sample_files/syck-0.55/ext/ruby/samples/yaml-sortHashKeys.rb +128 -0
  132. data/test/sample_files/syck-0.55/ext/ruby/tests/basic.rb +1653 -0
  133. data/test/sample_files/syck-0.55/ext/ruby/yts/YtsAnchorAlias.yml +51 -0
  134. data/test/sample_files/syck-0.55/ext/ruby/yts/YtsBasicTests.yml +282 -0
  135. data/test/sample_files/syck-0.55/ext/ruby/yts/YtsBlockMapping.yml +78 -0
  136. data/test/sample_files/syck-0.55/ext/ruby/yts/YtsBlockSequence.yml +0 -0
  137. data/test/sample_files/syck-0.55/ext/ruby/yts/YtsDocumentSeparator.yml +102 -0
  138. data/test/sample_files/syck-0.55/ext/ruby/yts/YtsErrorTests.yml +23 -0
  139. data/test/sample_files/syck-0.55/ext/ruby/yts/YtsFlowCollections.yml +73 -0
  140. data/test/sample_files/syck-0.55/ext/ruby/yts/YtsFoldedScalars.yml +215 -0
  141. data/test/sample_files/syck-0.55/ext/ruby/yts/YtsMapInSeq.yml +0 -0
  142. data/test/sample_files/syck-0.55/ext/ruby/yts/YtsNullsAndEmpties.yml +66 -0
  143. data/test/sample_files/syck-0.55/ext/ruby/yts/YtsRubyTests.yml +182 -0
  144. data/test/sample_files/syck-0.55/ext/ruby/yts/YtsSpecificationExamples.yml +2699 -0
  145. data/test/sample_files/syck-0.55/ext/ruby/yts/YtsTypeTransfers.yml +265 -0
  146. data/test/sample_files/syck-0.55/ext/ruby/yts/YtsYpath.yml +221 -0
  147. data/test/sample_files/syck-0.55/ext/ruby/yts/cookbook.rb +159 -0
  148. data/test/sample_files/syck-0.55/ext/ruby/yts/index.yml +10 -0
  149. data/test/sample_files/syck-0.55/ext/ruby/yts/yts.rb +193 -0
  150. data/test/sample_files/syck-0.55/lib/Makefile +497 -0
  151. data/test/sample_files/syck-0.55/lib/Makefile.am +27 -0
  152. data/test/sample_files/syck-0.55/lib/Makefile.in +497 -0
  153. data/test/sample_files/syck-0.55/lib/bytecode.c +1170 -0
  154. data/test/sample_files/syck-0.55/lib/bytecode.re +525 -0
  155. data/test/sample_files/syck-0.55/lib/emitter.c +1224 -0
  156. data/test/sample_files/syck-0.55/lib/gram.c +1894 -0
  157. data/test/sample_files/syck-0.55/lib/gram.h +79 -0
  158. data/test/sample_files/syck-0.55/lib/gram.output +2005 -0
  159. data/test/sample_files/syck-0.55/lib/gram.y +481 -0
  160. data/test/sample_files/syck-0.55/lib/handler.c +174 -0
  161. data/test/sample_files/syck-0.55/lib/implicit.c +2989 -0
  162. data/test/sample_files/syck-0.55/lib/implicit.re +206 -0
  163. data/test/sample_files/syck-0.55/lib/node.c +407 -0
  164. data/test/sample_files/syck-0.55/lib/syck.c +504 -0
  165. data/test/sample_files/syck-0.55/lib/syck.h +458 -0
  166. data/test/sample_files/syck-0.55/lib/syck_st.c +577 -0
  167. data/test/sample_files/syck-0.55/lib/syck_st.h +46 -0
  168. data/test/sample_files/syck-0.55/lib/token.c +2707 -0
  169. data/test/sample_files/syck-0.55/lib/token.re +1139 -0
  170. data/test/sample_files/syck-0.55/lib/yaml2byte.c +250 -0
  171. data/test/sample_files/syck-0.55/lib/yamlbyte.h +170 -0
  172. data/test/sample_files/syck-0.55/stamp-h1 +1 -0
  173. data/test/sample_files/syck-0.55/tests/Basic.c +141 -0
  174. data/test/sample_files/syck-0.55/tests/CuTest.c +294 -0
  175. data/test/sample_files/syck-0.55/tests/CuTest.h +84 -0
  176. data/test/sample_files/syck-0.55/tests/Emit.c +87 -0
  177. data/test/sample_files/syck-0.55/tests/Makefile +480 -0
  178. data/test/sample_files/syck-0.55/tests/Makefile.am +13 -0
  179. data/test/sample_files/syck-0.55/tests/Makefile.in +480 -0
  180. data/test/sample_files/syck-0.55/tests/Parse.c +208 -0
  181. data/test/sample_files/syck-0.55/tests/YTS.c +2310 -0
  182. data/test/sample_files/syck-0.55/tests/YTS.c.erb +326 -0
  183. data/test/sample_files/syck-0.55/tests/YTS.c.rb +44 -0
  184. data/test/test_availability.rb +68 -0
  185. data/test/test_generator.rb +74 -0
  186. metadata +252 -0
@@ -0,0 +1,51 @@
1
+ --- %YAML:1.0
2
+ test: Simple Alias Example
3
+ brief: >
4
+ If you need to refer to the same item of data twice,
5
+ you can give that item an alias. The alias is a plain
6
+ string, starting with an ampersand. The item may then
7
+ be referred to by the alias throughout your document
8
+ by using an asterisk before the name of the alias.
9
+ This is called an anchor.
10
+ yaml: |
11
+ - &showell Steve
12
+ - Clark
13
+ - Brian
14
+ - Oren
15
+ - *showell
16
+ python: |
17
+ [
18
+ [ 'Steve', 'Clark', 'Brian', 'Oren', 'Steve']
19
+ ]
20
+ ruby-setup: |
21
+ showell = 'Steve'
22
+ ruby: |
23
+ [ showell, 'Clark', 'Brian', 'Oren', showell ]
24
+
25
+ ---
26
+ test: Alias of a Mapping
27
+ brief: >
28
+ An alias can be used on any item of data, including
29
+ sequences, mappings, and other complex data types.
30
+ yaml: |
31
+ - &hello
32
+ Meat: pork
33
+ Starch: potato
34
+ - banana
35
+ - *hello
36
+ python: |
37
+ [
38
+ [
39
+ {'Meat': 'pork', 'Starch': 'potato'},
40
+ 'banana',
41
+ {'Meat': 'pork', 'Starch': 'potato'},
42
+ ]
43
+ ]
44
+ ruby-setup: |
45
+ hello = { 'Meat' => 'pork', 'Starch' => 'potato' }
46
+ ruby: |
47
+ [
48
+ hello,
49
+ 'banana',
50
+ hello
51
+ ]
@@ -0,0 +1,282 @@
1
+ --- %YAML:1.0
2
+ test: Simple Sequence
3
+ brief: |
4
+ You can specify a list in YAML by placing each
5
+ member of the list on a new line with an opening
6
+ dash. These lists are called sequences.
7
+ yaml: |
8
+ - apple
9
+ - banana
10
+ - carrot
11
+ perl: |
12
+ ['apple', 'banana', 'carrot']
13
+ python: |
14
+ [
15
+ ['apple', 'banana', 'carrot']
16
+ ]
17
+ ruby: |
18
+ ['apple', 'banana', 'carrot']
19
+
20
+ ---
21
+ test: Nested Sequences
22
+ brief: |
23
+ You can include a sequence within another
24
+ sequence by giving the sequence an empty
25
+ dash, followed by an indented list.
26
+ yaml: |
27
+ -
28
+ - foo
29
+ - bar
30
+ - baz
31
+ perl: |
32
+ [['foo', 'bar', 'baz']]
33
+ python: |
34
+ [
35
+ [['foo', 'bar', 'baz']]
36
+ ]
37
+ ruby: |
38
+ [['foo', 'bar', 'baz']]
39
+
40
+ ---
41
+ test: Mixed Sequences
42
+ brief: |
43
+ Sequences can contain any YAML data,
44
+ including strings and other sequences.
45
+ yaml: |
46
+ - apple
47
+ -
48
+ - foo
49
+ - bar
50
+ - x123
51
+ - banana
52
+ - carrot
53
+ perl: |
54
+ ['apple', ['foo', 'bar', 'x123'], 'banana', 'carrot']
55
+ python: |
56
+ [
57
+ ['apple', ['foo', 'bar', 'x123'], 'banana', 'carrot']
58
+ ]
59
+ ruby: |
60
+ ['apple', ['foo', 'bar', 'x123'], 'banana', 'carrot']
61
+
62
+ ---
63
+ test: Deeply Nested Sequences
64
+ brief: |
65
+ Sequences can be nested even deeper, with each
66
+ level of indentation representing a level of
67
+ depth.
68
+ yaml: |
69
+ -
70
+ -
71
+ - uno
72
+ - dos
73
+ perl: |
74
+ [[['uno', 'dos']]]
75
+ python: |
76
+ [
77
+ [[['uno', 'dos']]]
78
+ ]
79
+ ruby: |
80
+ [[['uno', 'dos']]]
81
+
82
+ ---
83
+ test: Simple Mapping
84
+ brief: |
85
+ You can add a keyed list (also known as a dictionary or
86
+ hash) to your document by placing each member of the
87
+ list on a new line, with a colon seperating the key
88
+ from its value. In YAML, this type of list is called
89
+ a mapping.
90
+ yaml: |
91
+ foo: whatever
92
+ bar: stuff
93
+ perl: |
94
+ { foo => 'whatever', bar => 'stuff' }
95
+ python: |
96
+ [
97
+ {'foo': 'whatever', 'bar': 'stuff'}
98
+ ]
99
+ ruby: |
100
+ { 'foo' => 'whatever', 'bar' => 'stuff' }
101
+
102
+ ---
103
+ test: Sequence in a Mapping
104
+ brief: |
105
+ A value in a mapping can be a sequence.
106
+ yaml: |
107
+ foo: whatever
108
+ bar:
109
+ - uno
110
+ - dos
111
+ perl: |
112
+ { foo => 'whatever', bar => [ 'uno', 'dos' ] }
113
+ python: |
114
+ [
115
+ {'foo': 'whatever', 'bar': ['uno', 'dos']}
116
+ ]
117
+ ruby: |
118
+ { 'foo' => 'whatever', 'bar' => [ 'uno', 'dos' ] }
119
+
120
+ ---
121
+ test: Nested Mappings
122
+ brief: |
123
+ A value in a mapping can be another mapping.
124
+ yaml: |
125
+ foo: whatever
126
+ bar:
127
+ fruit: apple
128
+ name: steve
129
+ sport: baseball
130
+ perl: |
131
+ { foo => 'whatever',
132
+ bar => {
133
+ fruit => 'apple',
134
+ name => 'steve',
135
+ sport => 'baseball'
136
+ }
137
+ }
138
+ python: |
139
+ [
140
+ {'foo': 'whatever',
141
+ 'bar': {
142
+ 'fruit': 'apple',
143
+ 'name': 'steve',
144
+ 'sport': 'baseball'
145
+ }
146
+ }
147
+ ]
148
+ ruby: |
149
+ { 'foo' => 'whatever',
150
+ 'bar' => {
151
+ 'fruit' => 'apple',
152
+ 'name' => 'steve',
153
+ 'sport' => 'baseball'
154
+ }
155
+ }
156
+
157
+ ---
158
+ test: Mixed Mapping
159
+ brief: |
160
+ A mapping can contain any assortment
161
+ of mappings and sequences as values.
162
+ yaml: |
163
+ foo: whatever
164
+ bar:
165
+ -
166
+ fruit: apple
167
+ name: steve
168
+ sport: baseball
169
+ - more
170
+ -
171
+ python: rocks
172
+ perl: papers
173
+ ruby: scissorses
174
+ perl: |
175
+ { foo => 'whatever',
176
+ bar => [
177
+ {
178
+ fruit => 'apple',
179
+ name => 'steve',
180
+ sport => 'baseball'
181
+ },
182
+ 'more',
183
+ {
184
+ python => 'rocks',
185
+ perl => 'papers',
186
+ ruby => 'scissorses'
187
+ }
188
+ ]
189
+ }
190
+ python: |
191
+ [
192
+ {'foo': 'whatever',
193
+ 'bar': [
194
+ {
195
+ 'fruit': 'apple',
196
+ 'name': 'steve',
197
+ 'sport': 'baseball'
198
+ },
199
+ 'more',
200
+ {
201
+ 'python': 'rocks',
202
+ 'perl': 'papers',
203
+ 'ruby': 'scissorses'
204
+ }
205
+ ]
206
+ }
207
+ ]
208
+ ruby: |
209
+ { 'foo' => 'whatever',
210
+ 'bar' => [
211
+ {
212
+ 'fruit' => 'apple',
213
+ 'name' => 'steve',
214
+ 'sport' => 'baseball'
215
+ },
216
+ 'more',
217
+ {
218
+ 'python' => 'rocks',
219
+ 'perl' => 'papers',
220
+ 'ruby' => 'scissorses'
221
+ }
222
+ ]
223
+ }
224
+
225
+ ---
226
+ test: Mapping-in-Sequence Shortcut
227
+ brief: |
228
+ If you are adding a mapping to a sequence, you
229
+ can place the mapping on the same line as the
230
+ dash as a shortcut.
231
+ yaml: |
232
+ - work on YAML.py:
233
+ - work on Store
234
+ perl: |
235
+ [ { 'work on YAML.py' => ['work on Store'] } ]
236
+ python: |
237
+ [
238
+ [ {'work on YAML.py': ['work on Store']} ]
239
+ ]
240
+ ruby: |
241
+ [ { 'work on YAML.py' => ['work on Store'] } ]
242
+
243
+ ---
244
+ test: Sequence-in-Mapping Shortcut
245
+ brief: |
246
+ The dash in a sequence counts as indentation, so
247
+ you can add a sequence inside of a mapping without
248
+ needing spaces as indentation.
249
+ yaml: |
250
+ allow:
251
+ - 'localhost'
252
+ - '%.sourceforge.net'
253
+ - '%.freepan.org'
254
+ perl: |
255
+ { 'allow' => [ 'localhost', '%.sourceforge.net', '%.freepan.org' ] }
256
+ python: |
257
+ [
258
+ { 'allow': [ 'localhost', '%.sourceforge.net', '%.freepan.org' ] }
259
+ ]
260
+ ruby: |
261
+ { 'allow' => [ 'localhost', '%.sourceforge.net', '%.freepan.org' ] }
262
+
263
+ ---
264
+ test: Merge key
265
+ brief: |
266
+ A merge key ('<<') can be used in a mapping to insert other mappings. If
267
+ the value associated with the merge key is a mapping, each of its key/value
268
+ pairs is inserted into the current mapping.
269
+ yaml: |
270
+ mapping:
271
+ name: Joe
272
+ job: Accountant
273
+ <<:
274
+ age: 38
275
+ ruby: |
276
+ { 'mapping' =>
277
+ { 'name' => 'Joe',
278
+ 'job' => 'Accountant',
279
+ 'age' => 38
280
+ }
281
+ }
282
+
@@ -0,0 +1,78 @@
1
+ ---
2
+ test: One Element Mapping
3
+ brief: |
4
+ A mapping with one key/value pair
5
+ yaml: |
6
+ ---
7
+ foo: bar
8
+ perl: |
9
+ {foo => 'bar'}
10
+ ruby: |
11
+ { 'foo' => 'bar' }
12
+
13
+ ---
14
+ test: Multi Element Mapping
15
+ brief: |
16
+ More than one key/value pair
17
+ yaml: |
18
+ ---
19
+ red: baron
20
+ white: walls
21
+ blue: berries
22
+ perl: |
23
+ {
24
+ red => 'baron',
25
+ white => 'walls',
26
+ blue => 'berries',
27
+ }
28
+ ruby: |
29
+ {
30
+ 'red' => 'baron',
31
+ 'white' => 'walls',
32
+ 'blue' => 'berries',
33
+ }
34
+
35
+ ---
36
+ test: Values aligned
37
+ brief: |
38
+ Often times human editors of documents will align the values even
39
+ though YAML emitters generally don't.
40
+ yaml: |
41
+ ---
42
+ red: baron
43
+ white: walls
44
+ blue: berries
45
+ perl: |
46
+ {
47
+ red => 'baron',
48
+ white => 'walls',
49
+ blue => 'berries',
50
+ }
51
+ ruby: |
52
+ {
53
+ 'red' => 'baron',
54
+ 'white' => 'walls',
55
+ 'blue' => 'berries',
56
+ }
57
+
58
+ ---
59
+ test: Colons aligned
60
+ brief: |
61
+ Spaces can come before the ': ' key/value separator.
62
+ yaml: |
63
+ ---
64
+ red : baron
65
+ white : walls
66
+ blue : berries
67
+ perl: |
68
+ {
69
+ red => 'baron',
70
+ white => 'walls',
71
+ blue => 'berries',
72
+ }
73
+ ruby: |
74
+ {
75
+ 'red' => 'baron',
76
+ 'white' => 'walls',
77
+ 'blue' => 'berries',
78
+ }
@@ -0,0 +1,102 @@
1
+ --- %YAML:1.0
2
+ test: Trailing Document Separator
3
+ brief: >
4
+ You can separate YAML documents
5
+ with a string of three dashes.
6
+ yaml: |
7
+ - foo: 1
8
+ bar: 2
9
+ ---
10
+ more: stuff
11
+ python: |
12
+ [
13
+ [ { 'foo': 1, 'bar': 2 } ],
14
+ { 'more': 'stuff' }
15
+ ]
16
+ ruby: |
17
+ [ { 'foo' => 1, 'bar' => 2 } ]
18
+
19
+ ---
20
+ test: Leading Document Separator
21
+ brief: >
22
+ You can explicity give an opening
23
+ document separator to your YAML stream.
24
+ yaml: |
25
+ ---
26
+ - foo: 1
27
+ bar: 2
28
+ ---
29
+ more: stuff
30
+ python: |
31
+ [
32
+ [ {'foo': 1, 'bar': 2}],
33
+ {'more': 'stuff'}
34
+ ]
35
+ ruby: |
36
+ [ { 'foo' => 1, 'bar' => 2 } ]
37
+
38
+ ---
39
+ test: YAML Header
40
+ brief: >
41
+ The opening separator can contain directives
42
+ to the YAML parser, such as the version
43
+ number.
44
+ yaml: |
45
+ --- %YAML:1.0
46
+ foo: 1
47
+ bar: 2
48
+ python: |
49
+ [
50
+ { 'foo': 1, 'bar': 2 }
51
+ ]
52
+ ruby: |
53
+ y = YAML::Stream.new
54
+ y.add( { 'foo' => 1, 'bar' => 2 } )
55
+ documents: 1
56
+
57
+ ---
58
+ test: Red Herring Document Separator
59
+ brief: >
60
+ Separators included in blocks or strings
61
+ are treated as blocks or strings, as the
62
+ document separator should have no indentation
63
+ preceding it.
64
+ yaml: |
65
+ foo: |
66
+ ---
67
+ python: |
68
+ [
69
+ { 'foo': "---\n" }
70
+ ]
71
+ ruby: |
72
+ { 'foo' => "---\n" }
73
+
74
+ ---
75
+ test: Multiple Document Separators in Block
76
+ brief: >
77
+ This technique allows you to embed other YAML
78
+ documents within literal blocks.
79
+ yaml: |
80
+ foo: |
81
+ ---
82
+ foo: bar
83
+ ---
84
+ yo: baz
85
+ bar: |
86
+ fooness
87
+ python: |
88
+ [
89
+ { 'foo': flushLeft("""
90
+ ---
91
+ foo: bar
92
+ ---
93
+ yo: baz
94
+ """),
95
+ 'bar': "fooness\n"
96
+ }
97
+ ]
98
+ ruby: |
99
+ {
100
+ 'foo' => "---\nfoo: bar\n---\nyo: baz\n",
101
+ 'bar' => "fooness\n"
102
+ }