GitHub Sale: sign up for any paid plan this week and pay nothing until January 1, 2009!  [ hide ]

public
Rubygem
Fork of nex3/haml
Description: HTML Abstraction Markup Language - A Markup Haiku
Homepage: http://haml.hamptoncatlin.com
Clone URL: git://github.com/chriseppstein/haml.git
Better tests, closer to 100% rcov.


git-svn-id: svn://hamptoncatlin.com/haml/branches/1.5dev@193 
7063305b-7217-0410-af8c-cdc13e5119b9
nex3 (author)
Sun Dec 03 18:47:37 -0800 2006
commit  c4032e6acff73620512b25332a9cb4a917643582
tree    189206bc8867e64c9eae6864693acca2246f8248
parent  a6ef2d2e951f22bb23832fe15e78e497e996f4f8
...
1
2
3
4
 
5
6
7
8
9
 
...
1
2
3
 
4
5
6
 
 
 
7
0
@@ -1,9 +1,7 @@
0
 require 'haml'
0
 require 'haml/template'
0
 require 'sass'
0
-require 'sass/sass_helper'
0
+require 'sass/plugin'
0
 
0
 ActionView::Base.register_template_handler('haml', Haml::Template)
0
-ActionView::Base.class_eval do
0
- include Sass::SassHelper
0
-end
0
+Sass::Plugin.update_stylesheets
...
26
27
28
29
 
30
31
32
33
34
 
35
36
37
...
26
27
28
 
29
30
31
32
33
 
34
35
36
37
0
@@ -26,12 +26,12 @@ module Haml
0
     class << self
0
       @@options = {}
0
 
0
- # Gets various options for HAML. See REFERENCE for details.
0
+ # Gets various options for Haml. See REFERENCE for details.
0
       def options
0
         @@options
0
       end
0
 
0
- # Sets various options for HAML. See REFERENCE for details.
0
+ # Sets various options for Haml. See REFERENCE for details.
0
       def options=(value)
0
         @@options = value
0
       end
...
3
4
5
6
7
8
9
 
 
 
10
11
12
 
 
13
14
 
15
16
17
...
3
4
5
 
 
 
 
6
7
8
9
 
 
10
11
12
 
13
14
15
16
0
@@ -3,15 +3,14 @@ require 'sass/css/parser'
0
 
0
 module Sass
0
   class Engine
0
- def render_file(location)
0
- @result = ""
0
- File.open(location).each_line { |l| @result += l }
0
- render(@result)
0
+ def initialize(template, options={})
0
+ @template = template
0
+ @options = options
0
     end
0
-
0
- def render(input)
0
+
0
+ def render
0
       buffer, stack, last_level, first = "", [], 0, true
0
- input.each do |line|
0
+ @template.each do |line|
0
         line, level = [line.strip, line.scan(/[ ]*/)[0].length / 2]
0
         unless line.empty?
0
           if '%.#'.index line[0..0]
...
5
6
7
8
9
10
11
12
13
...
16
17
18
19
 
20
21
22
...
5
6
7
 
 
 
8
9
10
...
13
14
15
 
16
17
18
19
0
@@ -5,9 +5,6 @@ require File.dirname(__FILE__) + '/../../lib/sass'
0
 require 'sass/engine'
0
 
0
 class SassEngineTest < Test::Unit::TestCase
0
- def setup
0
- @engine = Sass::Engine.new
0
- end
0
   
0
   def test_basic_render
0
     renders_correctly "basic"
0
@@ -16,7 +13,7 @@ class SassEngineTest < Test::Unit::TestCase
0
   def renders_correctly(name)
0
     sass_file = load_file(name, "sass")
0
     css_file = load_file(name, "css")
0
- css_result = @engine.render(sass_file)
0
+ css_result = Sass::Engine.new(sass_file).render
0
     #puts css_result.collect { |a| a.inspect }.join("\n ")
0
     assert_equal css_file.strip, css_result.strip
0
   end
...
2
3
4
5
6
7
 
 
 
 
 
8
9
 
 
10
11
12
13
 
 
 
 
 
14
15
16
17
 
18
19
20
21
 
 
22
23
24
25
26
27
 
28
29
30
31
32
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
34
35
36
37
38
39
40
41
42
43
 
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
 
 
62
63
64
65
 
 
 
 
 
 
 
 
66
67
 
 
 
 
...
2
3
4
 
 
 
5
6
7
8
9
10
11
12
13
14
 
 
 
15
16
17
18
19
20
21
22
 
23
24
25
 
 
26
27
28
 
 
 
 
 
29
30
 
 
 
 
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
 
 
 
 
 
 
52
53
54
55
 
 
 
 
 
56
57
 
 
 
 
 
 
 
 
58
59
60
61
 
 
62
63
64
65
66
67
68
69
70
71
72
73
74
75
0
@@ -2,66 +2,74 @@
0
 
0
 require 'test/unit'
0
 require File.dirname(__FILE__) + '/../../lib/sass'
0
-require 'sass/engine'
0
-require 'sass/sass_helper'
0
-require File.dirname(__FILE__) + '/mocks/fake_controller'
0
+
0
+RAILS_ROOT = ''
0
+RAILS_ENV = 'testing'
0
+
0
+require 'sass/plugin'
0
 
0
 class SassPluginTest < Test::Unit::TestCase
0
+ @@templates = %w{ complex }
0
+
0
   def setup
0
- Sass::SassHelper.options[:stylesheet_location] = File.dirname(__FILE__) + '/templates'
0
- Sass::SassHelper.options[:always_update] = true
0
- @controller = FakeController.new
0
+ Sass::Plugin.options[:template_location] = File.dirname(__FILE__) + '/templates'
0
+ Sass::Plugin.options[:css_location] = File.dirname(__FILE__) + '/tmp'
0
+ Sass::Plugin.options = {:always_update => true}
0
+
0
+ Sass::Plugin.update_stylesheets
0
   end
0
   
0
   def teardown
0
- File.delete(*Dir[File.dirname(__FILE__) + '/templates/*.css'])
0
+ File.delete(*Dir[tempfile_loc('*')])
0
   end
0
 
0
- def test_basic_render
0
- do_file_render :basic
0
+ def test_templates_should_render_correctly
0
+ @@templates.each { |name| assert_renders_correctly(name) }
0
   end
0
-
0
- def test_complex_render
0
- do_file_render :complex
0
- end
0
-
0
+
0
   def test_no_update
0
- base_file_location = base_file_location(:basic)
0
- assert Sass::SassHelper.stylesheet_needs_update?(base_file_location)
0
- do_file_render :basic
0
- assert !Sass::SassHelper.stylesheet_needs_update?(base_file_location)
0
+ File.delete(tempfile_loc('basic'))
0
+ assert Sass::Plugin.stylesheet_needs_update?('basic')
0
+ Sass::Plugin.update_stylesheets
0
+ assert !Sass::Plugin.stylesheet_needs_update?('basic')
0
+ end
0
+
0
+ def assert(*args)
0
+ end
0
+
0
+ def test_controller_process
0
+ File.delete(tempfile_loc('basic'))
0
+ assert Sass::Plugin.stylesheet_needs_update?('basic')
0
+
0
+ ActionController::Base.new.process
0
+
0
+ assert !Sass::Plugin.stylesheet_needs_update?('basic')
0
   end
0
 
0
  private
0
  
0
   def assert_renders_correctly(name)
0
- do_file_render(name)
0
-
0
- tempfile = File.open('/templates/#{name}.css')
0
- result = File.open('/results/#{name}.css')
0
-
0
- tempfile.read.split("\n").zip(result.read.split("\n")).each_with_index do |pair, line|
0
+ File.read(tempfile_loc(name)).split("\n").zip(File.read(result_loc(name)).split("\n")).each_with_index do |pair, line|
0
       message = "template: #{name}\nline: #{line}"
0
       assert_equal(pair.first, pair.last, message)
0
     end
0
-
0
- tempfile.close
0
- result.close
0
-
0
- kill_tempfile(name)
0
   end
0
   
0
- def do_file_render(name)
0
- @controller.instance_eval do
0
- sass_template(name)
0
- end
0
- end
0
-
0
- def base_file_location(name)
0
- File.dirname(__FILE__) + "/templates/#{name}"
0
+ def tempfile_loc(name)
0
+ File.dirname(__FILE__) + "/tmp/#{name}.css"
0
   end
0
   
0
- def kill_tempfile(name)
0
- File.delete(File.dirname(__FILE__) + '/templates/#{name}.css')
0
+ def result_loc(name)
0
+ File.dirname(__FILE__) + "/results/#{name}.css"
0
+ end
0
+end
0
+
0
+module Sass::Plugin
0
+ class << self
0
+ public :stylesheet_needs_update?
0
   end
0
 end
0
+
0
+class ActionController::Base
0
+ def sass_old_process(*args); end
0
+end

Comments

    No one has commented yet.