spree 0.8.0 → 0.8.1

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

Potentially problematic release.


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

Files changed (181) hide show
  1. data/CHANGELOG +4 -0
  2. data/config/environment.rb +3 -3
  3. data/lib/spree.rb +1 -1
  4. data/public/stylesheets/compiled/screen.css +59 -267
  5. metadata +4 -207
  6. data/vendor/gems/haml-2.1.0/FAQ +0 -138
  7. data/vendor/gems/haml-2.1.0/MIT-LICENSE +0 -20
  8. data/vendor/gems/haml-2.1.0/README.rdoc +0 -332
  9. data/vendor/gems/haml-2.1.0/REVISION +0 -1
  10. data/vendor/gems/haml-2.1.0/Rakefile +0 -185
  11. data/vendor/gems/haml-2.1.0/VERSION +0 -1
  12. data/vendor/gems/haml-2.1.0/bin/css2sass +0 -7
  13. data/vendor/gems/haml-2.1.0/bin/haml +0 -9
  14. data/vendor/gems/haml-2.1.0/bin/html2haml +0 -7
  15. data/vendor/gems/haml-2.1.0/bin/sass +0 -8
  16. data/vendor/gems/haml-2.1.0/extra/haml-mode.el +0 -434
  17. data/vendor/gems/haml-2.1.0/extra/sass-mode.el +0 -98
  18. data/vendor/gems/haml-2.1.0/init.rb +0 -8
  19. data/vendor/gems/haml-2.1.0/lib/haml.rb +0 -1042
  20. data/vendor/gems/haml-2.1.0/lib/haml/buffer.rb +0 -255
  21. data/vendor/gems/haml-2.1.0/lib/haml/engine.rb +0 -268
  22. data/vendor/gems/haml-2.1.0/lib/haml/error.rb +0 -22
  23. data/vendor/gems/haml-2.1.0/lib/haml/exec.rb +0 -395
  24. data/vendor/gems/haml-2.1.0/lib/haml/filters.rb +0 -276
  25. data/vendor/gems/haml-2.1.0/lib/haml/helpers.rb +0 -468
  26. data/vendor/gems/haml-2.1.0/lib/haml/helpers/action_view_extensions.rb +0 -45
  27. data/vendor/gems/haml-2.1.0/lib/haml/helpers/action_view_mods.rb +0 -181
  28. data/vendor/gems/haml-2.1.0/lib/haml/html.rb +0 -218
  29. data/vendor/gems/haml-2.1.0/lib/haml/precompiler.rb +0 -889
  30. data/vendor/gems/haml-2.1.0/lib/haml/shared.rb +0 -45
  31. data/vendor/gems/haml-2.1.0/lib/haml/template.rb +0 -51
  32. data/vendor/gems/haml-2.1.0/lib/haml/template/patch.rb +0 -58
  33. data/vendor/gems/haml-2.1.0/lib/haml/template/plugin.rb +0 -72
  34. data/vendor/gems/haml-2.1.0/lib/haml/util.rb +0 -77
  35. data/vendor/gems/haml-2.1.0/lib/haml/version.rb +0 -47
  36. data/vendor/gems/haml-2.1.0/lib/sass.rb +0 -1062
  37. data/vendor/gems/haml-2.1.0/lib/sass/css.rb +0 -388
  38. data/vendor/gems/haml-2.1.0/lib/sass/engine.rb +0 -499
  39. data/vendor/gems/haml-2.1.0/lib/sass/environment.rb +0 -33
  40. data/vendor/gems/haml-2.1.0/lib/sass/error.rb +0 -35
  41. data/vendor/gems/haml-2.1.0/lib/sass/plugin.rb +0 -203
  42. data/vendor/gems/haml-2.1.0/lib/sass/plugin/merb.rb +0 -56
  43. data/vendor/gems/haml-2.1.0/lib/sass/plugin/rails.rb +0 -24
  44. data/vendor/gems/haml-2.1.0/lib/sass/repl.rb +0 -51
  45. data/vendor/gems/haml-2.1.0/lib/sass/script.rb +0 -38
  46. data/vendor/gems/haml-2.1.0/lib/sass/script/bool.rb +0 -13
  47. data/vendor/gems/haml-2.1.0/lib/sass/script/color.rb +0 -97
  48. data/vendor/gems/haml-2.1.0/lib/sass/script/funcall.rb +0 -28
  49. data/vendor/gems/haml-2.1.0/lib/sass/script/functions.rb +0 -122
  50. data/vendor/gems/haml-2.1.0/lib/sass/script/lexer.rb +0 -152
  51. data/vendor/gems/haml-2.1.0/lib/sass/script/literal.rb +0 -60
  52. data/vendor/gems/haml-2.1.0/lib/sass/script/number.rb +0 -231
  53. data/vendor/gems/haml-2.1.0/lib/sass/script/operation.rb +0 -30
  54. data/vendor/gems/haml-2.1.0/lib/sass/script/parser.rb +0 -142
  55. data/vendor/gems/haml-2.1.0/lib/sass/script/string.rb +0 -42
  56. data/vendor/gems/haml-2.1.0/lib/sass/script/unary_operation.rb +0 -21
  57. data/vendor/gems/haml-2.1.0/lib/sass/script/variable.rb +0 -20
  58. data/vendor/gems/haml-2.1.0/lib/sass/tree/attr_node.rb +0 -64
  59. data/vendor/gems/haml-2.1.0/lib/sass/tree/comment_node.rb +0 -34
  60. data/vendor/gems/haml-2.1.0/lib/sass/tree/debug_node.rb +0 -22
  61. data/vendor/gems/haml-2.1.0/lib/sass/tree/directive_node.rb +0 -50
  62. data/vendor/gems/haml-2.1.0/lib/sass/tree/file_node.rb +0 -27
  63. data/vendor/gems/haml-2.1.0/lib/sass/tree/for_node.rb +0 -29
  64. data/vendor/gems/haml-2.1.0/lib/sass/tree/if_node.rb +0 -27
  65. data/vendor/gems/haml-2.1.0/lib/sass/tree/mixin_def_node.rb +0 -18
  66. data/vendor/gems/haml-2.1.0/lib/sass/tree/mixin_node.rb +0 -34
  67. data/vendor/gems/haml-2.1.0/lib/sass/tree/node.rb +0 -99
  68. data/vendor/gems/haml-2.1.0/lib/sass/tree/rule_node.rb +0 -120
  69. data/vendor/gems/haml-2.1.0/lib/sass/tree/variable_node.rb +0 -24
  70. data/vendor/gems/haml-2.1.0/lib/sass/tree/while_node.rb +0 -20
  71. data/vendor/gems/haml-2.1.0/rails/init.rb +0 -1
  72. data/vendor/gems/haml-2.1.0/test/benchmark.rb +0 -99
  73. data/vendor/gems/haml-2.1.0/test/haml/engine_test.rb +0 -734
  74. data/vendor/gems/haml-2.1.0/test/haml/helper_test.rb +0 -224
  75. data/vendor/gems/haml-2.1.0/test/haml/html2haml_test.rb +0 -92
  76. data/vendor/gems/haml-2.1.0/test/haml/markaby/standard.mab +0 -52
  77. data/vendor/gems/haml-2.1.0/test/haml/mocks/article.rb +0 -6
  78. data/vendor/gems/haml-2.1.0/test/haml/results/content_for_layout.xhtml +0 -15
  79. data/vendor/gems/haml-2.1.0/test/haml/results/eval_suppressed.xhtml +0 -9
  80. data/vendor/gems/haml-2.1.0/test/haml/results/filters.xhtml +0 -62
  81. data/vendor/gems/haml-2.1.0/test/haml/results/helpers.xhtml +0 -93
  82. data/vendor/gems/haml-2.1.0/test/haml/results/helpful.xhtml +0 -10
  83. data/vendor/gems/haml-2.1.0/test/haml/results/just_stuff.xhtml +0 -68
  84. data/vendor/gems/haml-2.1.0/test/haml/results/list.xhtml +0 -12
  85. data/vendor/gems/haml-2.1.0/test/haml/results/nuke_inner_whitespace.xhtml +0 -40
  86. data/vendor/gems/haml-2.1.0/test/haml/results/nuke_outer_whitespace.xhtml +0 -148
  87. data/vendor/gems/haml-2.1.0/test/haml/results/original_engine.xhtml +0 -20
  88. data/vendor/gems/haml-2.1.0/test/haml/results/partial_layout.xhtml +0 -5
  89. data/vendor/gems/haml-2.1.0/test/haml/results/partials.xhtml +0 -21
  90. data/vendor/gems/haml-2.1.0/test/haml/results/render_layout.xhtml +0 -3
  91. data/vendor/gems/haml-2.1.0/test/haml/results/silent_script.xhtml +0 -74
  92. data/vendor/gems/haml-2.1.0/test/haml/results/standard.xhtml +0 -42
  93. data/vendor/gems/haml-2.1.0/test/haml/results/tag_parsing.xhtml +0 -23
  94. data/vendor/gems/haml-2.1.0/test/haml/results/very_basic.xhtml +0 -5
  95. data/vendor/gems/haml-2.1.0/test/haml/results/whitespace_handling.xhtml +0 -89
  96. data/vendor/gems/haml-2.1.0/test/haml/rhtml/_av_partial_1.rhtml +0 -12
  97. data/vendor/gems/haml-2.1.0/test/haml/rhtml/_av_partial_2.rhtml +0 -8
  98. data/vendor/gems/haml-2.1.0/test/haml/rhtml/action_view.rhtml +0 -62
  99. data/vendor/gems/haml-2.1.0/test/haml/rhtml/standard.rhtml +0 -54
  100. data/vendor/gems/haml-2.1.0/test/haml/template_test.rb +0 -204
  101. data/vendor/gems/haml-2.1.0/test/haml/templates/_av_partial_1.haml +0 -9
  102. data/vendor/gems/haml-2.1.0/test/haml/templates/_av_partial_1_ugly.haml +0 -9
  103. data/vendor/gems/haml-2.1.0/test/haml/templates/_av_partial_2.haml +0 -5
  104. data/vendor/gems/haml-2.1.0/test/haml/templates/_av_partial_2_ugly.haml +0 -5
  105. data/vendor/gems/haml-2.1.0/test/haml/templates/_layout.erb +0 -3
  106. data/vendor/gems/haml-2.1.0/test/haml/templates/_layout_for_partial.haml +0 -3
  107. data/vendor/gems/haml-2.1.0/test/haml/templates/_partial.haml +0 -8
  108. data/vendor/gems/haml-2.1.0/test/haml/templates/_text_area.haml +0 -3
  109. data/vendor/gems/haml-2.1.0/test/haml/templates/action_view.haml +0 -47
  110. data/vendor/gems/haml-2.1.0/test/haml/templates/action_view_ugly.haml +0 -47
  111. data/vendor/gems/haml-2.1.0/test/haml/templates/breakage.haml +0 -8
  112. data/vendor/gems/haml-2.1.0/test/haml/templates/content_for_layout.haml +0 -10
  113. data/vendor/gems/haml-2.1.0/test/haml/templates/eval_suppressed.haml +0 -11
  114. data/vendor/gems/haml-2.1.0/test/haml/templates/filters.haml +0 -66
  115. data/vendor/gems/haml-2.1.0/test/haml/templates/helpers.haml +0 -95
  116. data/vendor/gems/haml-2.1.0/test/haml/templates/helpful.haml +0 -11
  117. data/vendor/gems/haml-2.1.0/test/haml/templates/just_stuff.haml +0 -83
  118. data/vendor/gems/haml-2.1.0/test/haml/templates/list.haml +0 -12
  119. data/vendor/gems/haml-2.1.0/test/haml/templates/nuke_inner_whitespace.haml +0 -32
  120. data/vendor/gems/haml-2.1.0/test/haml/templates/nuke_outer_whitespace.haml +0 -144
  121. data/vendor/gems/haml-2.1.0/test/haml/templates/original_engine.haml +0 -17
  122. data/vendor/gems/haml-2.1.0/test/haml/templates/partial_layout.haml +0 -3
  123. data/vendor/gems/haml-2.1.0/test/haml/templates/partialize.haml +0 -1
  124. data/vendor/gems/haml-2.1.0/test/haml/templates/partials.haml +0 -12
  125. data/vendor/gems/haml-2.1.0/test/haml/templates/render_layout.haml +0 -2
  126. data/vendor/gems/haml-2.1.0/test/haml/templates/silent_script.haml +0 -40
  127. data/vendor/gems/haml-2.1.0/test/haml/templates/standard.haml +0 -42
  128. data/vendor/gems/haml-2.1.0/test/haml/templates/standard_ugly.haml +0 -42
  129. data/vendor/gems/haml-2.1.0/test/haml/templates/tag_parsing.haml +0 -21
  130. data/vendor/gems/haml-2.1.0/test/haml/templates/very_basic.haml +0 -4
  131. data/vendor/gems/haml-2.1.0/test/haml/templates/whitespace_handling.haml +0 -87
  132. data/vendor/gems/haml-2.1.0/test/linked_rails.rb +0 -12
  133. data/vendor/gems/haml-2.1.0/test/sass/css2sass_test.rb +0 -193
  134. data/vendor/gems/haml-2.1.0/test/sass/engine_test.rb +0 -769
  135. data/vendor/gems/haml-2.1.0/test/sass/functions_test.rb +0 -96
  136. data/vendor/gems/haml-2.1.0/test/sass/more_results/more1.css +0 -9
  137. data/vendor/gems/haml-2.1.0/test/sass/more_results/more1_with_line_comments.css +0 -26
  138. data/vendor/gems/haml-2.1.0/test/sass/more_results/more_import.css +0 -29
  139. data/vendor/gems/haml-2.1.0/test/sass/more_templates/_more_partial.sass +0 -2
  140. data/vendor/gems/haml-2.1.0/test/sass/more_templates/more1.sass +0 -23
  141. data/vendor/gems/haml-2.1.0/test/sass/more_templates/more_import.sass +0 -11
  142. data/vendor/gems/haml-2.1.0/test/sass/plugin_test.rb +0 -208
  143. data/vendor/gems/haml-2.1.0/test/sass/results/alt.css +0 -4
  144. data/vendor/gems/haml-2.1.0/test/sass/results/basic.css +0 -9
  145. data/vendor/gems/haml-2.1.0/test/sass/results/compact.css +0 -5
  146. data/vendor/gems/haml-2.1.0/test/sass/results/complex.css +0 -87
  147. data/vendor/gems/haml-2.1.0/test/sass/results/compressed.css +0 -1
  148. data/vendor/gems/haml-2.1.0/test/sass/results/expanded.css +0 -19
  149. data/vendor/gems/haml-2.1.0/test/sass/results/import.css +0 -29
  150. data/vendor/gems/haml-2.1.0/test/sass/results/line_numbers.css +0 -49
  151. data/vendor/gems/haml-2.1.0/test/sass/results/mixins.css +0 -95
  152. data/vendor/gems/haml-2.1.0/test/sass/results/multiline.css +0 -24
  153. data/vendor/gems/haml-2.1.0/test/sass/results/nested.css +0 -22
  154. data/vendor/gems/haml-2.1.0/test/sass/results/parent_ref.css +0 -13
  155. data/vendor/gems/haml-2.1.0/test/sass/results/script.css +0 -16
  156. data/vendor/gems/haml-2.1.0/test/sass/results/subdir/nested_subdir/nested_subdir.css +0 -1
  157. data/vendor/gems/haml-2.1.0/test/sass/results/subdir/subdir.css +0 -3
  158. data/vendor/gems/haml-2.1.0/test/sass/results/units.css +0 -11
  159. data/vendor/gems/haml-2.1.0/test/sass/script_test.rb +0 -153
  160. data/vendor/gems/haml-2.1.0/test/sass/templates/_partial.sass +0 -2
  161. data/vendor/gems/haml-2.1.0/test/sass/templates/alt.sass +0 -16
  162. data/vendor/gems/haml-2.1.0/test/sass/templates/basic.sass +0 -23
  163. data/vendor/gems/haml-2.1.0/test/sass/templates/bork.sass +0 -2
  164. data/vendor/gems/haml-2.1.0/test/sass/templates/bork2.sass +0 -2
  165. data/vendor/gems/haml-2.1.0/test/sass/templates/compact.sass +0 -17
  166. data/vendor/gems/haml-2.1.0/test/sass/templates/complex.sass +0 -309
  167. data/vendor/gems/haml-2.1.0/test/sass/templates/compressed.sass +0 -15
  168. data/vendor/gems/haml-2.1.0/test/sass/templates/expanded.sass +0 -17
  169. data/vendor/gems/haml-2.1.0/test/sass/templates/import.sass +0 -11
  170. data/vendor/gems/haml-2.1.0/test/sass/templates/importee.sass +0 -19
  171. data/vendor/gems/haml-2.1.0/test/sass/templates/line_numbers.sass +0 -13
  172. data/vendor/gems/haml-2.1.0/test/sass/templates/mixins.sass +0 -76
  173. data/vendor/gems/haml-2.1.0/test/sass/templates/multiline.sass +0 -20
  174. data/vendor/gems/haml-2.1.0/test/sass/templates/nested.sass +0 -25
  175. data/vendor/gems/haml-2.1.0/test/sass/templates/parent_ref.sass +0 -25
  176. data/vendor/gems/haml-2.1.0/test/sass/templates/script.sass +0 -101
  177. data/vendor/gems/haml-2.1.0/test/sass/templates/subdir/nested_subdir/_nested_partial.sass +0 -2
  178. data/vendor/gems/haml-2.1.0/test/sass/templates/subdir/nested_subdir/nested_subdir.sass +0 -3
  179. data/vendor/gems/haml-2.1.0/test/sass/templates/subdir/subdir.sass +0 -6
  180. data/vendor/gems/haml-2.1.0/test/sass/templates/units.sass +0 -11
  181. data/vendor/gems/haml-2.1.0/test/test_helper.rb +0 -21
@@ -1,20 +0,0 @@
1
- module Sass
2
- module Script
3
- class Variable # :nodoc:
4
- attr_reader :name
5
-
6
- def initialize(name)
7
- @name = name
8
- end
9
-
10
- def inspect
11
- "!#{name}"
12
- end
13
-
14
- def perform(environment)
15
- (val = environment.var(name)) && (return val)
16
- raise SyntaxError.new("Undefined variable: \"!#{name}\".")
17
- end
18
- end
19
- end
20
- end
@@ -1,64 +0,0 @@
1
- module Sass::Tree
2
- class AttrNode < Node
3
- attr_accessor :name, :value
4
-
5
- def initialize(name, value, options)
6
- @name = name
7
- @value = value
8
- super(options)
9
- end
10
-
11
- def ==(other)
12
- self.class == other.class && name == other.name && value == other.value && super
13
- end
14
-
15
- def to_s(tabs, parent_name = nil)
16
- if value[-1] == ?;
17
- raise Sass::SyntaxError.new("Invalid attribute: #{declaration.dump} (This isn't CSS!).", @line)
18
- end
19
- real_name = name
20
- real_name = "#{parent_name}-#{real_name}" if parent_name
21
-
22
- if value.empty? && children.empty?
23
- raise Sass::SyntaxError.new("Invalid attribute: #{declaration.dump}.", @line)
24
- end
25
-
26
- join_string = case @style
27
- when :compact; ' '
28
- when :compressed; ''
29
- else "\n"
30
- end
31
- spaces = ' ' * (tabs - 1)
32
- to_return = ''
33
- if !value.empty?
34
- to_return << "#{spaces}#{real_name}:#{@style == :compressed ? '' : ' '}#{value};#{join_string}"
35
- end
36
-
37
- children.each do |kid|
38
- to_return << kid.to_s(tabs, real_name) << join_string
39
- end
40
-
41
- (@style == :compressed && parent_name) ? to_return : to_return[0...-1]
42
- end
43
-
44
- protected
45
-
46
- def perform!(environment)
47
- @name = interpolate(@name, environment)
48
- @value = @value.is_a?(String) ? interpolate(@value, environment) : @value.perform(environment).to_s
49
- super
50
- end
51
-
52
- private
53
-
54
- def declaration
55
- ":#{name} #{value}"
56
- end
57
-
58
- def invalid_child?(child)
59
- if !child.is_a?(AttrNode) && !child.is_a?(CommentNode)
60
- "Illegal nesting: Only attributes may be nested beneath attributes."
61
- end
62
- end
63
- end
64
- end
@@ -1,34 +0,0 @@
1
- require 'sass/tree/node'
2
-
3
- module Sass::Tree
4
- class CommentNode < Node
5
- attr_accessor :value
6
-
7
- def initialize(value, options)
8
- @value = value[2..-1].strip
9
- super(options)
10
- end
11
-
12
- def ==(other)
13
- self.value == other.value && super
14
- end
15
-
16
- def silent?
17
- !!@options[:silent]
18
- end
19
-
20
- def to_s(tabs = 0, parent_name = nil)
21
- return if (@style == :compressed || silent?)
22
-
23
- spaces = ' ' * (tabs - 1)
24
- spaces + "/* " + ([value] + children.map {|c| c.text}).
25
- join(@style == :compact ? ' ' : "\n#{spaces} * ") + " */"
26
- end
27
-
28
- protected
29
-
30
- def _perform(environment)
31
- self
32
- end
33
- end
34
- end
@@ -1,22 +0,0 @@
1
- module Sass
2
- module Tree
3
- class DebugNode < Node
4
- def initialize(expr, options)
5
- @expr = expr
6
- super(options)
7
- end
8
-
9
- protected
10
-
11
- def _perform(environment)
12
- res = @expr.perform(environment)
13
- if filename
14
- STDERR.puts "#{filename}:#{line} DEBUG: #{res}"
15
- else
16
- STDERR.puts "Line #{line} DEBUG: #{res}"
17
- end
18
- []
19
- end
20
- end
21
- end
22
- end
@@ -1,50 +0,0 @@
1
- module Sass::Tree
2
- class DirectiveNode < Node
3
- attr_accessor :value
4
-
5
- def initialize(value, options)
6
- @value = value
7
- super(options)
8
- end
9
-
10
- def to_s(tabs)
11
- if children.empty?
12
- value + ";"
13
- else
14
- result = if @style == :compressed
15
- "#{value}{"
16
- else
17
- "#{' ' * (tabs - 1)}#{value} {" + (@style == :compact ? ' ' : "\n")
18
- end
19
- was_attr = false
20
- first = true
21
- children.each do |child|
22
- if @style == :compact
23
- if child.is_a?(AttrNode)
24
- result << "#{child.to_s(first || was_attr ? 1 : tabs + 1)} "
25
- else
26
- if was_attr
27
- result[-1] = "\n"
28
- end
29
- rendered = child.to_s(tabs + 1)
30
- rendered.lstrip! if first
31
- result << rendered
32
- end
33
- was_attr = child.is_a?(AttrNode)
34
- first = false
35
- elsif @style == :compressed
36
- result << (was_attr ? ";#{child.to_s(1)}" : child.to_s(1))
37
- was_attr = child.is_a?(AttrNode)
38
- else
39
- result << child.to_s(tabs + 1) + "\n"
40
- end
41
- end
42
- result.rstrip + if @style == :compressed
43
- "}"
44
- else
45
- (@style == :expanded ? "\n" : " ") + "}\n"
46
- end
47
- end
48
- end
49
- end
50
- end
@@ -1,27 +0,0 @@
1
- module Sass
2
- module Tree
3
- class FileNode < Node
4
- def initialize(filename, children, options)
5
- @filename = filename
6
- super(options)
7
- self.children = children
8
- end
9
-
10
- def to_s(*args)
11
- super()
12
- rescue Sass::SyntaxError => e
13
- e.add_backtrace_entry(@filename)
14
- raise e
15
- end
16
-
17
- protected
18
-
19
- def perform!(environment)
20
- self.children = perform_children(environment)
21
- rescue Sass::SyntaxError => e
22
- e.add_backtrace_entry(@filename)
23
- raise e
24
- end
25
- end
26
- end
27
- end
@@ -1,29 +0,0 @@
1
- require 'sass/tree/node'
2
-
3
- module Sass::Tree
4
- class ForNode < Node
5
- def initialize(var, from, to, exclusive, options)
6
- @var = var
7
- @from = from
8
- @to = to
9
- @exclusive = exclusive
10
- super(options)
11
- end
12
-
13
- protected
14
-
15
- def _perform(environment)
16
- from = @from.perform(environment).to_i
17
- to = @to.perform(environment).to_i
18
- range = Range.new(from, to, @exclusive)
19
-
20
- children = []
21
- range.each do |i|
22
- environment = Sass::Environment.new(environment)
23
- environment.set_local_var(@var, Sass::Script::Number.new(i))
24
- children += perform_children(environment)
25
- end
26
- children
27
- end
28
- end
29
- end
@@ -1,27 +0,0 @@
1
- require 'sass/tree/node'
2
-
3
- module Sass::Tree
4
- class IfNode < Node
5
- attr_accessor :else
6
-
7
- def initialize(expr, options)
8
- @expr = expr
9
- @last_else = self
10
- super(options)
11
- end
12
-
13
- def add_else(node)
14
- @last_else.else = node
15
- @last_else = node
16
- end
17
-
18
- protected
19
-
20
- def _perform(environment)
21
- environment = Sass::Environment.new(environment)
22
- return perform_children(environment) if @expr.nil? || @expr.perform(environment).to_bool
23
- return @else.perform(environment) if @else
24
- []
25
- end
26
- end
27
- end
@@ -1,18 +0,0 @@
1
- module Sass
2
- module Tree
3
- class MixinDefNode < Node
4
- def initialize(name, args, options)
5
- @name = name
6
- @args = args
7
- super(options)
8
- end
9
-
10
- private
11
-
12
- def _perform(environment)
13
- environment.set_mixin(@name, Sass::Mixin.new(@name, @args, environment, children))
14
- []
15
- end
16
- end
17
- end
18
- end
@@ -1,34 +0,0 @@
1
- require 'sass/tree/node'
2
-
3
- module Sass::Tree
4
- class MixinNode < Node
5
- def initialize(name, args, options)
6
- @name = name
7
- @args = args
8
- super(options)
9
- end
10
-
11
- protected
12
-
13
- def _perform(environment)
14
- raise Sass::SyntaxError.new("Undefined mixin '#{@name}'.", @line) unless mixin = environment.mixin(@name)
15
-
16
- raise Sass::SyntaxError.new(<<END.gsub("\n", "")) if mixin.args.size < @args.size
17
- Mixin #{@name} takes #{mixin.args.size} argument#{'s' if mixin.args.size != 1}
18
- but #{@args.size} #{@args.size == 1 ? 'was' : 'were'} passed.
19
- END
20
-
21
- environment = mixin.args.zip(@args).inject(Sass::Environment.new(mixin.environment)) do |env, (arg, value)|
22
- env.set_local_var(arg[:name],
23
- if value
24
- value.perform(environment)
25
- elsif arg[:default_value]
26
- arg[:default_value].perform(env)
27
- end)
28
- raise Sass::SyntaxError.new("Mixin #{@name} is missing parameter !#{arg[:name]}.") unless env.var(arg[:name])
29
- env
30
- end
31
- mixin.tree.map {|c| c.perform(environment)}.flatten
32
- end
33
- end
34
- end
@@ -1,99 +0,0 @@
1
- module Sass
2
- module Tree
3
- class Node
4
- attr_accessor :children
5
- attr_accessor :line
6
- attr_accessor :filename
7
-
8
- def initialize(options)
9
- @options = options
10
- @style = options[:style]
11
- @children = []
12
- end
13
-
14
- def <<(child)
15
- if msg = invalid_child?(child)
16
- raise Sass::SyntaxError.new(msg, child.line)
17
- end
18
- @children << child
19
- end
20
-
21
- # We need this because Node duck types as an Array in engine.rb
22
- def last
23
- children.last
24
- end
25
-
26
- def ==(other)
27
- self.class == other.class && other.children == children
28
- end
29
-
30
- def to_s
31
- result = String.new
32
- children.each do |child|
33
- if child.is_a? AttrNode
34
- raise Sass::SyntaxError.new('Attributes aren\'t allowed at the root of a document.', child.line)
35
- else
36
- child_str = child.to_s(1)
37
- next unless child_str && child_str.length > 0
38
- result << child_str + (@style == :compressed ? '' : "\n")
39
- end
40
- end
41
- @style == :compressed ? result+"\n" : result[0...-1]
42
- end
43
-
44
- def perform(environment)
45
- _perform(environment)
46
- rescue Sass::SyntaxError => e
47
- e.sass_line ||= line
48
- raise e
49
- end
50
-
51
- protected
52
-
53
- def _perform(environment)
54
- node = dup
55
- node.perform!(environment)
56
- node
57
- end
58
-
59
- def perform!(environment)
60
- self.children = perform_children(Environment.new(environment))
61
- end
62
-
63
- def perform_children(environment)
64
- children.map {|c| c.perform(environment)}.flatten
65
- end
66
-
67
- def interpolate(text, environment)
68
- res = ''
69
- rest = Haml::Shared.handle_interpolation text do |scan|
70
- escapes = scan[2].size
71
- res << scan.matched[0...-2 - escapes]
72
- if escapes % 2 == 1
73
- res << "\\" * (escapes - 1) << '#{'
74
- else
75
- res << "\\" * [0, escapes - 1].max
76
- res << Script::Parser.new(scan, line, scan.pos - scan.matchedsize, filename).
77
- parse_interpolated.perform(environment).to_s
78
- end
79
- end
80
- res + rest
81
- end
82
-
83
- def balance(*args)
84
- res = Haml::Shared.balance(*args)
85
- return res if res
86
- raise Sass::SyntaxError.new("Unbalanced brackets.", line)
87
- end
88
-
89
- private
90
-
91
- # This method should be overridden by subclasses to return an error message
92
- # if the given child node is invalid,
93
- # and false or nil otherwise.
94
- def invalid_child?(child)
95
- false
96
- end
97
- end
98
- end
99
- end
@@ -1,120 +0,0 @@
1
- module Sass::Tree
2
- class RuleNode < Node
3
- # The character used to include the parent selector
4
- PARENT = '&'
5
-
6
- attr_accessor :rule
7
-
8
- def initialize(rule, options)
9
- @rule = rule
10
- super(options)
11
- end
12
-
13
- def ==(other)
14
- self.class == other.class && rules == other.rules && super
15
- end
16
-
17
- def rules
18
- Array(rule)
19
- end
20
-
21
- def add_rules(node)
22
- self.rule = rules
23
- self.rule += node.rules
24
- end
25
-
26
- def continued?
27
- rule[-1] == ?,
28
- end
29
-
30
- def to_s(tabs, super_rules = nil)
31
- attributes = []
32
- sub_rules = []
33
-
34
- rule_split = /\s*,\s*/
35
- rule_separator = @style == :compressed ? ',' : ', '
36
- line_separator = [:nested, :expanded].include?(@style) ? ",\n" : rule_separator
37
- rule_indent = ' ' * (tabs - 1)
38
- total_rule = if super_rules
39
- super_rules.split(",\n").map do |super_line|
40
- super_line.strip.split(rule_split).map do |super_rule|
41
- self.rules.map do |line|
42
- rule_indent + line.gsub(/,$/, '').split(rule_split).map do |rule|
43
- if rule.include?(PARENT)
44
- rule.gsub(PARENT, super_rule)
45
- else
46
- "#{super_rule} #{rule}"
47
- end
48
- end.join(rule_separator)
49
- end.join(line_separator)
50
- end.join(rule_separator)
51
- end.join(line_separator)
52
- elsif self.rules.any? { |r| r.include?(PARENT) }
53
- raise Sass::SyntaxError.new("Base-level rules cannot contain the parent-selector-referencing character '#{PARENT}'.", line)
54
- else
55
- per_rule_indent, total_indent = [:nested, :expanded].include?(@style) ? [rule_indent, ''] : ['', rule_indent]
56
- total_indent + self.rules.map do |r|
57
- per_rule_indent + r.gsub(/,$/, '').gsub(rule_split, rule_separator).rstrip
58
- end.join(line_separator)
59
- end
60
-
61
- children.each do |child|
62
- if child.is_a? RuleNode
63
- sub_rules << child
64
- else
65
- attributes << child
66
- end
67
- end
68
-
69
- to_return = ''
70
- if !attributes.empty?
71
- old_spaces = ' ' * (tabs - 1)
72
- spaces = ' ' * tabs
73
- if @options[:line_comments] && @style != :compressed
74
- to_return << "#{old_spaces}/* line #{line}"
75
-
76
- if filename
77
- relative_filename = if @options[:css_filename]
78
- begin
79
- Pathname.new(filename).relative_path_from(
80
- Pathname.new(File.dirname(@options[:css_filename]))).to_s
81
- rescue ArgumentError
82
- nil
83
- end
84
- end
85
- relative_filename ||= filename
86
- to_return << ", #{relative_filename}"
87
- end
88
-
89
- to_return << " */\n"
90
- end
91
-
92
- if @style == :compact
93
- attributes = attributes.map { |a| a.to_s(1) }.select{|a| a && a.length > 0}.join(' ')
94
- to_return << "#{total_rule} { #{attributes} }\n"
95
- elsif @style == :compressed
96
- attributes = attributes.map { |a| a.to_s(1) }.select{|a| a && a.length > 0}.join(';')
97
- to_return << "#{total_rule}{#{attributes}}"
98
- else
99
- attributes = attributes.map { |a| a.to_s(tabs + 1) }.select{|a| a && a.length > 0}.join("\n")
100
- end_attrs = (@style == :expanded ? "\n" + old_spaces : ' ')
101
- to_return << "#{total_rule} {\n#{attributes}#{end_attrs}}\n"
102
- end
103
- end
104
-
105
- tabs += 1 unless attributes.empty? || @style != :nested
106
- sub_rules.each do |sub|
107
- to_return << sub.to_s(tabs, total_rule)
108
- end
109
-
110
- to_return
111
- end
112
-
113
- protected
114
-
115
- def perform!(environment)
116
- self.rule = rules.map {|r| interpolate(r, environment)}
117
- super
118
- end
119
- end
120
- end