mkrf 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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
+ }