haml 3.1.0.alpha.33 → 3.1.0.alpha.36

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 (61) hide show
  1. data/EDGE_GEM_VERSION +1 -1
  2. data/VERSION +1 -1
  3. data/vendor/sass/doc-src/SASS_CHANGELOG.md +177 -2
  4. data/vendor/sass/doc-src/SASS_REFERENCE.md +140 -3
  5. data/vendor/sass/lib/sass/cache_stores.rb +14 -0
  6. data/vendor/sass/lib/sass/cache_stores/active_support.rb +28 -0
  7. data/vendor/sass/lib/sass/cache_stores/base.rb +84 -0
  8. data/vendor/sass/lib/sass/cache_stores/filesystem.rb +56 -0
  9. data/vendor/sass/lib/sass/cache_stores/memory.rb +51 -0
  10. data/vendor/sass/lib/sass/cache_stores/null.rb +25 -0
  11. data/vendor/sass/lib/sass/engine.rb +86 -25
  12. data/vendor/sass/lib/sass/exec.rb +10 -1
  13. data/vendor/sass/lib/sass/importers/rails.rb +75 -0
  14. data/vendor/sass/lib/sass/less.rb +1 -1
  15. data/vendor/sass/lib/sass/plugin/compiler.rb +4 -1
  16. data/vendor/sass/lib/sass/plugin/configuration.rb +4 -2
  17. data/vendor/sass/lib/sass/plugin/rack.rb +15 -2
  18. data/vendor/sass/lib/sass/plugin/rails.rb +89 -9
  19. data/vendor/sass/lib/sass/plugin/staleness_checker.rb +30 -2
  20. data/vendor/sass/lib/sass/script/css_parser.rb +1 -1
  21. data/vendor/sass/lib/sass/script/functions.rb +126 -5
  22. data/vendor/sass/lib/sass/script/lexer.rb +1 -1
  23. data/vendor/sass/lib/sass/script/list.rb +76 -0
  24. data/vendor/sass/lib/sass/script/literal.rb +10 -1
  25. data/vendor/sass/lib/sass/script/number.rb +1 -1
  26. data/vendor/sass/lib/sass/script/operation.rb +3 -2
  27. data/vendor/sass/lib/sass/script/parser.rb +25 -12
  28. data/vendor/sass/lib/sass/scss/css_parser.rb +0 -5
  29. data/vendor/sass/lib/sass/scss/parser.rb +46 -7
  30. data/vendor/sass/lib/sass/scss/static_parser.rb +1 -1
  31. data/vendor/sass/lib/sass/tree/charset_node.rb +37 -0
  32. data/vendor/sass/lib/sass/tree/directive_node.rb +2 -2
  33. data/vendor/sass/lib/sass/tree/each_node.rb +54 -0
  34. data/vendor/sass/lib/sass/tree/if_node.rb +19 -0
  35. data/vendor/sass/lib/sass/tree/media_node.rb +75 -0
  36. data/vendor/sass/lib/sass/tree/prop_node.rb +1 -1
  37. data/vendor/sass/lib/sass/tree/root_node.rb +37 -5
  38. data/vendor/sass/lib/sass/tree/rule_node.rb +4 -6
  39. data/vendor/sass/lib/sass/util.rb +18 -1
  40. data/vendor/sass/test/sass/cache_test.rb +7 -7
  41. data/vendor/sass/test/sass/conversion_test.rb +28 -0
  42. data/vendor/sass/test/sass/engine_test.rb +214 -11
  43. data/vendor/sass/test/sass/functions_test.rb +69 -0
  44. data/vendor/sass/test/sass/plugin_test.rb +13 -4
  45. data/vendor/sass/test/sass/results/import_charset.css +4 -0
  46. data/vendor/sass/test/sass/results/import_charset_1_8.css +4 -0
  47. data/vendor/sass/test/sass/results/import_charset_ibm866.css +4 -0
  48. data/vendor/sass/test/sass/script_conversion_test.rb +27 -25
  49. data/vendor/sass/test/sass/script_test.rb +12 -1
  50. data/vendor/sass/test/sass/scss/css_test.rb +27 -8
  51. data/vendor/sass/test/sass/scss/scss_test.rb +77 -0
  52. data/vendor/sass/test/sass/templates/_imported_charset_ibm866.sass +4 -0
  53. data/vendor/sass/test/sass/templates/_imported_charset_utf8.sass +4 -0
  54. data/vendor/sass/test/sass/templates/import_charset.sass +7 -0
  55. data/vendor/sass/test/sass/templates/import_charset_1_8.sass +4 -0
  56. data/vendor/sass/test/sass/templates/import_charset_ibm866.sass +9 -0
  57. data/vendor/sass/test/sass/templates/script.sass +2 -2
  58. data/vendor/sass/test/test_helper.rb +8 -0
  59. metadata +27 -10
  60. data/REVISION +0 -1
  61. data/vendor/sass/lib/sass/cache_store.rb +0 -208
@@ -61,4 +61,12 @@ class Test::Unit::TestCase
61
61
  else
62
62
  flunk "Expected exception #{klass}, none raised"
63
63
  end
64
+
65
+ def assert_raise_line(line)
66
+ yield
67
+ rescue Sass::SyntaxError => e
68
+ assert_equal(line, e.sass_line)
69
+ else
70
+ flunk "Expected exception on line #{line}, none raised"
71
+ end
64
72
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: haml
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.0.alpha.33
4
+ version: 3.1.0.alpha.36
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Weizenbaum
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2010-11-19 00:00:00 -05:00
13
+ date: 2010-11-26 00:00:00 -05:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -46,27 +46,27 @@ files:
46
46
  - rails/init.rb
47
47
  - lib/haml.rb
48
48
  - lib/haml/buffer.rb
49
+ - lib/haml/compiler.rb
49
50
  - lib/haml/engine.rb
50
- - lib/haml/exec.rb
51
51
  - lib/haml/error.rb
52
+ - lib/haml/exec.rb
52
53
  - lib/haml/filters.rb
53
54
  - lib/haml/helpers.rb
54
- - lib/haml/html.rb
55
55
  - lib/haml/helpers/action_view_extensions.rb
56
56
  - lib/haml/helpers/action_view_mods.rb
57
57
  - lib/haml/helpers/xss_mods.rb
58
- - lib/haml/util.rb
58
+ - lib/haml/html.rb
59
59
  - lib/haml/html/erb.rb
60
+ - lib/haml/parser.rb
60
61
  - lib/haml/railtie.rb
61
- - lib/haml/template.rb
62
62
  - lib/haml/root.rb
63
63
  - lib/haml/shared.rb
64
- - lib/haml/compiler.rb
64
+ - lib/haml/template.rb
65
65
  - lib/haml/template/options.rb
66
66
  - lib/haml/template/patch.rb
67
67
  - lib/haml/template/plugin.rb
68
+ - lib/haml/util.rb
68
69
  - lib/haml/version.rb
69
- - lib/haml/parser.rb
70
70
  - lib/sass.rb
71
71
  - lib/sass/plugin.rb
72
72
  - lib/sass/rails2_shim.rb
@@ -162,7 +162,12 @@ files:
162
162
  - vendor/sass/extra/update_watch.rb
163
163
  - vendor/sass/init.rb
164
164
  - vendor/sass/lib/sass.rb
165
- - vendor/sass/lib/sass/cache_store.rb
165
+ - vendor/sass/lib/sass/cache_stores.rb
166
+ - vendor/sass/lib/sass/cache_stores/active_support.rb
167
+ - vendor/sass/lib/sass/cache_stores/base.rb
168
+ - vendor/sass/lib/sass/cache_stores/filesystem.rb
169
+ - vendor/sass/lib/sass/cache_stores/memory.rb
170
+ - vendor/sass/lib/sass/cache_stores/null.rb
166
171
  - vendor/sass/lib/sass/callbacks.rb
167
172
  - vendor/sass/lib/sass/css.rb
168
173
  - vendor/sass/lib/sass/engine.rb
@@ -172,6 +177,7 @@ files:
172
177
  - vendor/sass/lib/sass/importers.rb
173
178
  - vendor/sass/lib/sass/importers/base.rb
174
179
  - vendor/sass/lib/sass/importers/filesystem.rb
180
+ - vendor/sass/lib/sass/importers/rails.rb
175
181
  - vendor/sass/lib/sass/less.rb
176
182
  - vendor/sass/lib/sass/plugin.rb
177
183
  - vendor/sass/lib/sass/plugin/compiler.rb
@@ -193,6 +199,7 @@ files:
193
199
  - vendor/sass/lib/sass/script/functions.rb
194
200
  - vendor/sass/lib/sass/script/interpolation.rb
195
201
  - vendor/sass/lib/sass/script/lexer.rb
202
+ - vendor/sass/lib/sass/script/list.rb
196
203
  - vendor/sass/lib/sass/script/literal.rb
197
204
  - vendor/sass/lib/sass/script/node.rb
198
205
  - vendor/sass/lib/sass/script/number.rb
@@ -217,13 +224,16 @@ files:
217
224
  - vendor/sass/lib/sass/selector/simple.rb
218
225
  - vendor/sass/lib/sass/selector/simple_sequence.rb
219
226
  - vendor/sass/lib/sass/shared.rb
227
+ - vendor/sass/lib/sass/tree/charset_node.rb
220
228
  - vendor/sass/lib/sass/tree/comment_node.rb
221
229
  - vendor/sass/lib/sass/tree/debug_node.rb
222
230
  - vendor/sass/lib/sass/tree/directive_node.rb
231
+ - vendor/sass/lib/sass/tree/each_node.rb
223
232
  - vendor/sass/lib/sass/tree/extend_node.rb
224
233
  - vendor/sass/lib/sass/tree/for_node.rb
225
234
  - vendor/sass/lib/sass/tree/if_node.rb
226
235
  - vendor/sass/lib/sass/tree/import_node.rb
236
+ - vendor/sass/lib/sass/tree/media_node.rb
227
237
  - vendor/sass/lib/sass/tree/mixin_def_node.rb
228
238
  - vendor/sass/lib/sass/tree/mixin_node.rb
229
239
  - vendor/sass/lib/sass/tree/node.rb
@@ -263,6 +273,9 @@ files:
263
273
  - vendor/sass/test/sass/results/compressed.css
264
274
  - vendor/sass/test/sass/results/expanded.css
265
275
  - vendor/sass/test/sass/results/import.css
276
+ - vendor/sass/test/sass/results/import_charset.css
277
+ - vendor/sass/test/sass/results/import_charset_1_8.css
278
+ - vendor/sass/test/sass/results/import_charset_ibm866.css
266
279
  - vendor/sass/test/sass/results/line_numbers.css
267
280
  - vendor/sass/test/sass/results/mixins.css
268
281
  - vendor/sass/test/sass/results/multiline.css
@@ -283,6 +296,8 @@ files:
283
296
  - vendor/sass/test/sass/scss/rx_test.rb
284
297
  - vendor/sass/test/sass/scss/scss_test.rb
285
298
  - vendor/sass/test/sass/scss/test_helper.rb
299
+ - vendor/sass/test/sass/templates/_imported_charset_ibm866.sass
300
+ - vendor/sass/test/sass/templates/_imported_charset_utf8.sass
286
301
  - vendor/sass/test/sass/templates/_partial.sass
287
302
  - vendor/sass/test/sass/templates/alt.sass
288
303
  - vendor/sass/test/sass/templates/basic.sass
@@ -295,6 +310,9 @@ files:
295
310
  - vendor/sass/test/sass/templates/compressed.sass
296
311
  - vendor/sass/test/sass/templates/expanded.sass
297
312
  - vendor/sass/test/sass/templates/import.sass
313
+ - vendor/sass/test/sass/templates/import_charset.sass
314
+ - vendor/sass/test/sass/templates/import_charset_1_8.sass
315
+ - vendor/sass/test/sass/templates/import_charset_ibm866.sass
298
316
  - vendor/sass/test/sass/templates/importee.less
299
317
  - vendor/sass/test/sass/templates/importee.sass
300
318
  - vendor/sass/test/sass/templates/line_numbers.sass
@@ -365,7 +383,6 @@ files:
365
383
  - VERSION
366
384
  - VERSION_NAME
367
385
  - EDGE_GEM_VERSION
368
- - REVISION
369
386
  has_rdoc: false
370
387
  homepage: http://haml-lang.com/
371
388
  licenses: []
data/REVISION DELETED
@@ -1 +0,0 @@
1
- (release)
@@ -1,208 +0,0 @@
1
- require 'stringio'
2
-
3
- module Sass
4
- # An abstract base class for backends for the Sass cache.
5
- # Any key-value store can act as such a backend;
6
- # it just needs to implement the
7
- # \{#_store} and \{#_retrieve} methods.
8
- #
9
- # To use a cache store with Sass,
10
- # use the {file:SASS_REFERENCE.md#cache_store-option `:cache_store` option}.
11
- class CacheStore
12
- # Store cached contents for later retrieval
13
- # Must be implemented by all CacheStore subclasses
14
- #
15
- # Note: cache contents contain binary data.
16
- #
17
- # @param key [String] The key to store the contents under
18
- # @param version [String] The current sass version.
19
- # Cached contents must not be retrieved across different versions of sass.
20
- # @param sha [String] The sha of the sass source.
21
- # Cached contents must not be retrieved if the sha has changed.
22
- # @param contents [String] The contents to store.
23
- def _store(key, version, sha, contents)
24
- raise "#{self.class} must implement #_store."
25
- end
26
-
27
- # Retrieved cached contents.
28
- # Must be implemented by all subclasses.
29
- #
30
- # Note: if the key exists but the sha or version have changed,
31
- # then the key may be deleted by the cache store, if it wants to do so.
32
- #
33
- # @param key [String] The key to retrieve
34
- # @param version [String] The current sass version.
35
- # Cached contents must not be retrieved across different versions of sass.
36
- # @param sha [String] The sha of the sass source.
37
- # Cached contents must not be retrieved if the sha has changed.
38
- # @return [String] The contents that were previously stored.
39
- # @return [NilClass] when the cache key is not found or the version or sha have changed.
40
- def _retrieve(key, version, sha)
41
- raise "#{self.class} must implement #_retrieve."
42
- end
43
-
44
- # Store a {Sass::Tree::RootNode}.
45
- #
46
- # @param key [String] The key to store it under.
47
- # @param sha [String] The checksum for the contents that are being stored.
48
- # @param obj [Object] The object to cache.
49
- def store(key, sha, root)
50
- _store(key, Sass::VERSION, sha, Sass::Util.dump(root))
51
- end
52
-
53
- # Retrieve a {Sass::Tree::RootNode}.
54
- #
55
- # @param key [String] The key the root element was stored under.
56
- # @param sha [String] The checksum of the root element's content.
57
- # @return [Object] The cached object.
58
- def retrieve(key, sha)
59
- contents = _retrieve(key, Sass::VERSION, sha)
60
- Sass::Util.load(contents) if contents
61
- rescue EOFError, TypeError, ArgumentError => e
62
- raise
63
- Sass::Util.sass_warn "Warning. Error encountered while reading cache #{path_to(key)}: #{e}"
64
- end
65
-
66
- # Return the key for the sass file.
67
- #
68
- # The `(sass_dirname, sass_basename)` pair
69
- # should uniquely identify the Sass document,
70
- # but otherwise there are no restrictions on their content.
71
- #
72
- # @param sass_dirname [String]
73
- # The fully-expanded location of the Sass file.
74
- # This corresponds to the directory name on a filesystem.
75
- # @param sass_basename [String] The name of the Sass file that is being referenced.
76
- # This corresponds to the basename on a filesystem.
77
- def key(sass_dirname, sass_basename)
78
- dir = Digest::SHA1.hexdigest(sass_dirname)
79
- filename = "#{sass_basename}c"
80
- "#{dir}/#{filename}"
81
- end
82
- end
83
-
84
- # A backend for the Sass cache using the filesystem.
85
- class FileCacheStore < CacheStore
86
- # The directory where the cached files will be stored.
87
- #
88
- # @return [String]
89
- attr_accessor :cache_location
90
-
91
- # Create a new FileCacheStore.
92
- #
93
- # @param cache_location [String] see \{#cache\_location}
94
- def initialize(cache_location)
95
- @cache_location = cache_location
96
- end
97
-
98
- # @see {CacheStore#\_retrieve\_}
99
- def _retrieve(key, version, sha)
100
- return unless File.readable?(path_to(key))
101
- contents = nil
102
- File.open(path_to(key), "rb") do |f|
103
- if f.readline("\n").strip == version && f.readline("\n").strip == sha
104
- return f.read
105
- end
106
- end
107
- File.unlink path_to(key)
108
- nil
109
- rescue EOFError, TypeError, ArgumentError => e
110
- Sass::Util.sass_warn "Warning. Error encountered while reading cache #{path_to(key)}: #{e}"
111
- end
112
-
113
- # @see {CacheStore#\_store\_}
114
- def _store(key, version, sha, contents)
115
- return unless File.writable?(File.dirname(@cache_location))
116
- return if File.exists?(@cache_location) && !File.writable?(@cache_location)
117
- compiled_filename = path_to(key)
118
- return if File.exists?(File.dirname(compiled_filename)) && !File.writable?(File.dirname(compiled_filename))
119
- return if File.exists?(compiled_filename) && !File.writable?(compiled_filename)
120
- FileUtils.mkdir_p(File.dirname(compiled_filename))
121
- File.open(compiled_filename, "wb") do |f|
122
- f.puts(version)
123
- f.puts(sha)
124
- f.write(contents)
125
- end
126
- end
127
-
128
- private
129
-
130
- # Returns the path to a file for the given key.
131
- #
132
- # @param key [String]
133
- # @return [String] The path to the cache file.
134
- def path_to(key)
135
- File.join(cache_location, key)
136
- end
137
- end
138
-
139
- # A backend for the Sass cache using in-process memory.
140
- class InMemoryCacheStore < CacheStore
141
- # Since the {InMemoryCacheStore} is stored in the Sass tree's options hash,
142
- # when the options get serialized as part of serializing the tree,
143
- # you get crazy exponential growth in the size of the cached objects
144
- # unless you don't dump the cache.
145
- #
146
- # @private
147
- def _dump(depth)
148
- ""
149
- end
150
-
151
- # If we deserialize this class, just make a new empty one.
152
- #
153
- # @private
154
- def self._load(repr)
155
- InMemoryCacheStore.new
156
- end
157
-
158
- # Create a new, empty cache store.
159
- def initialize
160
- @contents = {}
161
- end
162
-
163
- # @see CacheStore#_retrieve
164
- def _retrieve(key, version, sha)
165
- if @contents.has_key?(key)
166
- return unless @contents[key][:version] == version
167
- return unless @contents[key][:sha] == sha
168
- return @contents[key][:contents]
169
- end
170
- end
171
-
172
- # @see CacheStore#_store
173
- def _store(key, version, sha, contents)
174
- @contents[key] = {
175
- :version => version,
176
- :sha => sha,
177
- :contents => contents
178
- }
179
- end
180
-
181
- # Destructively clear the cache.
182
- def reset!
183
- @contents = {}
184
- end
185
- end
186
-
187
- # Doesn't store anything, but records what things it should have stored.
188
- # This doesn't currently have any use except for testing and debugging.
189
- #
190
- # @private
191
- class NullCacheStore < CacheStore
192
- def initialize
193
- @keys = {}
194
- end
195
-
196
- def _retrieve(key, version, sha)
197
- nil
198
- end
199
-
200
- def _store(key, version, sha, contents)
201
- @keys[key] = true
202
- end
203
-
204
- def was_set?(key)
205
- @keys[key]
206
- end
207
- end
208
- end