haml 3.0.21 → 3.0.22

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of haml might be problematic. Click here for more details.

Files changed (195) hide show
  1. data/Rakefile +1 -41
  2. data/VERSION +1 -1
  3. data/lib/haml/precompiler.rb +8 -6
  4. data/lib/haml/template/plugin.rb +16 -6
  5. data/lib/sass/less.rb +31 -12
  6. data/lib/sass/script/funcall.rb +2 -1
  7. data/lib/sass/script/operation.rb +10 -5
  8. data/lib/sass/script/parser.rb +9 -0
  9. data/test/haml/engine_test.rb +25 -0
  10. data/test/sass/less_conversion_test.rb +24 -3
  11. data/test/sass/script_conversion_test.rb +60 -0
  12. metadata +243 -426
  13. data/vendor/sass/CONTRIBUTING +0 -3
  14. data/vendor/sass/MIT-LICENSE +0 -20
  15. data/vendor/sass/README.md +0 -201
  16. data/vendor/sass/Rakefile +0 -363
  17. data/vendor/sass/TODO +0 -39
  18. data/vendor/sass/VERSION +0 -1
  19. data/vendor/sass/VERSION_NAME +0 -1
  20. data/vendor/sass/bin/css2sass +0 -13
  21. data/vendor/sass/bin/sass +0 -8
  22. data/vendor/sass/bin/sass-convert +0 -7
  23. data/vendor/sass/doc-src/FAQ.md +0 -35
  24. data/vendor/sass/doc-src/INDENTED_SYNTAX.md +0 -210
  25. data/vendor/sass/doc-src/SASS_CHANGELOG.md +0 -1870
  26. data/vendor/sass/doc-src/SASS_REFERENCE.md +0 -1713
  27. data/vendor/sass/doc-src/SCSS_FOR_SASS_USERS.md +0 -155
  28. data/vendor/sass/ext/extconf.rb +0 -10
  29. data/vendor/sass/extra/update_watch.rb +0 -13
  30. data/vendor/sass/init.rb +0 -18
  31. data/vendor/sass/lib/sass.rb +0 -71
  32. data/vendor/sass/lib/sass/cache_store.rb +0 -208
  33. data/vendor/sass/lib/sass/callbacks.rb +0 -66
  34. data/vendor/sass/lib/sass/css.rb +0 -294
  35. data/vendor/sass/lib/sass/engine.rb +0 -792
  36. data/vendor/sass/lib/sass/environment.rb +0 -143
  37. data/vendor/sass/lib/sass/error.rb +0 -201
  38. data/vendor/sass/lib/sass/exec.rb +0 -619
  39. data/vendor/sass/lib/sass/importers.rb +0 -22
  40. data/vendor/sass/lib/sass/importers/base.rb +0 -138
  41. data/vendor/sass/lib/sass/importers/filesystem.rb +0 -121
  42. data/vendor/sass/lib/sass/less.rb +0 -363
  43. data/vendor/sass/lib/sass/plugin.rb +0 -126
  44. data/vendor/sass/lib/sass/plugin/compiler.rb +0 -346
  45. data/vendor/sass/lib/sass/plugin/configuration.rb +0 -123
  46. data/vendor/sass/lib/sass/plugin/generic.rb +0 -15
  47. data/vendor/sass/lib/sass/plugin/merb.rb +0 -48
  48. data/vendor/sass/lib/sass/plugin/rack.rb +0 -47
  49. data/vendor/sass/lib/sass/plugin/rails.rb +0 -41
  50. data/vendor/sass/lib/sass/plugin/staleness_checker.rb +0 -145
  51. data/vendor/sass/lib/sass/railtie.rb +0 -8
  52. data/vendor/sass/lib/sass/repl.rb +0 -58
  53. data/vendor/sass/lib/sass/root.rb +0 -7
  54. data/vendor/sass/lib/sass/script.rb +0 -63
  55. data/vendor/sass/lib/sass/script/bool.rb +0 -18
  56. data/vendor/sass/lib/sass/script/color.rb +0 -491
  57. data/vendor/sass/lib/sass/script/css_lexer.rb +0 -29
  58. data/vendor/sass/lib/sass/script/css_parser.rb +0 -31
  59. data/vendor/sass/lib/sass/script/funcall.rb +0 -79
  60. data/vendor/sass/lib/sass/script/functions.rb +0 -852
  61. data/vendor/sass/lib/sass/script/interpolation.rb +0 -70
  62. data/vendor/sass/lib/sass/script/lexer.rb +0 -337
  63. data/vendor/sass/lib/sass/script/literal.rb +0 -236
  64. data/vendor/sass/lib/sass/script/node.rb +0 -101
  65. data/vendor/sass/lib/sass/script/number.rb +0 -423
  66. data/vendor/sass/lib/sass/script/operation.rb +0 -92
  67. data/vendor/sass/lib/sass/script/parser.rb +0 -392
  68. data/vendor/sass/lib/sass/script/string.rb +0 -67
  69. data/vendor/sass/lib/sass/script/string_interpolation.rb +0 -93
  70. data/vendor/sass/lib/sass/script/unary_operation.rb +0 -57
  71. data/vendor/sass/lib/sass/script/variable.rb +0 -48
  72. data/vendor/sass/lib/sass/scss.rb +0 -17
  73. data/vendor/sass/lib/sass/scss/css_parser.rb +0 -51
  74. data/vendor/sass/lib/sass/scss/parser.rb +0 -838
  75. data/vendor/sass/lib/sass/scss/rx.rb +0 -126
  76. data/vendor/sass/lib/sass/scss/sass_parser.rb +0 -11
  77. data/vendor/sass/lib/sass/scss/script_lexer.rb +0 -15
  78. data/vendor/sass/lib/sass/scss/script_parser.rb +0 -25
  79. data/vendor/sass/lib/sass/scss/static_parser.rb +0 -40
  80. data/vendor/sass/lib/sass/selector.rb +0 -361
  81. data/vendor/sass/lib/sass/selector/abstract_sequence.rb +0 -62
  82. data/vendor/sass/lib/sass/selector/comma_sequence.rb +0 -82
  83. data/vendor/sass/lib/sass/selector/sequence.rb +0 -236
  84. data/vendor/sass/lib/sass/selector/simple.rb +0 -113
  85. data/vendor/sass/lib/sass/selector/simple_sequence.rb +0 -135
  86. data/vendor/sass/lib/sass/shared.rb +0 -78
  87. data/vendor/sass/lib/sass/tree/comment_node.rb +0 -128
  88. data/vendor/sass/lib/sass/tree/debug_node.rb +0 -36
  89. data/vendor/sass/lib/sass/tree/directive_node.rb +0 -75
  90. data/vendor/sass/lib/sass/tree/extend_node.rb +0 -65
  91. data/vendor/sass/lib/sass/tree/for_node.rb +0 -67
  92. data/vendor/sass/lib/sass/tree/if_node.rb +0 -81
  93. data/vendor/sass/lib/sass/tree/import_node.rb +0 -124
  94. data/vendor/sass/lib/sass/tree/mixin_def_node.rb +0 -60
  95. data/vendor/sass/lib/sass/tree/mixin_node.rb +0 -123
  96. data/vendor/sass/lib/sass/tree/node.rb +0 -490
  97. data/vendor/sass/lib/sass/tree/prop_node.rb +0 -220
  98. data/vendor/sass/lib/sass/tree/root_node.rb +0 -125
  99. data/vendor/sass/lib/sass/tree/rule_node.rb +0 -273
  100. data/vendor/sass/lib/sass/tree/variable_node.rb +0 -39
  101. data/vendor/sass/lib/sass/tree/warn_node.rb +0 -42
  102. data/vendor/sass/lib/sass/tree/while_node.rb +0 -48
  103. data/vendor/sass/lib/sass/util.rb +0 -700
  104. data/vendor/sass/lib/sass/util/subset_map.rb +0 -101
  105. data/vendor/sass/lib/sass/version.rb +0 -109
  106. data/vendor/sass/rails/init.rb +0 -1
  107. data/vendor/sass/sass.gemspec +0 -32
  108. data/vendor/sass/test/sass/cache_test.rb +0 -74
  109. data/vendor/sass/test/sass/callbacks_test.rb +0 -61
  110. data/vendor/sass/test/sass/conversion_test.rb +0 -1210
  111. data/vendor/sass/test/sass/css2sass_test.rb +0 -364
  112. data/vendor/sass/test/sass/data/hsl-rgb.txt +0 -319
  113. data/vendor/sass/test/sass/engine_test.rb +0 -2283
  114. data/vendor/sass/test/sass/extend_test.rb +0 -1348
  115. data/vendor/sass/test/sass/functions_test.rb +0 -565
  116. data/vendor/sass/test/sass/importer_test.rb +0 -104
  117. data/vendor/sass/test/sass/less_conversion_test.rb +0 -632
  118. data/vendor/sass/test/sass/mock_importer.rb +0 -49
  119. data/vendor/sass/test/sass/more_results/more1.css +0 -9
  120. data/vendor/sass/test/sass/more_results/more1_with_line_comments.css +0 -26
  121. data/vendor/sass/test/sass/more_results/more_import.css +0 -29
  122. data/vendor/sass/test/sass/more_templates/_more_partial.sass +0 -2
  123. data/vendor/sass/test/sass/more_templates/more1.sass +0 -23
  124. data/vendor/sass/test/sass/more_templates/more_import.sass +0 -11
  125. data/vendor/sass/test/sass/plugin_test.rb +0 -430
  126. data/vendor/sass/test/sass/results/alt.css +0 -4
  127. data/vendor/sass/test/sass/results/basic.css +0 -9
  128. data/vendor/sass/test/sass/results/compact.css +0 -5
  129. data/vendor/sass/test/sass/results/complex.css +0 -86
  130. data/vendor/sass/test/sass/results/compressed.css +0 -1
  131. data/vendor/sass/test/sass/results/expanded.css +0 -19
  132. data/vendor/sass/test/sass/results/import.css +0 -31
  133. data/vendor/sass/test/sass/results/line_numbers.css +0 -49
  134. data/vendor/sass/test/sass/results/mixins.css +0 -95
  135. data/vendor/sass/test/sass/results/multiline.css +0 -24
  136. data/vendor/sass/test/sass/results/nested.css +0 -22
  137. data/vendor/sass/test/sass/results/options.css +0 -1
  138. data/vendor/sass/test/sass/results/parent_ref.css +0 -13
  139. data/vendor/sass/test/sass/results/script.css +0 -16
  140. data/vendor/sass/test/sass/results/scss_import.css +0 -31
  141. data/vendor/sass/test/sass/results/scss_importee.css +0 -2
  142. data/vendor/sass/test/sass/results/subdir/nested_subdir/nested_subdir.css +0 -1
  143. data/vendor/sass/test/sass/results/subdir/subdir.css +0 -3
  144. data/vendor/sass/test/sass/results/units.css +0 -11
  145. data/vendor/sass/test/sass/results/warn.css +0 -0
  146. data/vendor/sass/test/sass/results/warn_imported.css +0 -0
  147. data/vendor/sass/test/sass/script_conversion_test.rb +0 -254
  148. data/vendor/sass/test/sass/script_test.rb +0 -470
  149. data/vendor/sass/test/sass/scss/css_test.rb +0 -897
  150. data/vendor/sass/test/sass/scss/rx_test.rb +0 -156
  151. data/vendor/sass/test/sass/scss/scss_test.rb +0 -1088
  152. data/vendor/sass/test/sass/scss/test_helper.rb +0 -37
  153. data/vendor/sass/test/sass/templates/_partial.sass +0 -2
  154. data/vendor/sass/test/sass/templates/alt.sass +0 -16
  155. data/vendor/sass/test/sass/templates/basic.sass +0 -23
  156. data/vendor/sass/test/sass/templates/bork1.sass +0 -2
  157. data/vendor/sass/test/sass/templates/bork2.sass +0 -2
  158. data/vendor/sass/test/sass/templates/bork3.sass +0 -2
  159. data/vendor/sass/test/sass/templates/bork4.sass +0 -2
  160. data/vendor/sass/test/sass/templates/compact.sass +0 -17
  161. data/vendor/sass/test/sass/templates/complex.sass +0 -305
  162. data/vendor/sass/test/sass/templates/compressed.sass +0 -15
  163. data/vendor/sass/test/sass/templates/expanded.sass +0 -17
  164. data/vendor/sass/test/sass/templates/import.sass +0 -12
  165. data/vendor/sass/test/sass/templates/importee.less +0 -2
  166. data/vendor/sass/test/sass/templates/importee.sass +0 -19
  167. data/vendor/sass/test/sass/templates/line_numbers.sass +0 -13
  168. data/vendor/sass/test/sass/templates/mixin_bork.sass +0 -5
  169. data/vendor/sass/test/sass/templates/mixins.sass +0 -76
  170. data/vendor/sass/test/sass/templates/multiline.sass +0 -20
  171. data/vendor/sass/test/sass/templates/nested.sass +0 -25
  172. data/vendor/sass/test/sass/templates/nested_bork1.sass +0 -2
  173. data/vendor/sass/test/sass/templates/nested_bork2.sass +0 -2
  174. data/vendor/sass/test/sass/templates/nested_bork3.sass +0 -2
  175. data/vendor/sass/test/sass/templates/nested_bork4.sass +0 -2
  176. data/vendor/sass/test/sass/templates/nested_mixin_bork.sass +0 -6
  177. data/vendor/sass/test/sass/templates/options.sass +0 -2
  178. data/vendor/sass/test/sass/templates/parent_ref.sass +0 -25
  179. data/vendor/sass/test/sass/templates/script.sass +0 -101
  180. data/vendor/sass/test/sass/templates/scss_import.scss +0 -11
  181. data/vendor/sass/test/sass/templates/scss_importee.scss +0 -1
  182. data/vendor/sass/test/sass/templates/subdir/nested_subdir/_nested_partial.sass +0 -2
  183. data/vendor/sass/test/sass/templates/subdir/nested_subdir/nested_subdir.sass +0 -3
  184. data/vendor/sass/test/sass/templates/subdir/subdir.sass +0 -6
  185. data/vendor/sass/test/sass/templates/units.sass +0 -11
  186. data/vendor/sass/test/sass/templates/warn.sass +0 -3
  187. data/vendor/sass/test/sass/templates/warn_imported.sass +0 -4
  188. data/vendor/sass/test/sass/test_helper.rb +0 -8
  189. data/vendor/sass/test/sass/util/subset_map_test.rb +0 -91
  190. data/vendor/sass/test/sass/util_test.rb +0 -275
  191. data/vendor/sass/test/test_helper.rb +0 -64
  192. data/vendor/sass/yard/callbacks.rb +0 -29
  193. data/vendor/sass/yard/default/fulldoc/html/css/common.sass +0 -26
  194. data/vendor/sass/yard/default/layout/html/footer.erb +0 -12
  195. data/vendor/sass/yard/inherited_hash.rb +0 -41
@@ -1,12 +0,0 @@
1
- $preconst: hello
2
-
3
- =premixin
4
- pre-mixin: here
5
-
6
- @import importee.sass, scss_importee, "basic.sass", basic.css, ../results/complex.css
7
- @import partial.sass
8
-
9
- nonimported
10
- :myconst $preconst
11
- :otherconst $postconst
12
- +postmixin
@@ -1,2 +0,0 @@
1
- .foo {a: b}
2
- .bar () {c: d}
@@ -1,19 +0,0 @@
1
- $postconst: goodbye
2
-
3
- =postmixin
4
- post-mixin: here
5
-
6
- imported
7
- :otherconst $preconst
8
- :myconst $postconst
9
- +premixin
10
-
11
- @import basic
12
-
13
- midrule
14
- :inthe middle
15
-
16
- =crazymixin
17
- foo: bar
18
- baz
19
- blat: bang
@@ -1,13 +0,0 @@
1
- foo
2
- bar: baz
3
-
4
- =premixin
5
- squggle
6
- blat: bang
7
-
8
- $preconst: 12
9
-
10
- @import importee
11
-
12
- umph
13
- +crazymixin
@@ -1,5 +0,0 @@
1
- =outer-mixin
2
- +error-mixin
3
-
4
- foo
5
- +outer-mixin
@@ -1,76 +0,0 @@
1
- $yellow: #fc0
2
-
3
- =bordered
4
- :border
5
- :top
6
- :width 2px
7
- :color $yellow
8
- :left
9
- :width 1px
10
- :color #000
11
- -moz-border-radius: 10px
12
-
13
- =header-font
14
- :color #f00
15
- :font
16
- :size 20px
17
-
18
- =compound
19
- +header-font
20
- +bordered
21
-
22
- =complex
23
- +header-font
24
- text:
25
- decoration: none
26
- &:after
27
- content: "."
28
- display: block
29
- height: 0
30
- clear: both
31
- visibility: hidden
32
- * html &
33
- height: 1px
34
- +header-font
35
- =deep
36
- a:hover
37
- :text-decoration underline
38
- +compound
39
-
40
-
41
- #main
42
- :width 15em
43
- :color #0000ff
44
- p
45
- +bordered
46
- :border
47
- :style dotted
48
- :width 2px
49
- .cool
50
- :width 100px
51
-
52
- #left
53
- +bordered
54
- :font
55
- :size 2em
56
- :weight bold
57
- :float left
58
-
59
- #right
60
- +bordered
61
- +header-font
62
- :float right
63
-
64
- .bordered
65
- +bordered
66
-
67
- .complex
68
- +complex
69
-
70
- .more-complex
71
- +complex
72
- +deep
73
- display: inline
74
- -webkit-nonsense:
75
- top-right: 1px
76
- bottom-left: 1px
@@ -1,20 +0,0 @@
1
- #main,
2
- #header
3
- height: 50px
4
- div
5
- width: 100px
6
- a,
7
- em
8
- span
9
- color: pink
10
-
11
- #one,
12
- #two,
13
- #three
14
- div.nested,
15
- span.nested,
16
- p.nested
17
- :font
18
- :weight bold
19
- :border-color red
20
- :display block
@@ -1,25 +0,0 @@
1
- #main
2
- :width 15em
3
- :color #0000ff
4
- p
5
- :border
6
- :style dotted
7
- /* Nested comment
8
- More nested stuff
9
- :width 2px
10
- .cool
11
- :width 100px
12
-
13
- #left
14
- :font
15
- :size 2em
16
- :weight bold
17
- :float left
18
-
19
- #right
20
- .header
21
- :border-style solid
22
- .body
23
- :border-style dotted
24
- .footer
25
- :border-style dashed
@@ -1,2 +0,0 @@
1
-
2
- @import bork1
@@ -1,2 +0,0 @@
1
-
2
- @import bork2
@@ -1,2 +0,0 @@
1
-
2
- @import bork3
@@ -1,2 +0,0 @@
1
-
2
- @import bork4
@@ -1,6 +0,0 @@
1
-
2
-
3
- =error-mixin
4
- width: 1px * 1em
5
-
6
- @import mixin_bork
@@ -1,2 +0,0 @@
1
- foo
2
- style: option("style")
@@ -1,25 +0,0 @@
1
- a
2
- :color #000
3
- &:hover
4
- :color #f00
5
-
6
- p, div
7
- :width 100em
8
- & foo
9
- :width 10em
10
- &:hover, bar
11
- :height 20em
12
-
13
- #cool
14
- :border
15
- :style solid
16
- :width 2em
17
- .ie7 &, .ie6 &
18
- :content string("Totally not cool.")
19
- .firefox &
20
- :content string("Quite cool.")
21
-
22
- .wow, .snazzy
23
- :font-family fantasy
24
- &:hover, &:visited
25
- :font-weight bold
@@ -1,101 +0,0 @@
1
- $width: 10em + 20
2
- $color: #00ff98
3
- $main_text: #ffa
4
- $num: 10
5
- $dec: 10.2
6
- $dec_0: 99.0
7
- $neg: -10
8
- $esc: 10\+12
9
- $str: Hello\!
10
- $qstr: "Quo\"ted\"!"
11
- $hstr: Hyph-en\!
12
- $concat: #{5 + 4} hi there
13
- $percent: 11%
14
- $complex: 1px/1em
15
-
16
- #main
17
- :content $str
18
- :qstr $qstr
19
- :hstr $hstr
20
- :width $width
21
- :background-color #000
22
- :color $main_text
23
- :short-color #123
24
- :named-color olive
25
- :con "foo" bar ($concat "boom")
26
- :con2 "noquo" quo
27
- #sidebar
28
- :background-color $color
29
- :num
30
- :normal $num
31
- :dec $dec
32
- :dec0 $dec_0
33
- :neg $neg
34
- :esc $esc
35
- :many 1 + 2 + 3
36
- :order 1 + 2 * 3
37
- :complex ((1 + 2) + 15)+#3a8b9f + (hi+(1 +1+ 2)* 4)
38
-
39
- #plus
40
- :num
41
- :num 5+2
42
- :num-un 10em + 15em
43
- :num-un2 10 + 13em
44
- :num-neg 10 + -.13
45
- :str 100 * 1px
46
- :col 13 + #aaa
47
- :perc $percent + 20%
48
- :str
49
- :str "hi" + "\ there"
50
- :str2 "hi" + " there"
51
- :col "14em solid " + #123
52
- :num "times: " + 13
53
- :col
54
- :num #f02 + 123.5
55
- :col #12A + #405162
56
-
57
- #minus
58
- :num
59
- :num 912 - 12
60
- :col
61
- :num #fffffa - 5.2
62
- :col #abcdef - #fedcba
63
- :unary
64
- :num -1
65
- :const -$neg
66
- :paren -(5 + 6)
67
- :two --12
68
- :many --------12
69
- :crazy -----(5 + ---$neg)
70
-
71
- #times
72
- :num
73
- :num 2 * 3.5
74
- :col 2 * #3a4b5c
75
- :col
76
- :num #12468a * 0.5
77
- :col #121212 * #020304
78
-
79
- #div
80
- :num
81
- :num (10 / 3.0)
82
- :num2 (10 / 3)
83
- :col
84
- :num #12468a / 2
85
- :col #abcdef / #0f0f0f
86
- :comp $complex * 1em
87
-
88
- #mod
89
- :num
90
- :num 17 % 3
91
- :col
92
- :col #5f6e7d % #10200a
93
- :num #aaabac % 3
94
-
95
- #const
96
- :escaped
97
- :quote \$foo \!bar
98
- :default $str !important
99
-
100
- #regression
101
- :a (3 + 2) - 1
@@ -1,11 +0,0 @@
1
- $preconst: hello;
2
-
3
- @mixin premixin {pre-mixin: here}
4
-
5
- @import "importee.sass", "scss_importee", "basic.sass", "basic.css", "../results/complex.css";
6
- @import "partial.sass";
7
-
8
- nonimported {
9
- myconst: $preconst;
10
- otherconst: $postconst;
11
- @include postmixin; }
@@ -1 +0,0 @@
1
- scss {imported: yes}
@@ -1,6 +0,0 @@
1
- @import nested_subdir/nested_partial.sass
2
-
3
- #subdir
4
- :font
5
- :size 20px
6
- :weight bold
@@ -1,11 +0,0 @@
1
- b
2
- :foo 0.5 * 10px
3
- :bar 10zzz * 12px / 5zzz
4
- :baz percentage(12.0px / 18px)
5
- :many-units 10.0zzz / 3yyy * 12px / 5zzz * 3yyy / 3px * 4em
6
- :mm 5mm + 1cm
7
- :pc 1pc + 12pt
8
- :pt 72pt - 2in
9
- :inches 1in + 2.54cm
10
- :more-inches 1in + ((72pt * 2in) + (36pt * 1in)) / 2.54cm
11
- :mixed (1 + (1em * 6px / 3in)) * 4in / 2em
@@ -1,3 +0,0 @@
1
- @warn "In the main file"
2
- @import warn_imported.sass
3
- +emits-a-warning
@@ -1,4 +0,0 @@
1
- @warn "Imported"
2
-
3
- =emits-a-warning
4
- @warn "In an imported mixin"
@@ -1,8 +0,0 @@
1
- test_dir = File.dirname(__FILE__)
2
- $:.unshift test_dir unless $:.include?(test_dir)
3
-
4
- class Test::Unit::TestCase
5
- def absolutize(file)
6
- "#{File.dirname(__FILE__)}/#{file}"
7
- end
8
- end
@@ -1,91 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.dirname(__FILE__) + '/../../test_helper'
3
-
4
- class SubsetMapTest < Test::Unit::TestCase
5
- def setup
6
- @ssm = Sass::Util::SubsetMap.new
7
- @ssm[Set[1, 2]] = "Foo"
8
- @ssm[Set["fizz", "fazz"]] = "Bar"
9
-
10
- @ssm[Set[:foo, :bar]] = "Baz"
11
- @ssm[Set[:foo, :bar, :baz]] = "Bang"
12
-
13
- @ssm[Set[:bip, :bop, :blip]] = "Qux"
14
- @ssm[Set[:bip, :bop]] = "Thram"
15
- end
16
-
17
- def test_equal_keys
18
- assert_equal [["Foo", Set[1, 2]]], @ssm.get(Set[1, 2])
19
- assert_equal [["Bar", Set["fizz", "fazz"]]], @ssm.get(Set["fizz", "fazz"])
20
- end
21
-
22
- def test_subset_keys
23
- assert_equal [["Foo", Set[1, 2]]], @ssm.get(Set[1, 2, "fuzz"])
24
- assert_equal [["Bar", Set["fizz", "fazz"]]], @ssm.get(Set["fizz", "fazz", 3])
25
- end
26
-
27
- def test_superset_keys
28
- assert_equal [], @ssm.get(Set[1])
29
- assert_equal [], @ssm.get(Set[2])
30
- assert_equal [], @ssm.get(Set["fizz"])
31
- assert_equal [], @ssm.get(Set["fazz"])
32
- end
33
-
34
- def test_disjoint_keys
35
- assert_equal [], @ssm.get(Set[3, 4])
36
- assert_equal [], @ssm.get(Set["fuzz", "frizz"])
37
- assert_equal [], @ssm.get(Set["gran", 15])
38
- end
39
-
40
- def test_semi_disjoint_keys
41
- assert_equal [], @ssm.get(Set[2, 3])
42
- assert_equal [], @ssm.get(Set["fizz", "fuzz"])
43
- assert_equal [], @ssm.get(Set[1, "fazz"])
44
- end
45
-
46
- def test_empty_key_set
47
- assert_raise(ArgumentError) {@ssm[Set[]] = "Fail"}
48
- end
49
-
50
- def test_empty_key_get
51
- assert_equal [], @ssm.get(Set[])
52
- end
53
-
54
- def test_multiple_subsets
55
- assert_equal [["Foo", Set[1, 2]], ["Bar", Set["fizz", "fazz"]]], @ssm.get(Set[1, 2, "fizz", "fazz"])
56
- assert_equal [["Foo", Set[1, 2]], ["Bar", Set["fizz", "fazz"]]], @ssm.get(Set[1, 2, 3, "fizz", "fazz", "fuzz"])
57
-
58
- assert_equal [["Baz", Set[:foo, :bar]]], @ssm.get(Set[:foo, :bar])
59
- assert_equal [["Baz", Set[:foo, :bar]], ["Bang", Set[:foo, :bar, :baz]]], @ssm.get(Set[:foo, :bar, :baz])
60
- end
61
-
62
- def test_bracket_bracket
63
- assert_equal ["Foo"], @ssm[Set[1, 2, "fuzz"]]
64
- assert_equal ["Baz", "Bang"], @ssm[Set[:foo, :bar, :baz]]
65
- end
66
-
67
- def test_order_preserved
68
- @ssm[Set[10, 11, 12]] = 1
69
- @ssm[Set[10, 11]] = 2
70
- @ssm[Set[11]] = 3
71
- @ssm[Set[11, 12]] = 4
72
- @ssm[Set[9, 10, 11, 12, 13]] = 5
73
- @ssm[Set[10, 13]] = 6
74
-
75
- assert_equal(
76
- [[1, Set[10, 11, 12]], [2, Set[10, 11]], [3, Set[11]], [4, Set[11, 12]],
77
- [5, Set[9, 10, 11, 12, 13]], [6, Set[10, 13]]],
78
- @ssm.get(Set[9, 10, 11, 12, 13]))
79
- end
80
-
81
- def test_multiple_equal_values
82
- @ssm[Set[11, 12]] = 1
83
- @ssm[Set[12, 13]] = 2
84
- @ssm[Set[13, 14]] = 1
85
- @ssm[Set[14, 15]] = 1
86
-
87
- assert_equal(
88
- [[1, Set[11, 12]], [2, Set[12, 13]], [1, Set[13, 14]], [1, Set[14, 15]]],
89
- @ssm.get(Set[11, 12, 13, 14, 15]))
90
- end
91
- end