tilt 1.0.1 → 1.1
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.
- data/README.md +3 -0
 - data/lib/tilt.rb +143 -7
 - data/test/markaby/locals.mab +1 -0
 - data/test/markaby/markaby.mab +1 -0
 - data/test/markaby/markaby_other_static.mab +1 -0
 - data/test/markaby/render_twice.mab +1 -0
 - data/test/markaby/scope.mab +1 -0
 - data/test/markaby/yielding.mab +2 -0
 - data/test/tilt_cache_test.rb +2 -3
 - data/test/tilt_coffeescripttemplate_test.rb +25 -0
 - data/test/tilt_markaby_test.rb +73 -0
 - data/test/tilt_nokogiritemplate_test.rb +54 -0
 - data/test/tilt_radiustemplate_test.rb +4 -0
 - data/test/tilt_sasstemplate_test.rb +11 -0
 - data/test/tilt_template_test.rb +5 -6
 - data/tilt.gemspec +14 -2
 - metadata +57 -4
 
    
        data/README.md
    CHANGED
    
    | 
         @@ -34,6 +34,9 @@ Support for these template engines is included with the package: 
     | 
|
| 
       34 
34 
     | 
    
         
             
                RedCloth                   .textile          redcloth
         
     | 
| 
       35 
35 
     | 
    
         
             
                RDoc                       .rdoc             rdoc
         
     | 
| 
       36 
36 
     | 
    
         
             
                Radius                     .radius           radius
         
     | 
| 
      
 37 
     | 
    
         
            +
                Markaby                    .mab              markaby
         
     | 
| 
      
 38 
     | 
    
         
            +
                Nokogiri                   .nokogiri         nokogiri
         
     | 
| 
      
 39 
     | 
    
         
            +
                CoffeeScript               .coffee           coffee-script (+node coffee)
         
     | 
| 
       37 
40 
     | 
    
         | 
| 
       38 
41 
     | 
    
         
             
            See [TEMPLATES.md][t] for detailed information on template engine
         
     | 
| 
       39 
42 
     | 
    
         
             
            options and supported features.
         
     | 
    
        data/lib/tilt.rb
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'digest/md5'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            module Tilt
         
     | 
| 
       4 
     | 
    
         
            -
              VERSION = '1. 
     | 
| 
      
 4 
     | 
    
         
            +
              VERSION = '1.1'
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
              @template_mappings = {}
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
         @@ -59,7 +59,7 @@ module Tilt 
     | 
|
| 
       59 
59 
     | 
    
         
             
              end
         
     | 
| 
       60 
60 
     | 
    
         | 
| 
       61 
61 
     | 
    
         
             
              # Base class for template implementations. Subclasses must implement
         
     | 
| 
       62 
     | 
    
         
            -
              # the #prepare method and one of the #evaluate or # 
     | 
| 
      
 62 
     | 
    
         
            +
              # the #prepare method and one of the #evaluate or #precompiled_template
         
     | 
| 
       63 
63 
     | 
    
         
             
              # methods.
         
     | 
| 
       64 
64 
     | 
    
         
             
              class Template
         
     | 
| 
       65 
65 
     | 
    
         
             
                # Template source; loaded from a file or given directly.
         
     | 
| 
         @@ -282,13 +282,18 @@ module Tilt 
     | 
|
| 
       282 
282 
     | 
    
         | 
| 
       283 
283 
     | 
    
         
             
                def compile_template_method(method_name, locals)
         
     | 
| 
       284 
284 
     | 
    
         
             
                  source, offset = precompiled(locals)
         
     | 
| 
       285 
     | 
    
         
            -
                  offset +=  
     | 
| 
       286 
     | 
    
         
            -
                  CompileSite. 
     | 
| 
      
 285 
     | 
    
         
            +
                  offset += 5
         
     | 
| 
      
 286 
     | 
    
         
            +
                  CompileSite.class_eval <<-RUBY, eval_file, line - offset
         
     | 
| 
       287 
287 
     | 
    
         
             
                    def #{method_name}(locals)
         
     | 
| 
       288 
     | 
    
         
            -
                       
     | 
| 
      
 288 
     | 
    
         
            +
                      Thread.current[:tilt_vars] = [self, locals]
         
     | 
| 
      
 289 
     | 
    
         
            +
                      class << self
         
     | 
| 
      
 290 
     | 
    
         
            +
                        this, locals = Thread.current[:tilt_vars]
         
     | 
| 
      
 291 
     | 
    
         
            +
                        this.instance_eval do
         
     | 
| 
      
 292 
     | 
    
         
            +
                          #{source}
         
     | 
| 
      
 293 
     | 
    
         
            +
                        end
         
     | 
| 
      
 294 
     | 
    
         
            +
                      end
         
     | 
| 
       289 
295 
     | 
    
         
             
                    end
         
     | 
| 
       290 
296 
     | 
    
         
             
                  RUBY
         
     | 
| 
       291 
     | 
    
         
            -
             
     | 
| 
       292 
297 
     | 
    
         
             
                  ObjectSpace.define_finalizer self,
         
     | 
| 
       293 
298 
     | 
    
         
             
                    Template.compiled_template_method_remover(CompileSite, method_name)
         
     | 
| 
       294 
299 
     | 
    
         
             
                end
         
     | 
| 
         @@ -306,6 +311,27 @@ module Tilt 
     | 
|
| 
       306 
311 
     | 
    
         
             
                    end
         
     | 
| 
       307 
312 
     | 
    
         
             
                  end
         
     | 
| 
       308 
313 
     | 
    
         
             
                end
         
     | 
| 
      
 314 
     | 
    
         
            +
             
     | 
| 
      
 315 
     | 
    
         
            +
                # Special case Ruby 1.9.1's broken yield.
         
     | 
| 
      
 316 
     | 
    
         
            +
                #
         
     | 
| 
      
 317 
     | 
    
         
            +
                # http://github.com/rtomayko/tilt/commit/20c01a5
         
     | 
| 
      
 318 
     | 
    
         
            +
                # http://redmine.ruby-lang.org/issues/show/3601
         
     | 
| 
      
 319 
     | 
    
         
            +
                #
         
     | 
| 
      
 320 
     | 
    
         
            +
                # Remove when 1.9.2 dominates 1.9.1 installs in the wild.
         
     | 
| 
      
 321 
     | 
    
         
            +
                if RUBY_VERSION =~ /^1.9.1/
         
     | 
| 
      
 322 
     | 
    
         
            +
                  undef compile_template_method
         
     | 
| 
      
 323 
     | 
    
         
            +
                  def compile_template_method(method_name, locals)
         
     | 
| 
      
 324 
     | 
    
         
            +
                    source, offset = precompiled(locals)
         
     | 
| 
      
 325 
     | 
    
         
            +
                    offset += 1
         
     | 
| 
      
 326 
     | 
    
         
            +
                    CompileSite.module_eval <<-RUBY, eval_file, line - offset
         
     | 
| 
      
 327 
     | 
    
         
            +
                      def #{method_name}(locals)
         
     | 
| 
      
 328 
     | 
    
         
            +
                        #{source}
         
     | 
| 
      
 329 
     | 
    
         
            +
                      end
         
     | 
| 
      
 330 
     | 
    
         
            +
                    RUBY
         
     | 
| 
      
 331 
     | 
    
         
            +
                    ObjectSpace.define_finalizer self,
         
     | 
| 
      
 332 
     | 
    
         
            +
                      Template.compiled_template_method_remover(CompileSite, method_name)
         
     | 
| 
      
 333 
     | 
    
         
            +
                  end
         
     | 
| 
      
 334 
     | 
    
         
            +
                end
         
     | 
| 
       309 
335 
     | 
    
         
             
              end
         
     | 
| 
       310 
336 
     | 
    
         | 
| 
       311 
337 
     | 
    
         
             
              # Extremely simple template cache implementation. Calling applications
         
     | 
| 
         @@ -528,11 +554,19 @@ module Tilt 
     | 
|
| 
       528 
554 
     | 
    
         | 
| 
       529 
555 
     | 
    
         
             
              private
         
     | 
| 
       530 
556 
     | 
    
         
             
                def sass_options
         
     | 
| 
       531 
     | 
    
         
            -
                  options.merge(:filename => eval_file, :line => line)
         
     | 
| 
      
 557 
     | 
    
         
            +
                  options.merge(:filename => eval_file, :line => line, :syntax => :sass)
         
     | 
| 
       532 
558 
     | 
    
         
             
                end
         
     | 
| 
       533 
559 
     | 
    
         
             
              end
         
     | 
| 
       534 
560 
     | 
    
         
             
              register 'sass', SassTemplate
         
     | 
| 
       535 
561 
     | 
    
         | 
| 
      
 562 
     | 
    
         
            +
              # Sass's new .scss type template implementation.
         
     | 
| 
      
 563 
     | 
    
         
            +
              class ScssTemplate < SassTemplate
         
     | 
| 
      
 564 
     | 
    
         
            +
              private
         
     | 
| 
      
 565 
     | 
    
         
            +
                def sass_options
         
     | 
| 
      
 566 
     | 
    
         
            +
                  options.merge(:filename => eval_file, :line => line, :syntax => :scss)
         
     | 
| 
      
 567 
     | 
    
         
            +
                end
         
     | 
| 
      
 568 
     | 
    
         
            +
              end
         
     | 
| 
      
 569 
     | 
    
         
            +
              register 'scss', ScssTemplate
         
     | 
| 
       536 
570 
     | 
    
         | 
| 
       537 
571 
     | 
    
         
             
              # Lessscss template implementation. See:
         
     | 
| 
       538 
572 
     | 
    
         
             
              # http://lesscss.org/
         
     | 
| 
         @@ -555,6 +589,65 @@ module Tilt 
     | 
|
| 
       555 
589 
     | 
    
         
             
              register 'less', LessTemplate
         
     | 
| 
       556 
590 
     | 
    
         | 
| 
       557 
591 
     | 
    
         | 
| 
      
 592 
     | 
    
         
            +
              # CoffeeScript template implementation. See:
         
     | 
| 
      
 593 
     | 
    
         
            +
              # http://coffeescript.org/
         
     | 
| 
      
 594 
     | 
    
         
            +
              #
         
     | 
| 
      
 595 
     | 
    
         
            +
              # CoffeeScript templates do not support object scopes, locals, or yield.
         
     | 
| 
      
 596 
     | 
    
         
            +
              class CoffeeScriptTemplate < Template
         
     | 
| 
      
 597 
     | 
    
         
            +
                @@default_no_wrap = false
         
     | 
| 
      
 598 
     | 
    
         
            +
             
     | 
| 
      
 599 
     | 
    
         
            +
                def self.default_no_wrap
         
     | 
| 
      
 600 
     | 
    
         
            +
                  @@default_no_wrap
         
     | 
| 
      
 601 
     | 
    
         
            +
                end
         
     | 
| 
      
 602 
     | 
    
         
            +
             
     | 
| 
      
 603 
     | 
    
         
            +
                def self.default_no_wrap=(value)
         
     | 
| 
      
 604 
     | 
    
         
            +
                  @@default_no_wrap = value
         
     | 
| 
      
 605 
     | 
    
         
            +
                end
         
     | 
| 
      
 606 
     | 
    
         
            +
             
     | 
| 
      
 607 
     | 
    
         
            +
                def initialize_engine
         
     | 
| 
      
 608 
     | 
    
         
            +
                  return if defined? ::CoffeeScript
         
     | 
| 
      
 609 
     | 
    
         
            +
                  require_template_library 'coffee_script'
         
     | 
| 
      
 610 
     | 
    
         
            +
                end
         
     | 
| 
      
 611 
     | 
    
         
            +
             
     | 
| 
      
 612 
     | 
    
         
            +
                def prepare
         
     | 
| 
      
 613 
     | 
    
         
            +
                  @no_wrap = options.key?(:no_wrap) ? options[:no_wrap] :
         
     | 
| 
      
 614 
     | 
    
         
            +
                    self.class.default_no_wrap
         
     | 
| 
      
 615 
     | 
    
         
            +
                end
         
     | 
| 
      
 616 
     | 
    
         
            +
             
     | 
| 
      
 617 
     | 
    
         
            +
                def evaluate(scope, locals, &block)
         
     | 
| 
      
 618 
     | 
    
         
            +
                  @output ||= CoffeeScript.compile(data, :no_wrap => @no_wrap)
         
     | 
| 
      
 619 
     | 
    
         
            +
                end
         
     | 
| 
      
 620 
     | 
    
         
            +
              end
         
     | 
| 
      
 621 
     | 
    
         
            +
              register 'coffee', CoffeeScriptTemplate
         
     | 
| 
      
 622 
     | 
    
         
            +
             
     | 
| 
      
 623 
     | 
    
         
            +
             
     | 
| 
      
 624 
     | 
    
         
            +
              # Nokogiri template implementation. See:
         
     | 
| 
      
 625 
     | 
    
         
            +
              # http://nokogiri.org/
         
     | 
| 
      
 626 
     | 
    
         
            +
              class NokogiriTemplate < Template
         
     | 
| 
      
 627 
     | 
    
         
            +
                def initialize_engine
         
     | 
| 
      
 628 
     | 
    
         
            +
                  return if defined?(::Nokogiri)
         
     | 
| 
      
 629 
     | 
    
         
            +
                  require_template_library 'nokogiri'
         
     | 
| 
      
 630 
     | 
    
         
            +
                end
         
     | 
| 
      
 631 
     | 
    
         
            +
             
     | 
| 
      
 632 
     | 
    
         
            +
                def prepare; end
         
     | 
| 
      
 633 
     | 
    
         
            +
             
     | 
| 
      
 634 
     | 
    
         
            +
                def evaluate(scope, locals, &block)
         
     | 
| 
      
 635 
     | 
    
         
            +
                  xml = ::Nokogiri::XML::Builder.new
         
     | 
| 
      
 636 
     | 
    
         
            +
                  if data.respond_to?(:to_str)
         
     | 
| 
      
 637 
     | 
    
         
            +
                    locals[:xml] = xml
         
     | 
| 
      
 638 
     | 
    
         
            +
                    super(scope, locals, &block)
         
     | 
| 
      
 639 
     | 
    
         
            +
                  elsif data.kind_of?(Proc)
         
     | 
| 
      
 640 
     | 
    
         
            +
                    data.call(xml)
         
     | 
| 
      
 641 
     | 
    
         
            +
                  end
         
     | 
| 
      
 642 
     | 
    
         
            +
                  xml.to_xml
         
     | 
| 
      
 643 
     | 
    
         
            +
                end
         
     | 
| 
      
 644 
     | 
    
         
            +
             
     | 
| 
      
 645 
     | 
    
         
            +
                def precompiled_template(locals)
         
     | 
| 
      
 646 
     | 
    
         
            +
                  data.to_str
         
     | 
| 
      
 647 
     | 
    
         
            +
                end
         
     | 
| 
      
 648 
     | 
    
         
            +
              end
         
     | 
| 
      
 649 
     | 
    
         
            +
              register 'nokogiri', NokogiriTemplate
         
     | 
| 
      
 650 
     | 
    
         
            +
             
     | 
| 
       558 
651 
     | 
    
         
             
              # Builder template implementation. See:
         
     | 
| 
       559 
652 
     | 
    
         
             
              # http://builder.rubyforge.org/
         
     | 
| 
       560 
653 
     | 
    
         
             
              class BuilderTemplate < Template
         
     | 
| 
         @@ -729,4 +822,47 @@ module Tilt 
     | 
|
| 
       729 
822 
     | 
    
         
             
                end
         
     | 
| 
       730 
823 
     | 
    
         
             
              end
         
     | 
| 
       731 
824 
     | 
    
         
             
              register 'radius', RadiusTemplate
         
     | 
| 
      
 825 
     | 
    
         
            +
             
     | 
| 
      
 826 
     | 
    
         
            +
             
     | 
| 
      
 827 
     | 
    
         
            +
              # Markaby
         
     | 
| 
      
 828 
     | 
    
         
            +
              # http://github.com/markaby/markaby
         
     | 
| 
      
 829 
     | 
    
         
            +
              class MarkabyTemplate < Template
         
     | 
| 
      
 830 
     | 
    
         
            +
                def self.builder_class
         
     | 
| 
      
 831 
     | 
    
         
            +
                  @builder_class ||= Class.new(Markaby::Builder) do
         
     | 
| 
      
 832 
     | 
    
         
            +
                    def __capture_markaby_tilt__(&block)
         
     | 
| 
      
 833 
     | 
    
         
            +
                      __run_markaby_tilt__ do
         
     | 
| 
      
 834 
     | 
    
         
            +
                        text capture(&block)
         
     | 
| 
      
 835 
     | 
    
         
            +
                      end
         
     | 
| 
      
 836 
     | 
    
         
            +
                    end
         
     | 
| 
      
 837 
     | 
    
         
            +
                  end
         
     | 
| 
      
 838 
     | 
    
         
            +
                end
         
     | 
| 
      
 839 
     | 
    
         
            +
             
     | 
| 
      
 840 
     | 
    
         
            +
                def initialize_engine
         
     | 
| 
      
 841 
     | 
    
         
            +
                  return if defined? ::Markaby
         
     | 
| 
      
 842 
     | 
    
         
            +
                  require_template_library 'markaby'
         
     | 
| 
      
 843 
     | 
    
         
            +
                end
         
     | 
| 
      
 844 
     | 
    
         
            +
             
     | 
| 
      
 845 
     | 
    
         
            +
                def prepare
         
     | 
| 
      
 846 
     | 
    
         
            +
                end
         
     | 
| 
      
 847 
     | 
    
         
            +
             
     | 
| 
      
 848 
     | 
    
         
            +
                def evaluate(scope, locals, &block)
         
     | 
| 
      
 849 
     | 
    
         
            +
                  builder = self.class.builder_class.new({}, scope)
         
     | 
| 
      
 850 
     | 
    
         
            +
                  builder.locals = locals
         
     | 
| 
      
 851 
     | 
    
         
            +
             
     | 
| 
      
 852 
     | 
    
         
            +
                  if block
         
     | 
| 
      
 853 
     | 
    
         
            +
                    builder.instance_eval <<-CODE, __FILE__, __LINE__
         
     | 
| 
      
 854 
     | 
    
         
            +
                      def __run_markaby_tilt__
         
     | 
| 
      
 855 
     | 
    
         
            +
                        #{data}
         
     | 
| 
      
 856 
     | 
    
         
            +
                      end
         
     | 
| 
      
 857 
     | 
    
         
            +
                    CODE
         
     | 
| 
      
 858 
     | 
    
         
            +
             
     | 
| 
      
 859 
     | 
    
         
            +
                    builder.__capture_markaby_tilt__(&block)
         
     | 
| 
      
 860 
     | 
    
         
            +
                  else
         
     | 
| 
      
 861 
     | 
    
         
            +
                    builder.instance_eval(data, __FILE__, __LINE__)
         
     | 
| 
      
 862 
     | 
    
         
            +
                  end
         
     | 
| 
      
 863 
     | 
    
         
            +
             
     | 
| 
      
 864 
     | 
    
         
            +
                  builder.to_s
         
     | 
| 
      
 865 
     | 
    
         
            +
                end
         
     | 
| 
      
 866 
     | 
    
         
            +
              end
         
     | 
| 
      
 867 
     | 
    
         
            +
              register 'mab', MarkabyTemplate
         
     | 
| 
       732 
868 
     | 
    
         
             
            end
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            li foo
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            text "hello from markaby!"
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            text "_why?"
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            text "foo"
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            li foo
         
     | 
    
        data/test/tilt_cache_test.rb
    CHANGED
    
    | 
         @@ -14,10 +14,9 @@ class TiltCacheTest < Test::Unit::TestCase 
     | 
|
| 
       14 
14 
     | 
    
         | 
| 
       15 
15 
     | 
    
         
             
              test "caching with multiple complex arguments to #fetch" do
         
     | 
| 
       16 
16 
     | 
    
         
             
                template = nil
         
     | 
| 
       17 
     | 
    
         
            -
                 
     | 
| 
       18 
     | 
    
         
            -
                result = @cache.fetch(*args) { template = Tilt::StringTemplate.new {''} }
         
     | 
| 
      
 17 
     | 
    
         
            +
                result = @cache.fetch('hello', {:foo => 'bar', :baz => 'bizzle'}) { template = Tilt::StringTemplate.new {''} }
         
     | 
| 
       19 
18 
     | 
    
         
             
                assert_same template, result
         
     | 
| 
       20 
     | 
    
         
            -
                result = @cache.fetch( 
     | 
| 
      
 19 
     | 
    
         
            +
                result = @cache.fetch('hello', {:foo => 'bar', :baz => 'bizzle'}) { fail 'should be cached' }
         
     | 
| 
       21 
20 
     | 
    
         
             
                assert_same template, result
         
     | 
| 
       22 
21 
     | 
    
         
             
              end
         
     | 
| 
       23 
22 
     | 
    
         | 
| 
         @@ -0,0 +1,25 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'contest'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'tilt'
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            begin
         
     | 
| 
      
 5 
     | 
    
         
            +
              require 'coffee_script'
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
              class CoffeeScriptTemplateTest < Test::Unit::TestCase
         
     | 
| 
      
 8 
     | 
    
         
            +
                test "is registered for '.coffee' files" do
         
     | 
| 
      
 9 
     | 
    
         
            +
                  assert_equal Tilt::CoffeeScriptTemplate, Tilt['test.coffee']
         
     | 
| 
      
 10 
     | 
    
         
            +
                end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                test "compiles and evaluates the template on #render" do
         
     | 
| 
      
 13 
     | 
    
         
            +
                  template = Tilt::CoffeeScriptTemplate.new { |t| "puts 'Hello, World!'\n" }
         
     | 
| 
      
 14 
     | 
    
         
            +
                  assert_equal "(function() {\n  puts('Hello, World!');\n})();\n", template.render
         
     | 
| 
      
 15 
     | 
    
         
            +
                end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                test "disabling coffee-script wrapper" do
         
     | 
| 
      
 18 
     | 
    
         
            +
                  template = Tilt::CoffeeScriptTemplate.new(:no_wrap => true) { |t| "puts 'Hello, World!'\n" }
         
     | 
| 
      
 19 
     | 
    
         
            +
                  assert_equal "puts('Hello, World!');", template.render
         
     | 
| 
      
 20 
     | 
    
         
            +
                end
         
     | 
| 
      
 21 
     | 
    
         
            +
              end
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
            rescue LoadError => boom
         
     | 
| 
      
 24 
     | 
    
         
            +
              warn "Tilt::CoffeeScriptTemplate (disabled)\n"
         
     | 
| 
      
 25 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,73 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'contest'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'tilt'
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            begin
         
     | 
| 
      
 5 
     | 
    
         
            +
              require 'markaby'
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
              class MarkabyTiltTest <  Test::Unit::TestCase
         
     | 
| 
      
 8 
     | 
    
         
            +
                def setup
         
     | 
| 
      
 9 
     | 
    
         
            +
                  @block = lambda do |t|
         
     | 
| 
      
 10 
     | 
    
         
            +
                    File.read(File.dirname(__FILE__) + "/#{t.file}")
         
     | 
| 
      
 11 
     | 
    
         
            +
                  end
         
     | 
| 
      
 12 
     | 
    
         
            +
                end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                test "should be able to render a markaby template with static html" do
         
     | 
| 
      
 15 
     | 
    
         
            +
                  tilt = Tilt::MarkabyTemplate.new("markaby/markaby.mab", &@block)
         
     | 
| 
      
 16 
     | 
    
         
            +
                  assert_equal "hello from markaby!", tilt.render
         
     | 
| 
      
 17 
     | 
    
         
            +
                end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                test "should use the contents of the template" do
         
     | 
| 
      
 20 
     | 
    
         
            +
                  tilt = ::Tilt::MarkabyTemplate.new("markaby/markaby_other_static.mab", &@block)
         
     | 
| 
      
 21 
     | 
    
         
            +
                  assert_equal "_why?", tilt.render
         
     | 
| 
      
 22 
     | 
    
         
            +
                end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                test "should render from a string (given as data)" do
         
     | 
| 
      
 25 
     | 
    
         
            +
                  tilt = ::Tilt::MarkabyTemplate.new { "html do; end" }
         
     | 
| 
      
 26 
     | 
    
         
            +
                  assert_equal "<html></html>", tilt.render
         
     | 
| 
      
 27 
     | 
    
         
            +
                end
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
                test "should evaluate a template file in the scope given" do
         
     | 
| 
      
 30 
     | 
    
         
            +
                  scope = Object.new
         
     | 
| 
      
 31 
     | 
    
         
            +
                  def scope.foo
         
     | 
| 
      
 32 
     | 
    
         
            +
                    "bar"
         
     | 
| 
      
 33 
     | 
    
         
            +
                  end
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                  tilt = ::Tilt::MarkabyTemplate.new("markaby/scope.mab", &@block)
         
     | 
| 
      
 36 
     | 
    
         
            +
                  assert_equal "<li>bar</li>", tilt.render(scope)
         
     | 
| 
      
 37 
     | 
    
         
            +
                end
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
                test "should pass locals to the template" do
         
     | 
| 
      
 40 
     | 
    
         
            +
                  tilt = ::Tilt::MarkabyTemplate.new("markaby/locals.mab", &@block)
         
     | 
| 
      
 41 
     | 
    
         
            +
                  assert_equal "<li>bar</li>", tilt.render(Object.new, { :foo => "bar" })
         
     | 
| 
      
 42 
     | 
    
         
            +
                end
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                test "should yield to the block given" do
         
     | 
| 
      
 45 
     | 
    
         
            +
                  tilt = ::Tilt::MarkabyTemplate.new("markaby/yielding.mab", &@block)
         
     | 
| 
      
 46 
     | 
    
         
            +
                  eval_scope = Markaby::Builder.new
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                  output = tilt.render(Object.new, {}) do
         
     | 
| 
      
 49 
     | 
    
         
            +
                    text("Joe")
         
     | 
| 
      
 50 
     | 
    
         
            +
                  end
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
                  assert_equal "Hey Joe", output
         
     | 
| 
      
 53 
     | 
    
         
            +
                end
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
                test "should be able to render two templates in a row" do
         
     | 
| 
      
 56 
     | 
    
         
            +
                  tilt = ::Tilt::MarkabyTemplate.new("markaby/render_twice.mab", &@block)
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
                  assert_equal "foo", tilt.render
         
     | 
| 
      
 59 
     | 
    
         
            +
                  assert_equal "foo", tilt.render
         
     | 
| 
      
 60 
     | 
    
         
            +
                end
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
                test "should retrieve a Tilt::MarkabyTemplate when calling Tilt['hello.mab']" do
         
     | 
| 
      
 63 
     | 
    
         
            +
                  assert_equal Tilt::MarkabyTemplate, ::Tilt['./markaby/markaby.mab']
         
     | 
| 
      
 64 
     | 
    
         
            +
                end
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
                test "should return a new instance of the implementation class (when calling Tilt.new)" do
         
     | 
| 
      
 67 
     | 
    
         
            +
                  assert ::Tilt.new(File.dirname(__FILE__) + "/markaby/markaby.mab").kind_of?(Tilt::MarkabyTemplate)
         
     | 
| 
      
 68 
     | 
    
         
            +
                end
         
     | 
| 
      
 69 
     | 
    
         
            +
              end
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
            rescue LoadError => boom
         
     | 
| 
      
 72 
     | 
    
         
            +
              warn "Tilt::MarkabyTemplate (disabled)\n"
         
     | 
| 
      
 73 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,54 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'contest'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'tilt'
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            begin
         
     | 
| 
      
 5 
     | 
    
         
            +
              require 'nokogiri'
         
     | 
| 
      
 6 
     | 
    
         
            +
              class NokogiriTemplateTest < Test::Unit::TestCase
         
     | 
| 
      
 7 
     | 
    
         
            +
                test "registered for '.nokogiri' files" do
         
     | 
| 
      
 8 
     | 
    
         
            +
                  assert_equal Tilt::NokogiriTemplate, Tilt['test.nokogiri']
         
     | 
| 
      
 9 
     | 
    
         
            +
                  assert_equal Tilt::NokogiriTemplate, Tilt['test.xml.nokogiri']
         
     | 
| 
      
 10 
     | 
    
         
            +
                end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                test "preparing and evaluating the template on #render" do
         
     | 
| 
      
 13 
     | 
    
         
            +
                  template = Tilt::NokogiriTemplate.new { |t| "xml.em 'Hello World!'" }
         
     | 
| 
      
 14 
     | 
    
         
            +
                  doc = Nokogiri.XML template.render
         
     | 
| 
      
 15 
     | 
    
         
            +
                  assert_equal 'Hello World!', doc.root.text
         
     | 
| 
      
 16 
     | 
    
         
            +
                  assert_equal 'em', doc.root.name
         
     | 
| 
      
 17 
     | 
    
         
            +
                end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                test "passing locals" do
         
     | 
| 
      
 20 
     | 
    
         
            +
                  template = Tilt::NokogiriTemplate.new { "xml.em('Hey ' + name + '!')" }
         
     | 
| 
      
 21 
     | 
    
         
            +
                  doc = Nokogiri.XML template.render(Object.new, :name => 'Joe')
         
     | 
| 
      
 22 
     | 
    
         
            +
                  assert_equal 'Hey Joe!', doc.root.text
         
     | 
| 
      
 23 
     | 
    
         
            +
                  assert_equal 'em', doc.root.name
         
     | 
| 
      
 24 
     | 
    
         
            +
                end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                test "evaluating in an object scope" do
         
     | 
| 
      
 27 
     | 
    
         
            +
                  template = Tilt::NokogiriTemplate.new { "xml.em('Hey ' + @name + '!')" }
         
     | 
| 
      
 28 
     | 
    
         
            +
                  scope = Object.new
         
     | 
| 
      
 29 
     | 
    
         
            +
                  scope.instance_variable_set :@name, 'Joe'
         
     | 
| 
      
 30 
     | 
    
         
            +
                  doc = Nokogiri.XML template.render(scope)
         
     | 
| 
      
 31 
     | 
    
         
            +
                  assert_equal 'Hey Joe!', doc.root.text
         
     | 
| 
      
 32 
     | 
    
         
            +
                  assert_equal 'em', doc.root.name
         
     | 
| 
      
 33 
     | 
    
         
            +
                end
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                test "passing a block for yield" do
         
     | 
| 
      
 36 
     | 
    
         
            +
                  template = Tilt::NokogiriTemplate.new { "xml.em('Hey ' + yield + '!')" }
         
     | 
| 
      
 37 
     | 
    
         
            +
                  doc = Nokogiri.XML template.render { 'Joe' }
         
     | 
| 
      
 38 
     | 
    
         
            +
                  assert_equal 'Hey Joe!', doc.root.text
         
     | 
| 
      
 39 
     | 
    
         
            +
                  assert_equal 'em', doc.root.name
         
     | 
| 
      
 40 
     | 
    
         
            +
                end
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
                test "block style templates" do
         
     | 
| 
      
 43 
     | 
    
         
            +
                  template =
         
     | 
| 
      
 44 
     | 
    
         
            +
                    Tilt::NokogiriTemplate.new do |t|
         
     | 
| 
      
 45 
     | 
    
         
            +
                      lambda { |xml| xml.em('Hey Joe!') }
         
     | 
| 
      
 46 
     | 
    
         
            +
                    end
         
     | 
| 
      
 47 
     | 
    
         
            +
                  doc = Nokogiri.XML template.render template.render
         
     | 
| 
      
 48 
     | 
    
         
            +
                  assert_equal 'Hey Joe!', doc.root.text
         
     | 
| 
      
 49 
     | 
    
         
            +
                  assert_equal 'em', doc.root.name
         
     | 
| 
      
 50 
     | 
    
         
            +
                end
         
     | 
| 
      
 51 
     | 
    
         
            +
              end
         
     | 
| 
      
 52 
     | 
    
         
            +
            rescue LoadError
         
     | 
| 
      
 53 
     | 
    
         
            +
              warn "Tilt::NokogiriTemplate (disabled)"
         
     | 
| 
      
 54 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -2,6 +2,10 @@ require 'contest' 
     | 
|
| 
       2 
2 
     | 
    
         
             
            require 'tilt'
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
            begin
         
     | 
| 
      
 5 
     | 
    
         
            +
              # Disable radius tests under Ruby versions >= 1.9.1 since it's still buggy.
         
     | 
| 
      
 6 
     | 
    
         
            +
              # Remove when fixed upstream.
         
     | 
| 
      
 7 
     | 
    
         
            +
              raise LoadError if RUBY_VERSION >= "1.9.1"
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
       5 
9 
     | 
    
         
             
              require 'radius'
         
     | 
| 
       6 
10 
     | 
    
         | 
| 
       7 
11 
     | 
    
         
             
              class RadiusTemplateTest < Test::Unit::TestCase
         
     | 
| 
         @@ -16,6 +16,17 @@ begin 
     | 
|
| 
       16 
16 
     | 
    
         
             
                end
         
     | 
| 
       17 
17 
     | 
    
         
             
              end
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
      
 19 
     | 
    
         
            +
              class ScssTemplateTest < Test::Unit::TestCase
         
     | 
| 
      
 20 
     | 
    
         
            +
                test "is registered for '.scss' files" do
         
     | 
| 
      
 21 
     | 
    
         
            +
                  assert_equal Tilt::ScssTemplate, Tilt['test.scss']
         
     | 
| 
      
 22 
     | 
    
         
            +
                end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                test "compiles and evaluates the template on #render" do
         
     | 
| 
      
 25 
     | 
    
         
            +
                  template = Tilt::ScssTemplate.new { |t| "#main {\n  background-color: #0000f1;\n}" }
         
     | 
| 
      
 26 
     | 
    
         
            +
                  assert_equal "#main {\n  background-color: #0000f1; }\n", template.render
         
     | 
| 
      
 27 
     | 
    
         
            +
                end
         
     | 
| 
      
 28 
     | 
    
         
            +
              end
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
       19 
30 
     | 
    
         
             
            rescue LoadError => boom
         
     | 
| 
       20 
31 
     | 
    
         
             
              warn "Tilt::SassTemplate (disabled)\n"
         
     | 
| 
       21 
32 
     | 
    
         
             
            end
         
     | 
    
        data/test/tilt_template_test.rb
    CHANGED
    
    | 
         @@ -150,10 +150,9 @@ class TiltTemplateTest < Test::Unit::TestCase 
     | 
|
| 
       150 
150 
     | 
    
         
             
                include Tilt::CompileSite
         
     | 
| 
       151 
151 
     | 
    
         
             
              end
         
     | 
| 
       152 
152 
     | 
    
         | 
| 
       153 
     | 
    
         
            -
               
     | 
| 
       154 
     | 
    
         
            -
             
     | 
| 
       155 
     | 
    
         
            -
             
     | 
| 
       156 
     | 
    
         
            -
             
     | 
| 
       157 
     | 
    
         
            -
               
     | 
| 
       158 
     | 
    
         
            -
              # end
         
     | 
| 
      
 153 
     | 
    
         
            +
              test "template which accesses a constant with Tilt::CompileSite" do
         
     | 
| 
      
 154 
     | 
    
         
            +
                flunk "known broken under 1.9.1" if RUBY_VERSION =~ /^1.9.1/
         
     | 
| 
      
 155 
     | 
    
         
            +
                inst = SourceGeneratingMockTemplate.new { |t| 'Hey #{CONSTANT}!' }
         
     | 
| 
      
 156 
     | 
    
         
            +
                assert_equal "Hey Bob!", inst.render(FastPerson.new("Joe"))
         
     | 
| 
      
 157 
     | 
    
         
            +
              end
         
     | 
| 
       159 
158 
     | 
    
         
             
            end
         
     | 
    
        data/tilt.gemspec
    CHANGED
    
    | 
         @@ -3,8 +3,8 @@ Gem::Specification.new do |s| 
     | 
|
| 
       3 
3 
     | 
    
         
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
              s.name = 'tilt'
         
     | 
| 
       6 
     | 
    
         
            -
              s.version = '1. 
     | 
| 
       7 
     | 
    
         
            -
              s.date = '2010- 
     | 
| 
      
 6 
     | 
    
         
            +
              s.version = '1.1'
         
     | 
| 
      
 7 
     | 
    
         
            +
              s.date = '2010-09-10'
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
       9 
9 
     | 
    
         
             
              s.description = "Generic interface to multiple Ruby template engines"
         
     | 
| 
       10 
10 
     | 
    
         
             
              s.summary     = s.description
         
     | 
| 
         @@ -21,14 +21,23 @@ Gem::Specification.new do |s| 
     | 
|
| 
       21 
21 
     | 
    
         
             
                bin/tilt
         
     | 
| 
       22 
22 
     | 
    
         
             
                lib/tilt.rb
         
     | 
| 
       23 
23 
     | 
    
         
             
                test/contest.rb
         
     | 
| 
      
 24 
     | 
    
         
            +
                test/markaby/locals.mab
         
     | 
| 
      
 25 
     | 
    
         
            +
                test/markaby/markaby.mab
         
     | 
| 
      
 26 
     | 
    
         
            +
                test/markaby/markaby_other_static.mab
         
     | 
| 
      
 27 
     | 
    
         
            +
                test/markaby/render_twice.mab
         
     | 
| 
      
 28 
     | 
    
         
            +
                test/markaby/scope.mab
         
     | 
| 
      
 29 
     | 
    
         
            +
                test/markaby/yielding.mab
         
     | 
| 
       24 
30 
     | 
    
         
             
                test/tilt_buildertemplate_test.rb
         
     | 
| 
       25 
31 
     | 
    
         
             
                test/tilt_cache_test.rb
         
     | 
| 
      
 32 
     | 
    
         
            +
                test/tilt_coffeescripttemplate_test.rb
         
     | 
| 
       26 
33 
     | 
    
         
             
                test/tilt_compilesite_test.rb
         
     | 
| 
       27 
34 
     | 
    
         
             
                test/tilt_erbtemplate_test.rb
         
     | 
| 
       28 
35 
     | 
    
         
             
                test/tilt_erubistemplate_test.rb
         
     | 
| 
       29 
36 
     | 
    
         
             
                test/tilt_hamltemplate_test.rb
         
     | 
| 
       30 
37 
     | 
    
         
             
                test/tilt_lesstemplate_test.rb
         
     | 
| 
       31 
38 
     | 
    
         
             
                test/tilt_liquidtemplate_test.rb
         
     | 
| 
      
 39 
     | 
    
         
            +
                test/tilt_markaby_test.rb
         
     | 
| 
      
 40 
     | 
    
         
            +
                test/tilt_nokogiritemplate_test.rb
         
     | 
| 
       32 
41 
     | 
    
         
             
                test/tilt_radiustemplate_test.rb
         
     | 
| 
       33 
42 
     | 
    
         
             
                test/tilt_rdiscounttemplate_test.rb
         
     | 
| 
       34 
43 
     | 
    
         
             
                test/tilt_rdoctemplate_test.rb
         
     | 
| 
         @@ -53,6 +62,9 @@ Gem::Specification.new do |s| 
     | 
|
| 
       53 
62 
     | 
    
         
             
              s.add_development_dependency 'liquid'
         
     | 
| 
       54 
63 
     | 
    
         
             
              s.add_development_dependency 'less'
         
     | 
| 
       55 
64 
     | 
    
         
             
              s.add_development_dependency 'radius'
         
     | 
| 
      
 65 
     | 
    
         
            +
              s.add_development_dependency 'nokogiri'
         
     | 
| 
      
 66 
     | 
    
         
            +
              s.add_development_dependency 'markaby'
         
     | 
| 
      
 67 
     | 
    
         
            +
              s.add_development_dependency 'coffee-script'
         
     | 
| 
       56 
68 
     | 
    
         | 
| 
       57 
69 
     | 
    
         
             
              s.extra_rdoc_files = %w[COPYING]
         
     | 
| 
       58 
70 
     | 
    
         | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,13 +1,12 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification 
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: tilt
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       4 
     | 
    
         
            -
              hash:  
     | 
| 
      
 4 
     | 
    
         
            +
              hash: 13
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       6 
6 
     | 
    
         
             
              segments: 
         
     | 
| 
       7 
7 
     | 
    
         
             
              - 1
         
     | 
| 
       8 
     | 
    
         
            -
              - 0
         
     | 
| 
       9 
8 
     | 
    
         
             
              - 1
         
     | 
| 
       10 
     | 
    
         
            -
              version: 1. 
     | 
| 
      
 9 
     | 
    
         
            +
              version: "1.1"
         
     | 
| 
       11 
10 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       12 
11 
     | 
    
         
             
            authors: 
         
     | 
| 
       13 
12 
     | 
    
         
             
            - Ryan Tomayko
         
     | 
| 
         @@ -15,7 +14,7 @@ autorequire: 
     | 
|
| 
       15 
14 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       16 
15 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       17 
16 
     | 
    
         | 
| 
       18 
     | 
    
         
            -
            date: 2010- 
     | 
| 
      
 17 
     | 
    
         
            +
            date: 2010-09-10 00:00:00 -07:00
         
     | 
| 
       19 
18 
     | 
    
         
             
            default_executable: tilt
         
     | 
| 
       20 
19 
     | 
    
         
             
            dependencies: 
         
     | 
| 
       21 
20 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
         @@ -132,6 +131,48 @@ dependencies: 
     | 
|
| 
       132 
131 
     | 
    
         
             
                    version: "0"
         
     | 
| 
       133 
132 
     | 
    
         
             
              type: :development
         
     | 
| 
       134 
133 
     | 
    
         
             
              version_requirements: *id008
         
     | 
| 
      
 134 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency 
         
     | 
| 
      
 135 
     | 
    
         
            +
              name: nokogiri
         
     | 
| 
      
 136 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 137 
     | 
    
         
            +
              requirement: &id009 !ruby/object:Gem::Requirement 
         
     | 
| 
      
 138 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 139 
     | 
    
         
            +
                requirements: 
         
     | 
| 
      
 140 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 141 
     | 
    
         
            +
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 142 
     | 
    
         
            +
                    hash: 3
         
     | 
| 
      
 143 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 144 
     | 
    
         
            +
                    - 0
         
     | 
| 
      
 145 
     | 
    
         
            +
                    version: "0"
         
     | 
| 
      
 146 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 147 
     | 
    
         
            +
              version_requirements: *id009
         
     | 
| 
      
 148 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency 
         
     | 
| 
      
 149 
     | 
    
         
            +
              name: markaby
         
     | 
| 
      
 150 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 151 
     | 
    
         
            +
              requirement: &id010 !ruby/object:Gem::Requirement 
         
     | 
| 
      
 152 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 153 
     | 
    
         
            +
                requirements: 
         
     | 
| 
      
 154 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 155 
     | 
    
         
            +
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 156 
     | 
    
         
            +
                    hash: 3
         
     | 
| 
      
 157 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 158 
     | 
    
         
            +
                    - 0
         
     | 
| 
      
 159 
     | 
    
         
            +
                    version: "0"
         
     | 
| 
      
 160 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 161 
     | 
    
         
            +
              version_requirements: *id010
         
     | 
| 
      
 162 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency 
         
     | 
| 
      
 163 
     | 
    
         
            +
              name: coffee-script
         
     | 
| 
      
 164 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 165 
     | 
    
         
            +
              requirement: &id011 !ruby/object:Gem::Requirement 
         
     | 
| 
      
 166 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 167 
     | 
    
         
            +
                requirements: 
         
     | 
| 
      
 168 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 169 
     | 
    
         
            +
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 170 
     | 
    
         
            +
                    hash: 3
         
     | 
| 
      
 171 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 172 
     | 
    
         
            +
                    - 0
         
     | 
| 
      
 173 
     | 
    
         
            +
                    version: "0"
         
     | 
| 
      
 174 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 175 
     | 
    
         
            +
              version_requirements: *id011
         
     | 
| 
       135 
176 
     | 
    
         
             
            description: Generic interface to multiple Ruby template engines
         
     | 
| 
       136 
177 
     | 
    
         
             
            email: r@tomayko.com
         
     | 
| 
       137 
178 
     | 
    
         
             
            executables: 
         
     | 
| 
         @@ -148,14 +189,23 @@ files: 
     | 
|
| 
       148 
189 
     | 
    
         
             
            - bin/tilt
         
     | 
| 
       149 
190 
     | 
    
         
             
            - lib/tilt.rb
         
     | 
| 
       150 
191 
     | 
    
         
             
            - test/contest.rb
         
     | 
| 
      
 192 
     | 
    
         
            +
            - test/markaby/locals.mab
         
     | 
| 
      
 193 
     | 
    
         
            +
            - test/markaby/markaby.mab
         
     | 
| 
      
 194 
     | 
    
         
            +
            - test/markaby/markaby_other_static.mab
         
     | 
| 
      
 195 
     | 
    
         
            +
            - test/markaby/render_twice.mab
         
     | 
| 
      
 196 
     | 
    
         
            +
            - test/markaby/scope.mab
         
     | 
| 
      
 197 
     | 
    
         
            +
            - test/markaby/yielding.mab
         
     | 
| 
       151 
198 
     | 
    
         
             
            - test/tilt_buildertemplate_test.rb
         
     | 
| 
       152 
199 
     | 
    
         
             
            - test/tilt_cache_test.rb
         
     | 
| 
      
 200 
     | 
    
         
            +
            - test/tilt_coffeescripttemplate_test.rb
         
     | 
| 
       153 
201 
     | 
    
         
             
            - test/tilt_compilesite_test.rb
         
     | 
| 
       154 
202 
     | 
    
         
             
            - test/tilt_erbtemplate_test.rb
         
     | 
| 
       155 
203 
     | 
    
         
             
            - test/tilt_erubistemplate_test.rb
         
     | 
| 
       156 
204 
     | 
    
         
             
            - test/tilt_hamltemplate_test.rb
         
     | 
| 
       157 
205 
     | 
    
         
             
            - test/tilt_lesstemplate_test.rb
         
     | 
| 
       158 
206 
     | 
    
         
             
            - test/tilt_liquidtemplate_test.rb
         
     | 
| 
      
 207 
     | 
    
         
            +
            - test/tilt_markaby_test.rb
         
     | 
| 
      
 208 
     | 
    
         
            +
            - test/tilt_nokogiritemplate_test.rb
         
     | 
| 
       159 
209 
     | 
    
         
             
            - test/tilt_radiustemplate_test.rb
         
     | 
| 
       160 
210 
     | 
    
         
             
            - test/tilt_rdiscounttemplate_test.rb
         
     | 
| 
       161 
211 
     | 
    
         
             
            - test/tilt_rdoctemplate_test.rb
         
     | 
| 
         @@ -207,12 +257,15 @@ summary: Generic interface to multiple Ruby template engines 
     | 
|
| 
       207 
257 
     | 
    
         
             
            test_files: 
         
     | 
| 
       208 
258 
     | 
    
         
             
            - test/tilt_buildertemplate_test.rb
         
     | 
| 
       209 
259 
     | 
    
         
             
            - test/tilt_cache_test.rb
         
     | 
| 
      
 260 
     | 
    
         
            +
            - test/tilt_coffeescripttemplate_test.rb
         
     | 
| 
       210 
261 
     | 
    
         
             
            - test/tilt_compilesite_test.rb
         
     | 
| 
       211 
262 
     | 
    
         
             
            - test/tilt_erbtemplate_test.rb
         
     | 
| 
       212 
263 
     | 
    
         
             
            - test/tilt_erubistemplate_test.rb
         
     | 
| 
       213 
264 
     | 
    
         
             
            - test/tilt_hamltemplate_test.rb
         
     | 
| 
       214 
265 
     | 
    
         
             
            - test/tilt_lesstemplate_test.rb
         
     | 
| 
       215 
266 
     | 
    
         
             
            - test/tilt_liquidtemplate_test.rb
         
     | 
| 
      
 267 
     | 
    
         
            +
            - test/tilt_markaby_test.rb
         
     | 
| 
      
 268 
     | 
    
         
            +
            - test/tilt_nokogiritemplate_test.rb
         
     | 
| 
       216 
269 
     | 
    
         
             
            - test/tilt_radiustemplate_test.rb
         
     | 
| 
       217 
270 
     | 
    
         
             
            - test/tilt_rdiscounttemplate_test.rb
         
     | 
| 
       218 
271 
     | 
    
         
             
            - test/tilt_rdoctemplate_test.rb
         
     |