frank 0.2.6 → 0.3.0.beta
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/Featurelist +6 -0
 - data/README.md +44 -32
 - data/Rakefile +3 -3
 - data/frank.gemspec +51 -45
 - data/lib/frank.rb +1 -0
 - data/lib/frank/base.rb +144 -94
 - data/lib/frank/lorem.rb +77 -36
 - data/lib/frank/middleware/imager.rb +43 -0
 - data/lib/frank/middleware/refresh.rb +42 -0
 - data/lib/frank/middleware/statik.rb +41 -0
 - data/lib/frank/output.rb +25 -37
 - data/lib/frank/rescue.rb +13 -6
 - data/lib/frank/template_helpers.rb +34 -3
 - data/lib/frank/templates/404.haml +1 -0
 - data/lib/frank/templates/500.haml +2 -0
 - data/lib/frank/tilt.rb +389 -141
 - data/lib/template/{dynamic/layout.haml → layouts/default.haml} +0 -0
 - data/lib/template/settings.yml +15 -28
 - data/spec/base_spec.rb +88 -0
 - data/{test → spec}/helper.rb +0 -7
 - data/spec/output_spec.rb +220 -0
 - data/spec/render_spec.rb +106 -0
 - data/spec/template/dynamic/500.haml +1 -0
 - data/{test → spec}/template/dynamic/_partial.haml +0 -0
 - data/{test → spec}/template/dynamic/builder.builder +0 -0
 - data/{test → spec}/template/dynamic/coffee.coffee +0 -0
 - data/{test → spec}/template/dynamic/erb.erb +0 -0
 - data/{test → spec}/template/dynamic/helper_test.haml +0 -0
 - data/spec/template/dynamic/index.haml +5 -0
 - data/spec/template/dynamic/layout2_test.haml +4 -0
 - data/{test → spec}/template/dynamic/liquid.liquid +0 -0
 - data/spec/template/dynamic/lorem_test.haml +7 -0
 - data/{test → spec}/template/dynamic/markdown.md +0 -0
 - data/spec/template/dynamic/markdown_in_haml.md +4 -0
 - data/{test → spec}/template/dynamic/mustache.mustache +0 -0
 - data/spec/template/dynamic/nested/child.haml +1 -0
 - data/spec/template/dynamic/nested/deeper/deep.haml +1 -0
 - data/spec/template/dynamic/no_layout.haml +4 -0
 - data/spec/template/dynamic/partial_test.haml +2 -0
 - data/{test → spec}/template/dynamic/redcloth.textile +0 -0
 - data/spec/template/dynamic/refresh.haml +1 -0
 - data/{test → spec}/template/dynamic/sass.sass +0 -0
 - data/{test → spec}/template/helpers.rb +0 -0
 - data/spec/template/layouts/default.haml +3 -0
 - data/{test/template/dynamic → spec/template/layouts/explicit}/layout2.haml +0 -0
 - data/spec/template/layouts/nested/default.haml +2 -0
 - data/spec/template/settings.yml +45 -0
 - data/{test/template/static → spec/template/static/files}/static.html +0 -0
 - data/spec/template_helpers_spec.rb +78 -0
 - metadata +57 -49
 - data/lib/frank/imager.rb +0 -39
 - data/lib/frank/statik.rb +0 -39
 - data/test/suite.rb +0 -4
 - data/test/template/dynamic/index.haml +0 -2
 - data/test/template/dynamic/layout.haml +0 -2
 - data/test/template/dynamic/layout2_test.haml +0 -1
 - data/test/template/dynamic/layout_test.haml +0 -1
 - data/test/template/dynamic/lorem_test.haml +0 -7
 - data/test/template/dynamic/partial_test.haml +0 -2
 - data/test/template/settings.yml +0 -62
 - data/test/test_base.rb +0 -81
 - data/test/test_helpers.rb +0 -71
 - data/test/test_output.rb +0 -160
 - data/test/test_render.rb +0 -89
 
| 
         
            File without changes
         
     | 
    
        data/lib/template/settings.yml
    CHANGED
    
    | 
         @@ -1,17 +1,3 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # -----------------------------------------------
         
     | 
| 
       2 
     | 
    
         
            -
            #  Frank settings:
         
     | 
| 
       3 
     | 
    
         
            -
            #
         
     | 
| 
       4 
     | 
    
         
            -
            #  These settings will apply to this project only.
         
     | 
| 
       5 
     | 
    
         
            -
            #  If you would like to use this project as a
         
     | 
| 
       6 
     | 
    
         
            -
            #  template for new projects, just copy this
         
     | 
| 
       7 
     | 
    
         
            -
            #  project folder to `~/.frank` and it will be
         
     | 
| 
       8 
     | 
    
         
            -
            #  duplicated for you every time you run the
         
     | 
| 
       9 
     | 
    
         
            -
            # `frank` command.
         
     | 
| 
       10 
     | 
    
         
            -
            #
         
     | 
| 
       11 
     | 
    
         
            -
            #  Feel free to trash all these comments, too.
         
     | 
| 
       12 
     | 
    
         
            -
            #
         
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
1 
     | 
    
         
             
            # ----------------------
         
     | 
| 
       16 
2 
     | 
    
         
             
            #  Server settings:
         
     | 
| 
       17 
3 
     | 
    
         
             
            #
         
     | 
| 
         @@ -41,17 +27,18 @@ static_folder: static 
     | 
|
| 
       41 
27 
     | 
    
         
             
            dynamic_folder: dynamic
         
     | 
| 
       42 
28 
     | 
    
         | 
| 
       43 
29 
     | 
    
         
             
            # ----------------------
         
     | 
| 
       44 
     | 
    
         
            -
            #   
     | 
| 
       45 
     | 
    
         
            -
            #
         
     | 
| 
       46 
     | 
    
         
            -
            #  
     | 
| 
       47 
     | 
    
         
            -
            #  
     | 
| 
       48 
     | 
    
         
            -
            #   
     | 
| 
       49 
     | 
    
         
            -
            #   
     | 
| 
       50 
     | 
    
         
            -
            # 
     | 
| 
       51 
     | 
    
         
            -
            # 
     | 
| 
       52 
     | 
    
         
            -
            # 
     | 
| 
       53 
     | 
    
         
            -
            # 
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
       55 
     | 
    
         
            -
             
     | 
| 
       56 
     | 
    
         
            -
             
     | 
| 
       57 
     | 
    
         
            -
             
     | 
| 
      
 30 
     | 
    
         
            +
            #  Layouts folder:
         
     | 
| 
      
 31 
     | 
    
         
            +
            #
         
     | 
| 
      
 32 
     | 
    
         
            +
            #  Frank will look for layouts in this folder
         
     | 
| 
      
 33 
     | 
    
         
            +
            #  the default layout is `default'
         
     | 
| 
      
 34 
     | 
    
         
            +
            #  it respects nested layouts that correspond to nested
         
     | 
| 
      
 35 
     | 
    
         
            +
            #  folders in the `dynamic_folder'
         
     | 
| 
      
 36 
     | 
    
         
            +
            #  for example: a template: `dynamic_folder/blog/a-blog-post.haml'
         
     | 
| 
      
 37 
     | 
    
         
            +
            #  would look for a layout: `layouts/blog/default.haml'
         
     | 
| 
      
 38 
     | 
    
         
            +
            #  and if not found use the default: `layouts/default.haml'
         
     | 
| 
      
 39 
     | 
    
         
            +
            #  
         
     | 
| 
      
 40 
     | 
    
         
            +
            #  Frank also supports defining layouts on an
         
     | 
| 
      
 41 
     | 
    
         
            +
            #  individual template basis using meta data
         
     | 
| 
      
 42 
     | 
    
         
            +
            #  you can do this by defining a meta field `layout: my_layout.haml'
         
     | 
| 
      
 43 
     | 
    
         
            +
            #
         
     | 
| 
      
 44 
     | 
    
         
            +
            layouts_folder: layouts
         
     | 
    
        data/spec/base_spec.rb
    ADDED
    
    | 
         @@ -0,0 +1,88 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require File.dirname(__FILE__) + '/helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe Frank::Base do
         
     | 
| 
      
 4 
     | 
    
         
            +
              include Rack::Test::Methods 
         
     | 
| 
      
 5 
     | 
    
         
            +
              
         
     | 
| 
      
 6 
     | 
    
         
            +
              def app
         
     | 
| 
      
 7 
     | 
    
         
            +
                proj_dir = File.join(File.dirname(__FILE__), 'template')
         
     | 
| 
      
 8 
     | 
    
         
            +
                settings = YAML.load_file(File.join(proj_dir, 'settings.yml'))
         
     | 
| 
      
 9 
     | 
    
         
            +
                Frank.new do
         
     | 
| 
      
 10 
     | 
    
         
            +
                  settings.each do |name, value|
         
     | 
| 
      
 11 
     | 
    
         
            +
                    set name.to_s, value
         
     | 
| 
      
 12 
     | 
    
         
            +
                  end
         
     | 
| 
      
 13 
     | 
    
         
            +
                  set :environment, :test
         
     | 
| 
      
 14 
     | 
    
         
            +
                  set :proj_dir, proj_dir
         
     | 
| 
      
 15 
     | 
    
         
            +
                end
         
     | 
| 
      
 16 
     | 
    
         
            +
              end
         
     | 
| 
      
 17 
     | 
    
         
            +
              
         
     | 
| 
      
 18 
     | 
    
         
            +
              it 'has all of the required settings set' do
         
     | 
| 
      
 19 
     | 
    
         
            +
                app.proj_dir.should_not be_nil
         
     | 
| 
      
 20 
     | 
    
         
            +
                app.server.should_not be_nil
         
     | 
| 
      
 21 
     | 
    
         
            +
                app.static_folder.should_not be_nil
         
     | 
| 
      
 22 
     | 
    
         
            +
                app.dynamic_folder.should_not be_nil
         
     | 
| 
      
 23 
     | 
    
         
            +
                app.layouts_folder.should_not be_nil
         
     | 
| 
      
 24 
     | 
    
         
            +
              end
         
     | 
| 
      
 25 
     | 
    
         
            +
              
         
     | 
| 
      
 26 
     | 
    
         
            +
              it 'renders a dynamic template given a request' do
         
     | 
| 
      
 27 
     | 
    
         
            +
                get '/'
         
     | 
| 
      
 28 
     | 
    
         
            +
                
         
     | 
| 
      
 29 
     | 
    
         
            +
                last_response.should be_ok
         
     | 
| 
      
 30 
     | 
    
         
            +
                last_response.body.should == "<div id='p'>/</div>\n<div id='layout'>\n  <h1>hello worlds</h1>\n  <h2>/</h2>\n</div>\n"
         
     | 
| 
      
 31 
     | 
    
         
            +
              end
         
     | 
| 
      
 32 
     | 
    
         
            +
              
         
     | 
| 
      
 33 
     | 
    
         
            +
              it 'renders a page and uses a helper' do
         
     | 
| 
      
 34 
     | 
    
         
            +
                get '/helper_test'
         
     | 
| 
      
 35 
     | 
    
         
            +
                
         
     | 
| 
      
 36 
     | 
    
         
            +
                last_response.should be_ok
         
     | 
| 
      
 37 
     | 
    
         
            +
                last_response.body.should == "<div id='p'>/helper_test</div>\n<div id='layout'>\n  <h1>hello from helper</h1>\n</div>\n"
         
     | 
| 
      
 38 
     | 
    
         
            +
              end
         
     | 
| 
      
 39 
     | 
    
         
            +
              
         
     | 
| 
      
 40 
     | 
    
         
            +
              it 'renders a nested template given a request' do
         
     | 
| 
      
 41 
     | 
    
         
            +
                get '/nested/child'
         
     | 
| 
      
 42 
     | 
    
         
            +
                
         
     | 
| 
      
 43 
     | 
    
         
            +
                last_response.should be_ok
         
     | 
| 
      
 44 
     | 
    
         
            +
                last_response.body.should == "<div id='nested_layout'>\n  <h1>hello from child</h1>\n</div>\n"
         
     | 
| 
      
 45 
     | 
    
         
            +
              end
         
     | 
| 
      
 46 
     | 
    
         
            +
              
         
     | 
| 
      
 47 
     | 
    
         
            +
              it 'renders dynamic css without a layout' do
         
     | 
| 
      
 48 
     | 
    
         
            +
                get '/sass.css'
         
     | 
| 
      
 49 
     | 
    
         
            +
                
         
     | 
| 
      
 50 
     | 
    
         
            +
                last_response.should be_ok
         
     | 
| 
      
 51 
     | 
    
         
            +
                last_response.body.should == "#hello-worlds {\n  background: red; }\n"
         
     | 
| 
      
 52 
     | 
    
         
            +
              end
         
     | 
| 
      
 53 
     | 
    
         
            +
              
         
     | 
| 
      
 54 
     | 
    
         
            +
              it 'renders dynamic javascript without a layout' do
         
     | 
| 
      
 55 
     | 
    
         
            +
                get '/coffee.js'
         
     | 
| 
      
 56 
     | 
    
         
            +
                
         
     | 
| 
      
 57 
     | 
    
         
            +
                last_response.should be_ok
         
     | 
| 
      
 58 
     | 
    
         
            +
                last_response.body.should == "(function(){\n  var greeting;\n  greeting = \"Hello CoffeeScript\";\n})();"
         
     | 
| 
      
 59 
     | 
    
         
            +
              end
         
     | 
| 
      
 60 
     | 
    
         
            +
              
         
     | 
| 
      
 61 
     | 
    
         
            +
              it 'renders a 404 page if template not found' do
         
     | 
| 
      
 62 
     | 
    
         
            +
                get '/not_here.css'
         
     | 
| 
      
 63 
     | 
    
         
            +
                                        
         
     | 
| 
      
 64 
     | 
    
         
            +
                last_response.should_not be_ok
         
     | 
| 
      
 65 
     | 
    
         
            +
                last_response.content_type.should == 'text/html'
         
     | 
| 
      
 66 
     | 
    
         
            +
                last_response.body.should =~ /Not Found/
         
     | 
| 
      
 67 
     | 
    
         
            +
              end
         
     | 
| 
      
 68 
     | 
    
         
            +
              
         
     | 
| 
      
 69 
     | 
    
         
            +
              it 'renders a 500 page for error' do
         
     | 
| 
      
 70 
     | 
    
         
            +
                capture_stdout { get '/500' }
         
     | 
| 
      
 71 
     | 
    
         
            +
                
         
     | 
| 
      
 72 
     | 
    
         
            +
                last_response.should_not be_ok
         
     | 
| 
      
 73 
     | 
    
         
            +
                last_response.content_type.should == 'text/html'
         
     | 
| 
      
 74 
     | 
    
         
            +
                last_response.body.should =~ /undefined local variable or method `non_method'/
         
     | 
| 
      
 75 
     | 
    
         
            +
              end
         
     | 
| 
      
 76 
     | 
    
         
            +
              
         
     | 
| 
      
 77 
     | 
    
         
            +
              it 'stubs out a project' do
         
     | 
| 
      
 78 
     | 
    
         
            +
                out = capture_stdout { Frank.stub('stubbed') }
         
     | 
| 
      
 79 
     | 
    
         
            +
                Dir.entries('stubbed').should == Dir.entries(File.join(LIBDIR, 'template'))
         
     | 
| 
      
 80 
     | 
    
         
            +
                response = "\nFrank is...\n - \e[32mCreating\e[0m your project 'stubbed'\n - \e[32mCopying\e[0m Frank template\n\n \e[32mCongratulations, 'stubbed' is ready to go!\e[0m\n"
         
     | 
| 
      
 81 
     | 
    
         
            +
                out.string.should == response
         
     | 
| 
      
 82 
     | 
    
         
            +
              end
         
     | 
| 
      
 83 
     | 
    
         
            +
              
         
     | 
| 
      
 84 
     | 
    
         
            +
              after(:all) do
         
     | 
| 
      
 85 
     | 
    
         
            +
                FileUtils.rm_r File.join(Dir.pwd, 'stubbed')
         
     | 
| 
      
 86 
     | 
    
         
            +
              end
         
     | 
| 
      
 87 
     | 
    
         
            +
             
     | 
| 
      
 88 
     | 
    
         
            +
            end
         
     | 
    
        data/{test → spec}/helper.rb
    RENAMED
    
    | 
         @@ -6,12 +6,9 @@ $LOAD_PATH.unshift libdir unless $LOAD_PATH.include?(libdir) 
     | 
|
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
            require 'stringio'
         
     | 
| 
       8 
8 
     | 
    
         
             
            require 'rubygems'
         
     | 
| 
       9 
     | 
    
         
            -
            require 'test/unit'
         
     | 
| 
       10 
9 
     | 
    
         
             
            require 'rack/test'
         
     | 
| 
       11 
     | 
    
         
            -
            require 'shoulda'
         
     | 
| 
       12 
10 
     | 
    
         
             
            require 'template/helpers'
         
     | 
| 
       13 
11 
     | 
    
         
             
            require 'frank'
         
     | 
| 
       14 
     | 
    
         
            -
            require 'ruby-debug'
         
     | 
| 
       15 
12 
     | 
    
         | 
| 
       16 
13 
     | 
    
         
             
            module Kernel
         
     | 
| 
       17 
14 
     | 
    
         
             
             def capture_stdout
         
     | 
| 
         @@ -23,7 +20,3 @@ module Kernel 
     | 
|
| 
       23 
20 
     | 
    
         
             
               $stdout = STDOUT
         
     | 
| 
       24 
21 
     | 
    
         
             
             end
         
     | 
| 
       25 
22 
     | 
    
         
             
            end
         
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
            class Test::Unit::TestCase
         
     | 
| 
       28 
     | 
    
         
            -
              include Rack::Test::Methods 
         
     | 
| 
       29 
     | 
    
         
            -
            end
         
     | 
    
        data/spec/output_spec.rb
    ADDED
    
    | 
         @@ -0,0 +1,220 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require File.dirname(__FILE__) + '/helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe Frank::Output do
         
     | 
| 
      
 4 
     | 
    
         
            +
              include Rack::Test::Methods 
         
     | 
| 
      
 5 
     | 
    
         
            +
              
         
     | 
| 
      
 6 
     | 
    
         
            +
              context 'default output' do
         
     | 
| 
      
 7 
     | 
    
         
            +
                before(:all) do
         
     | 
| 
      
 8 
     | 
    
         
            +
                  proj_dir = File.join(File.dirname(__FILE__), 'template')
         
     | 
| 
      
 9 
     | 
    
         
            +
                  settings = YAML.load_file(File.join(proj_dir, 'settings.yml'))
         
     | 
| 
      
 10 
     | 
    
         
            +
                  require File.join(proj_dir, 'helpers')
         
     | 
| 
      
 11 
     | 
    
         
            +
                  capture_stdout do
         
     | 
| 
      
 12 
     | 
    
         
            +
                    Frank::Output.new do
         
     | 
| 
      
 13 
     | 
    
         
            +
                      settings.each do |name, value|
         
     | 
| 
      
 14 
     | 
    
         
            +
                        set name.to_s, value
         
     | 
| 
      
 15 
     | 
    
         
            +
                      end
         
     | 
| 
      
 16 
     | 
    
         
            +
                      set :environment, :output
         
     | 
| 
      
 17 
     | 
    
         
            +
                      set :proj_dir, proj_dir
         
     | 
| 
      
 18 
     | 
    
         
            +
                      set :output_folder, File.join(File.dirname(__FILE__), 'template/output')
         
     | 
| 
      
 19 
     | 
    
         
            +
                    end.dump
         
     | 
| 
      
 20 
     | 
    
         
            +
                  end
         
     | 
| 
      
 21 
     | 
    
         
            +
                end
         
     | 
| 
      
 22 
     | 
    
         
            +
              
         
     | 
| 
      
 23 
     | 
    
         
            +
                it 'creates the output folder' do
         
     | 
| 
      
 24 
     | 
    
         
            +
                  File.exist?(File.join(File.dirname(__FILE__), 'template/output')).should be_true
         
     | 
| 
      
 25 
     | 
    
         
            +
                end
         
     | 
| 
      
 26 
     | 
    
         
            +
                  
         
     | 
| 
      
 27 
     | 
    
         
            +
                it 'creates index.html' do
         
     | 
| 
      
 28 
     | 
    
         
            +
                  output = File.join(File.dirname(__FILE__), 'template/output/index.html')
         
     | 
| 
      
 29 
     | 
    
         
            +
                  File.read(output).should == "<div id='p'>/</div>\n<div id='layout'>\n  <h1>hello worlds</h1>\n  <h2>/</h2>\n</div>\n"
         
     | 
| 
      
 30 
     | 
    
         
            +
                end
         
     | 
| 
      
 31 
     | 
    
         
            +
                  
         
     | 
| 
      
 32 
     | 
    
         
            +
                it  'creates partial_test.html' do
         
     | 
| 
      
 33 
     | 
    
         
            +
                  output = File.join(File.dirname(__FILE__), 'template/output/partial_test.html')
         
     | 
| 
      
 34 
     | 
    
         
            +
                  File.read(output).should == "<div id='p'>/partial_test</div>\n<div id='layout'>\n  <h1>hello worlds</h1>\n  <p>hello from partial</p>\n</div>\n"
         
     | 
| 
      
 35 
     | 
    
         
            +
                end
         
     | 
| 
      
 36 
     | 
    
         
            +
                
         
     | 
| 
      
 37 
     | 
    
         
            +
                it 'creates child.html' do
         
     | 
| 
      
 38 
     | 
    
         
            +
                  output = File.join(File.dirname(__FILE__), 'template/output/nested/child.html')
         
     | 
| 
      
 39 
     | 
    
         
            +
                  File.read(output).should == "<div id='nested_layout'>\n  <h1>hello from child</h1>\n</div>\n"
         
     | 
| 
      
 40 
     | 
    
         
            +
                end
         
     | 
| 
      
 41 
     | 
    
         
            +
                
         
     | 
| 
      
 42 
     | 
    
         
            +
                it 'creates deep.html' do
         
     | 
| 
      
 43 
     | 
    
         
            +
                  output = File.join(File.dirname(__FILE__), 'template/output/nested/deeper/deep.html')
         
     | 
| 
      
 44 
     | 
    
         
            +
                  File.read(output).should == "<div id='nested_layout'>\n  <h1>really deep</h1>\n</div>\n"
         
     | 
| 
      
 45 
     | 
    
         
            +
                end
         
     | 
| 
      
 46 
     | 
    
         
            +
                
         
     | 
| 
      
 47 
     | 
    
         
            +
                it 'creates no_layout.html' do
         
     | 
| 
      
 48 
     | 
    
         
            +
                  output = File.join(File.dirname(__FILE__), 'template/output/no_layout.html')
         
     | 
| 
      
 49 
     | 
    
         
            +
                  File.read(output).should == "<h1>i have no layout</h1>\n"
         
     | 
| 
      
 50 
     | 
    
         
            +
                end
         
     | 
| 
      
 51 
     | 
    
         
            +
                  
         
     | 
| 
      
 52 
     | 
    
         
            +
                it 'creates erb.html' do
         
     | 
| 
      
 53 
     | 
    
         
            +
                  output = File.join(File.dirname(__FILE__), 'template/output/erb.html')
         
     | 
| 
      
 54 
     | 
    
         
            +
                  File.read(output).should == "<h1>hello worlds</h1>\n\n"
         
     | 
| 
      
 55 
     | 
    
         
            +
                end
         
     | 
| 
      
 56 
     | 
    
         
            +
                  
         
     | 
| 
      
 57 
     | 
    
         
            +
                it 'creates redcloth.html' do
         
     | 
| 
      
 58 
     | 
    
         
            +
                  output = File.join(File.dirname(__FILE__), 'template/output/redcloth.html')
         
     | 
| 
      
 59 
     | 
    
         
            +
                  File.read(output).should == "<h1>hello worlds</h1>"
         
     | 
| 
      
 60 
     | 
    
         
            +
                end
         
     | 
| 
      
 61 
     | 
    
         
            +
                  
         
     | 
| 
      
 62 
     | 
    
         
            +
                it 'creates markdown.html' do
         
     | 
| 
      
 63 
     | 
    
         
            +
                  output = File.join(File.dirname(__FILE__), 'template/output/markdown.html')
         
     | 
| 
      
 64 
     | 
    
         
            +
                  File.read(output).should == "<h1>hello worlds</h1>\n"
         
     | 
| 
      
 65 
     | 
    
         
            +
                end
         
     | 
| 
      
 66 
     | 
    
         
            +
                  
         
     | 
| 
      
 67 
     | 
    
         
            +
                it 'creates mustache.html' do
         
     | 
| 
      
 68 
     | 
    
         
            +
                  output = File.join(File.dirname(__FILE__), 'template/output/mustache.html')
         
     | 
| 
      
 69 
     | 
    
         
            +
                  File.read(output).should == "<h1>hello worlds</h1>\n\n"
         
     | 
| 
      
 70 
     | 
    
         
            +
                end
         
     | 
| 
      
 71 
     | 
    
         
            +
                  
         
     | 
| 
      
 72 
     | 
    
         
            +
                it 'creates liquid.html' do
         
     | 
| 
      
 73 
     | 
    
         
            +
                  output = File.join(File.dirname(__FILE__), 'template/output/liquid.html')
         
     | 
| 
      
 74 
     | 
    
         
            +
                  File.read(output).should == "<h1>hello worlds</h1>\n"
         
     | 
| 
      
 75 
     | 
    
         
            +
                end
         
     | 
| 
      
 76 
     | 
    
         
            +
                  
         
     | 
| 
      
 77 
     | 
    
         
            +
                it 'creates builder.html' do
         
     | 
| 
      
 78 
     | 
    
         
            +
                  output = File.join(File.dirname(__FILE__), 'template/output/builder.html')
         
     | 
| 
      
 79 
     | 
    
         
            +
                  File.read(output).should == "<h1>hello worlds</h1>\n"
         
     | 
| 
      
 80 
     | 
    
         
            +
                end
         
     | 
| 
      
 81 
     | 
    
         
            +
                  
         
     | 
| 
      
 82 
     | 
    
         
            +
                it 'copies static.html' do
         
     | 
| 
      
 83 
     | 
    
         
            +
                  output = File.join(File.dirname(__FILE__), 'template/output/files/static.html')
         
     | 
| 
      
 84 
     | 
    
         
            +
                  File.read(output).should == "hello from static"
         
     | 
| 
      
 85 
     | 
    
         
            +
                end
         
     | 
| 
      
 86 
     | 
    
         
            +
                  
         
     | 
| 
      
 87 
     | 
    
         
            +
                it "doesn't create partials" do
         
     | 
| 
      
 88 
     | 
    
         
            +
                  File.exist?(File.join(File.dirname(__FILE__), 'template/output/_partial.html')).should be_false
         
     | 
| 
      
 89 
     | 
    
         
            +
                end
         
     | 
| 
      
 90 
     | 
    
         
            +
                
         
     | 
| 
      
 91 
     | 
    
         
            +
                it 'handles lorem replacement fields' do
         
     | 
| 
      
 92 
     | 
    
         
            +
                  output = File.join(File.dirname(__FILE__), 'template/output/lorem_test.html')
         
     | 
| 
      
 93 
     | 
    
         
            +
                  File.read(output).should include("<p class='words'>replace-this</p>")
         
     | 
| 
      
 94 
     | 
    
         
            +
                  File.read(output).should include("<p class='sentences'>replace-this</p>")
         
     | 
| 
      
 95 
     | 
    
         
            +
                  File.read(output).should include("<p class='paragraphs'>replace-this</p>")
         
     | 
| 
      
 96 
     | 
    
         
            +
                  File.read(output).should include("<p class='date'>replace-this</p>")
         
     | 
| 
      
 97 
     | 
    
         
            +
                  File.read(output).should include("<p class='name'>replace-this</p>")
         
     | 
| 
      
 98 
     | 
    
         
            +
                  File.read(output).should include("<p class='email'>replace-this</p>")
         
     | 
| 
      
 99 
     | 
    
         
            +
                  File.read(output).should include("<img src='replace-this' />")
         
     | 
| 
      
 100 
     | 
    
         
            +
                end
         
     | 
| 
      
 101 
     | 
    
         
            +
                
         
     | 
| 
      
 102 
     | 
    
         
            +
                it 'should not render the refresh js' do
         
     | 
| 
      
 103 
     | 
    
         
            +
                  output = File.join(File.dirname(__FILE__), 'template/output/refresh.html')
         
     | 
| 
      
 104 
     | 
    
         
            +
                  File.read(output).should == "<div id='p'>/refresh</div>\n<div id='layout'>\n  \n</div>\n"
         
     | 
| 
      
 105 
     | 
    
         
            +
                end
         
     | 
| 
      
 106 
     | 
    
         
            +
                
         
     | 
| 
      
 107 
     | 
    
         
            +
                after(:all) do
         
     | 
| 
      
 108 
     | 
    
         
            +
                  FileUtils.rm_r File.join(File.dirname(__FILE__), 'template/output')
         
     | 
| 
      
 109 
     | 
    
         
            +
                end
         
     | 
| 
      
 110 
     | 
    
         
            +
              
         
     | 
| 
      
 111 
     | 
    
         
            +
              end
         
     | 
| 
      
 112 
     | 
    
         
            +
              
         
     | 
| 
      
 113 
     | 
    
         
            +
              context 'productions output' do
         
     | 
| 
      
 114 
     | 
    
         
            +
                before(:all) do
         
     | 
| 
      
 115 
     | 
    
         
            +
                  proj_dir = File.join(File.dirname(__FILE__), 'template')
         
     | 
| 
      
 116 
     | 
    
         
            +
                  settings = YAML.load_file(File.join(proj_dir, 'settings.yml'))
         
     | 
| 
      
 117 
     | 
    
         
            +
                  require File.join(proj_dir, 'helpers')
         
     | 
| 
      
 118 
     | 
    
         
            +
                  capture_stdout do
         
     | 
| 
      
 119 
     | 
    
         
            +
                    Frank::Output.new do
         
     | 
| 
      
 120 
     | 
    
         
            +
                      settings.each do |name, value|
         
     | 
| 
      
 121 
     | 
    
         
            +
                        set name.to_s, value
         
     | 
| 
      
 122 
     | 
    
         
            +
                      end
         
     | 
| 
      
 123 
     | 
    
         
            +
                      set :environment, :output
         
     | 
| 
      
 124 
     | 
    
         
            +
                      set :proj_dir, proj_dir
         
     | 
| 
      
 125 
     | 
    
         
            +
                      set :output_folder, File.join(File.dirname(__FILE__), 'template/output')
         
     | 
| 
      
 126 
     | 
    
         
            +
                    end.dump(production=true)
         
     | 
| 
      
 127 
     | 
    
         
            +
                  end
         
     | 
| 
      
 128 
     | 
    
         
            +
                end
         
     | 
| 
      
 129 
     | 
    
         
            +
              
         
     | 
| 
      
 130 
     | 
    
         
            +
                it 'creates the output folder' do
         
     | 
| 
      
 131 
     | 
    
         
            +
                  File.exist?(File.join(File.dirname(__FILE__), 'template/output')).should be_true
         
     | 
| 
      
 132 
     | 
    
         
            +
                end
         
     | 
| 
      
 133 
     | 
    
         
            +
              
         
     | 
| 
      
 134 
     | 
    
         
            +
                it 'creates index.html' do
         
     | 
| 
      
 135 
     | 
    
         
            +
                  output = File.join(File.dirname(__FILE__), 'template/output/index.html')
         
     | 
| 
      
 136 
     | 
    
         
            +
                  File.read(output).should == "<div id='p'>/</div>\n<div id='layout'>\n  <h1>hello worlds</h1>\n  <h2>/</h2>\n</div>\n"
         
     | 
| 
      
 137 
     | 
    
         
            +
                end
         
     | 
| 
      
 138 
     | 
    
         
            +
              
         
     | 
| 
      
 139 
     | 
    
         
            +
                it  'creates partial_test.html' do
         
     | 
| 
      
 140 
     | 
    
         
            +
                  output = File.join(File.dirname(__FILE__), 'template/output/partial_test/index.html')
         
     | 
| 
      
 141 
     | 
    
         
            +
                  File.read(output).should == "<div id='p'>/partial_test</div>\n<div id='layout'>\n  <h1>hello worlds</h1>\n  <p>hello from partial</p>\n</div>\n"
         
     | 
| 
      
 142 
     | 
    
         
            +
                end
         
     | 
| 
      
 143 
     | 
    
         
            +
                
         
     | 
| 
      
 144 
     | 
    
         
            +
                it 'creates child.html' do
         
     | 
| 
      
 145 
     | 
    
         
            +
                  output = File.join(File.dirname(__FILE__), 'template/output/nested/child/index.html')
         
     | 
| 
      
 146 
     | 
    
         
            +
                  File.read(output).should == "<div id='nested_layout'>\n  <h1>hello from child</h1>\n</div>\n"
         
     | 
| 
      
 147 
     | 
    
         
            +
                end
         
     | 
| 
      
 148 
     | 
    
         
            +
                
         
     | 
| 
      
 149 
     | 
    
         
            +
                it 'creates deep.html' do
         
     | 
| 
      
 150 
     | 
    
         
            +
                  output = File.join(File.dirname(__FILE__), 'template/output/nested/deeper/deep/index.html')
         
     | 
| 
      
 151 
     | 
    
         
            +
                  File.read(output).should == "<div id='nested_layout'>\n  <h1>really deep</h1>\n</div>\n"
         
     | 
| 
      
 152 
     | 
    
         
            +
                end
         
     | 
| 
      
 153 
     | 
    
         
            +
                
         
     | 
| 
      
 154 
     | 
    
         
            +
                it 'creates no_layout.html' do
         
     | 
| 
      
 155 
     | 
    
         
            +
                  output = File.join(File.dirname(__FILE__), 'template/output/no_layout/index.html')
         
     | 
| 
      
 156 
     | 
    
         
            +
                  File.read(output).should == "<h1>i have no layout</h1>\n"
         
     | 
| 
      
 157 
     | 
    
         
            +
                end
         
     | 
| 
      
 158 
     | 
    
         
            +
              
         
     | 
| 
      
 159 
     | 
    
         
            +
                it 'creates erb.html' do
         
     | 
| 
      
 160 
     | 
    
         
            +
                  output = File.join(File.dirname(__FILE__), 'template/output/erb/index.html')
         
     | 
| 
      
 161 
     | 
    
         
            +
                  File.read(output).should == "<h1>hello worlds</h1>\n\n"
         
     | 
| 
      
 162 
     | 
    
         
            +
                end
         
     | 
| 
      
 163 
     | 
    
         
            +
              
         
     | 
| 
      
 164 
     | 
    
         
            +
                it 'creates redcloth.html' do
         
     | 
| 
      
 165 
     | 
    
         
            +
                  output = File.join(File.dirname(__FILE__), 'template/output/redcloth/index.html')
         
     | 
| 
      
 166 
     | 
    
         
            +
                  File.read(output).should == "<h1>hello worlds</h1>"
         
     | 
| 
      
 167 
     | 
    
         
            +
                end
         
     | 
| 
      
 168 
     | 
    
         
            +
              
         
     | 
| 
      
 169 
     | 
    
         
            +
                it 'creates markdown.html' do
         
     | 
| 
      
 170 
     | 
    
         
            +
                  output = File.join(File.dirname(__FILE__), 'template/output/markdown/index.html')
         
     | 
| 
      
 171 
     | 
    
         
            +
                  File.read(output).should == "<h1>hello worlds</h1>\n"
         
     | 
| 
      
 172 
     | 
    
         
            +
                end
         
     | 
| 
      
 173 
     | 
    
         
            +
              
         
     | 
| 
      
 174 
     | 
    
         
            +
                it 'creates mustache.html' do
         
     | 
| 
      
 175 
     | 
    
         
            +
                  output = File.join(File.dirname(__FILE__), 'template/output/mustache/index.html')
         
     | 
| 
      
 176 
     | 
    
         
            +
                  File.read(output).should == "<h1>hello worlds</h1>\n\n"
         
     | 
| 
      
 177 
     | 
    
         
            +
                end
         
     | 
| 
      
 178 
     | 
    
         
            +
              
         
     | 
| 
      
 179 
     | 
    
         
            +
                it 'creates liquid.html' do
         
     | 
| 
      
 180 
     | 
    
         
            +
                  output = File.join(File.dirname(__FILE__), 'template/output/liquid/index.html')
         
     | 
| 
      
 181 
     | 
    
         
            +
                  File.read(output).should == "<h1>hello worlds</h1>\n"
         
     | 
| 
      
 182 
     | 
    
         
            +
                end
         
     | 
| 
      
 183 
     | 
    
         
            +
              
         
     | 
| 
      
 184 
     | 
    
         
            +
                it 'creates builder.html' do
         
     | 
| 
      
 185 
     | 
    
         
            +
                  output = File.join(File.dirname(__FILE__), 'template/output/builder/index.html')
         
     | 
| 
      
 186 
     | 
    
         
            +
                  File.read(output).should == "<h1>hello worlds</h1>\n"
         
     | 
| 
      
 187 
     | 
    
         
            +
                end
         
     | 
| 
      
 188 
     | 
    
         
            +
              
         
     | 
| 
      
 189 
     | 
    
         
            +
                it 'copies static.html' do
         
     | 
| 
      
 190 
     | 
    
         
            +
                  output = File.join(File.dirname(__FILE__), 'template/output/files/static.html')
         
     | 
| 
      
 191 
     | 
    
         
            +
                  File.read(output).should == "hello from static"
         
     | 
| 
      
 192 
     | 
    
         
            +
                end
         
     | 
| 
      
 193 
     | 
    
         
            +
              
         
     | 
| 
      
 194 
     | 
    
         
            +
                it "doesn't create partials" do
         
     | 
| 
      
 195 
     | 
    
         
            +
                  File.exist?(File.join(File.dirname(__FILE__), 'template/output/_partial/index.html')).should be_false
         
     | 
| 
      
 196 
     | 
    
         
            +
                end
         
     | 
| 
      
 197 
     | 
    
         
            +
                
         
     | 
| 
      
 198 
     | 
    
         
            +
                it 'handles lorem replacement fields' do
         
     | 
| 
      
 199 
     | 
    
         
            +
                  output = File.join(File.dirname(__FILE__), 'template/output/lorem_test/index.html')
         
     | 
| 
      
 200 
     | 
    
         
            +
                  File.read(output).should include("<p class='words'>replace-this</p>")
         
     | 
| 
      
 201 
     | 
    
         
            +
                  File.read(output).should include("<p class='sentences'>replace-this</p>")
         
     | 
| 
      
 202 
     | 
    
         
            +
                  File.read(output).should include("<p class='paragraphs'>replace-this</p>")
         
     | 
| 
      
 203 
     | 
    
         
            +
                  File.read(output).should include("<p class='date'>replace-this</p>")
         
     | 
| 
      
 204 
     | 
    
         
            +
                  File.read(output).should include("<p class='name'>replace-this</p>")
         
     | 
| 
      
 205 
     | 
    
         
            +
                  File.read(output).should include("<p class='email'>replace-this</p>")
         
     | 
| 
      
 206 
     | 
    
         
            +
                  File.read(output).should include("<img src='replace-this' />")
         
     | 
| 
      
 207 
     | 
    
         
            +
                end
         
     | 
| 
      
 208 
     | 
    
         
            +
                
         
     | 
| 
      
 209 
     | 
    
         
            +
                it 'should not render the refresh js' do
         
     | 
| 
      
 210 
     | 
    
         
            +
                  output = File.join(File.dirname(__FILE__), 'template/output/refresh/index.html')
         
     | 
| 
      
 211 
     | 
    
         
            +
                  File.read(output).should == "<div id='p'>/refresh</div>\n<div id='layout'>\n  \n</div>\n"
         
     | 
| 
      
 212 
     | 
    
         
            +
                end
         
     | 
| 
      
 213 
     | 
    
         
            +
              
         
     | 
| 
      
 214 
     | 
    
         
            +
                after(:all) do
         
     | 
| 
      
 215 
     | 
    
         
            +
                  FileUtils.rm_r File.join(File.dirname(__FILE__), 'template/output')
         
     | 
| 
      
 216 
     | 
    
         
            +
                end
         
     | 
| 
      
 217 
     | 
    
         
            +
                
         
     | 
| 
      
 218 
     | 
    
         
            +
              end
         
     | 
| 
      
 219 
     | 
    
         
            +
              
         
     | 
| 
      
 220 
     | 
    
         
            +
            end
         
     | 
    
        data/spec/render_spec.rb
    ADDED
    
    | 
         @@ -0,0 +1,106 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require File.dirname(__FILE__) + '/helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe Frank::Render do
         
     | 
| 
      
 4 
     | 
    
         
            +
              include Rack::Test::Methods 
         
     | 
| 
      
 5 
     | 
    
         
            +
              
         
     | 
| 
      
 6 
     | 
    
         
            +
              def app
         
     | 
| 
      
 7 
     | 
    
         
            +
                proj_dir = File.join(File.dirname(__FILE__), 'template')
         
     | 
| 
      
 8 
     | 
    
         
            +
                settings = YAML.load_file(File.join(proj_dir, 'settings.yml'))
         
     | 
| 
      
 9 
     | 
    
         
            +
                Frank.new do
         
     | 
| 
      
 10 
     | 
    
         
            +
                  settings.each do |name, value|
         
     | 
| 
      
 11 
     | 
    
         
            +
                    set name.to_s, value
         
     | 
| 
      
 12 
     | 
    
         
            +
                  end
         
     | 
| 
      
 13 
     | 
    
         
            +
                  set :environment, :test
         
     | 
| 
      
 14 
     | 
    
         
            +
                  set :proj_dir, proj_dir
         
     | 
| 
      
 15 
     | 
    
         
            +
                end
         
     | 
| 
      
 16 
     | 
    
         
            +
              end
         
     | 
| 
      
 17 
     | 
    
         
            +
              
         
     | 
| 
      
 18 
     | 
    
         
            +
              before(:all) do
         
     | 
| 
      
 19 
     | 
    
         
            +
                @app = app
         
     | 
| 
      
 20 
     | 
    
         
            +
              end
         
     | 
| 
      
 21 
     | 
    
         
            +
              
         
     | 
| 
      
 22 
     | 
    
         
            +
              it 'renders a template using layout' do
         
     | 
| 
      
 23 
     | 
    
         
            +
                template = @app.render('index.haml')
         
     | 
| 
      
 24 
     | 
    
         
            +
                template.should == "<div id='p'>/</div>\n<div id='layout'>\n  <h1>hello worlds</h1>\n  <h2>/</h2>\n</div>\n"
         
     | 
| 
      
 25 
     | 
    
         
            +
              end
         
     | 
| 
      
 26 
     | 
    
         
            +
              
         
     | 
| 
      
 27 
     | 
    
         
            +
              it 'renders a template using layout2' do
         
     | 
| 
      
 28 
     | 
    
         
            +
                template = @app.render('layout2_test.haml')
         
     | 
| 
      
 29 
     | 
    
         
            +
                template.should == "<div id='layout2'>\n  <h1>hi inside layout2</h1>\n</div>\n"
         
     | 
| 
      
 30 
     | 
    
         
            +
              end
         
     | 
| 
      
 31 
     | 
    
         
            +
              
         
     | 
| 
      
 32 
     | 
    
         
            +
              it 'renders a markdown template inside haml layout' do
         
     | 
| 
      
 33 
     | 
    
         
            +
                template = @app.render('markdown_in_haml.md')
         
     | 
| 
      
 34 
     | 
    
         
            +
                template.should == "<div id='p'>/markdown_in_haml</div>\n<div id='layout'>\n  <h1>hi inside layout</h1>\n</div>\n"
         
     | 
| 
      
 35 
     | 
    
         
            +
              end
         
     | 
| 
      
 36 
     | 
    
         
            +
              
         
     | 
| 
      
 37 
     | 
    
         
            +
              it 'renders a nested template with a nested layout' do
         
     | 
| 
      
 38 
     | 
    
         
            +
                template = @app.render('/nested/child.haml')
         
     | 
| 
      
 39 
     | 
    
         
            +
                template.should == "<div id='nested_layout'>\n  <h1>hello from child</h1>\n</div>\n"
         
     | 
| 
      
 40 
     | 
    
         
            +
              end
         
     | 
| 
      
 41 
     | 
    
         
            +
              
         
     | 
| 
      
 42 
     | 
    
         
            +
              it 'renders a deeply nested template with a nested layout' do
         
     | 
| 
      
 43 
     | 
    
         
            +
                template = @app.render('/nested/deeper/deep.haml')
         
     | 
| 
      
 44 
     | 
    
         
            +
                template.should == "<div id='nested_layout'>\n  <h1>really deep</h1>\n</div>\n"
         
     | 
| 
      
 45 
     | 
    
         
            +
              end
         
     | 
| 
      
 46 
     | 
    
         
            +
               
         
     | 
| 
      
 47 
     | 
    
         
            +
              it 'renders a haml template with no layout' do
         
     | 
| 
      
 48 
     | 
    
         
            +
                template = @app.render('no_layout.haml')
         
     | 
| 
      
 49 
     | 
    
         
            +
                template.should == "<h1>i have no layout</h1>\n"
         
     | 
| 
      
 50 
     | 
    
         
            +
              end
         
     | 
| 
      
 51 
     | 
    
         
            +
               
         
     | 
| 
      
 52 
     | 
    
         
            +
              it 'renders haml template' do
         
     | 
| 
      
 53 
     | 
    
         
            +
                template = @app.render('index.haml')
         
     | 
| 
      
 54 
     | 
    
         
            +
                template.should == "<div id='p'>/</div>\n<div id='layout'>\n  <h1>hello worlds</h1>\n  <h2>/</h2>\n</div>\n"
         
     | 
| 
      
 55 
     | 
    
         
            +
              end
         
     | 
| 
      
 56 
     | 
    
         
            +
              
         
     | 
| 
      
 57 
     | 
    
         
            +
              it 'renders haml template with a haml partial' do
         
     | 
| 
      
 58 
     | 
    
         
            +
                template = @app.render('partial_test.haml')
         
     | 
| 
      
 59 
     | 
    
         
            +
                template.should == "<div id='p'>/partial_test</div>\n<div id='layout'>\n  <h1>hello worlds</h1>\n  <p>hello from partial</p>\n</div>\n"
         
     | 
| 
      
 60 
     | 
    
         
            +
              end
         
     | 
| 
      
 61 
     | 
    
         
            +
              
         
     | 
| 
      
 62 
     | 
    
         
            +
              it 'renders sass template' do
         
     | 
| 
      
 63 
     | 
    
         
            +
                template = @app.render('sass.sass')
         
     | 
| 
      
 64 
     | 
    
         
            +
                template.should == "#hello-worlds {\n  background: red; }\n"
         
     | 
| 
      
 65 
     | 
    
         
            +
              end
         
     | 
| 
      
 66 
     | 
    
         
            +
              
         
     | 
| 
      
 67 
     | 
    
         
            +
              it 'renders coffee template' do
         
     | 
| 
      
 68 
     | 
    
         
            +
                template = @app.render('coffee.coffee')
         
     | 
| 
      
 69 
     | 
    
         
            +
                template.should == "(function(){\n  var greeting;\n  greeting = \"Hello CoffeeScript\";\n})();"
         
     | 
| 
      
 70 
     | 
    
         
            +
              end
         
     | 
| 
      
 71 
     | 
    
         
            +
               
         
     | 
| 
      
 72 
     | 
    
         
            +
              it 'renders erb template' do
         
     | 
| 
      
 73 
     | 
    
         
            +
                template = @app.render('erb.erb')
         
     | 
| 
      
 74 
     | 
    
         
            +
                template.should == "<h1>hello worlds</h1>\n\n"
         
     | 
| 
      
 75 
     | 
    
         
            +
              end
         
     | 
| 
      
 76 
     | 
    
         
            +
              
         
     | 
| 
      
 77 
     | 
    
         
            +
              it 'renders redcloth template' do
         
     | 
| 
      
 78 
     | 
    
         
            +
                template = @app.render('redcloth.textile')
         
     | 
| 
      
 79 
     | 
    
         
            +
                template.should == "<h1>hello worlds</h1>"
         
     | 
| 
      
 80 
     | 
    
         
            +
              end
         
     | 
| 
      
 81 
     | 
    
         
            +
              
         
     | 
| 
      
 82 
     | 
    
         
            +
              it 'renders rdiscount template' do
         
     | 
| 
      
 83 
     | 
    
         
            +
                template = @app.render('markdown.md')
         
     | 
| 
      
 84 
     | 
    
         
            +
                template.should == "<h1>hello worlds</h1>\n"
         
     | 
| 
      
 85 
     | 
    
         
            +
              end
         
     | 
| 
      
 86 
     | 
    
         
            +
              
         
     | 
| 
      
 87 
     | 
    
         
            +
              it 'renders mustache template' do
         
     | 
| 
      
 88 
     | 
    
         
            +
                template = @app.render('mustache.mustache')
         
     | 
| 
      
 89 
     | 
    
         
            +
                template.should == "<h1>hello worlds</h1>\n\n"
         
     | 
| 
      
 90 
     | 
    
         
            +
              end
         
     | 
| 
      
 91 
     | 
    
         
            +
              
         
     | 
| 
      
 92 
     | 
    
         
            +
              it 'renders liquid template' do
         
     | 
| 
      
 93 
     | 
    
         
            +
                template = @app.render('liquid.liquid')
         
     | 
| 
      
 94 
     | 
    
         
            +
                template.should == "<h1>hello worlds</h1>\n"
         
     | 
| 
      
 95 
     | 
    
         
            +
              end
         
     | 
| 
      
 96 
     | 
    
         
            +
              
         
     | 
| 
      
 97 
     | 
    
         
            +
              it 'renders builder template' do
         
     | 
| 
      
 98 
     | 
    
         
            +
                template = @app.render('builder.builder')
         
     | 
| 
      
 99 
     | 
    
         
            +
                template.should == "<h1>hello worlds</h1>\n"
         
     | 
| 
      
 100 
     | 
    
         
            +
              end
         
     | 
| 
      
 101 
     | 
    
         
            +
              
         
     | 
| 
      
 102 
     | 
    
         
            +
              it 'raise template error' do
         
     | 
| 
      
 103 
     | 
    
         
            +
                lambda { @app.render('not_a.template') }.should raise_error(Frank::TemplateError)
         
     | 
| 
      
 104 
     | 
    
         
            +
              end
         
     | 
| 
      
 105 
     | 
    
         
            +
               
         
     | 
| 
      
 106 
     | 
    
         
            +
            end
         
     |