minimal 0.0.3 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +1 -1
- data/Rakefile +1 -20
- data/lib/minimal/template/form_builder_proxy.rb +1 -1
- data/lib/minimal/template.rb +2 -2
- data/lib/minimal/version.rb +1 -1
- metadata +20 -43
- data/test/all.rb +0 -3
- data/test/fixtures/views/foo/_partial.rb +0 -7
- data/test/fixtures/views/foo/form_for.rb +0 -11
- data/test/fixtures/views/foo/form_tag.rb +0 -11
- data/test/fixtures/views/foo/misc_helpers.rb +0 -16
- data/test/fixtures/views/foo/partial.rb +0 -12
- data/test/fixtures/views/foo/simple.rb +0 -18
- data/test/fixtures/views/foo/table.rb +0 -11
- data/test/fixtures/views/mime_types/partial.css.rb +0 -4
- data/test/fixtures/views/mime_types/partial.html.rb +0 -4
- data/test/template_handler_test.rb +0 -17
- data/test/template_test.rb +0 -117
- data/test/test_helper.rb +0 -52
data/Gemfile
CHANGED
data/Rakefile
CHANGED
@@ -1,28 +1,9 @@
|
|
1
1
|
require 'rake/testtask'
|
2
2
|
|
3
|
-
require File.expand_path("../lib/minimal/version", __FILE__)
|
4
|
-
|
5
3
|
task :default => [:test]
|
6
4
|
|
7
5
|
Rake::TestTask.new(:test) do |t|
|
8
6
|
t.pattern = "#{File.dirname(__FILE__)}/test/**/*_test.rb"
|
9
7
|
t.verbose = true
|
10
8
|
end
|
11
|
-
Rake::Task['test'].comment = "Run all tests"
|
12
|
-
|
13
|
-
|
14
|
-
begin
|
15
|
-
require 'jeweler'
|
16
|
-
Jeweler::Tasks.new do |s|
|
17
|
-
s.name = "minimal"
|
18
|
-
s.version = Minimal::VERSION
|
19
|
-
s.summary = "Minimal templating engine inspired by Markaby & Erector"
|
20
|
-
s.email = "svenfuchs@artweb-design.de"
|
21
|
-
s.homepage = "http://github.com/svenfuchs/minimal"
|
22
|
-
s.description = "Minimal templating engine inspired by Markaby & Erector and targeted at Rails 3"
|
23
|
-
s.authors = ['Sven Fuchs']
|
24
|
-
s.files = FileList["[A-Z]*", "{lib,test}/**/*"]
|
25
|
-
end
|
26
|
-
rescue LoadError
|
27
|
-
puts "Jeweler, or one of its dependencies, is not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
28
|
-
end
|
9
|
+
Rake::Task['test'].comment = "Run all tests"
|
@@ -14,7 +14,7 @@ class Minimal::Template
|
|
14
14
|
|
15
15
|
def method_missing(method, *args, &block)
|
16
16
|
if [:form_for, :fields_for].include?(method)
|
17
|
-
view.
|
17
|
+
self << view.send(method, *args) { |builder| yield(Proxy.new(self, builder)) }
|
18
18
|
else
|
19
19
|
super
|
20
20
|
end
|
data/lib/minimal/template.rb
CHANGED
@@ -3,7 +3,7 @@ class Minimal::Template
|
|
3
3
|
autoload :Handler, 'minimal/template/handler'
|
4
4
|
|
5
5
|
AUTO_BUFFER = %r(render|tag|error_message_|select|debug|_to|_for)
|
6
|
-
NO_AUTO_BUFFER = %r(form_tag|form_for)
|
6
|
+
# NO_AUTO_BUFFER = %r(form_tag|form_for)
|
7
7
|
|
8
8
|
TAG_NAMES = %w(a body div em fieldset h1 h2 h3 h4 head html img input label li
|
9
9
|
link ol option p pre script select span strong table thead tbody tfoot td th tr ul)
|
@@ -44,7 +44,7 @@ class Minimal::Template
|
|
44
44
|
end
|
45
45
|
|
46
46
|
def auto_buffer?(method)
|
47
|
-
AUTO_BUFFER =~ method.to_s && NO_AUTO_BUFFER !~ method.to_s
|
47
|
+
AUTO_BUFFER =~ method.to_s # && NO_AUTO_BUFFER !~ method.to_s
|
48
48
|
end
|
49
49
|
end
|
50
50
|
include Base
|
data/lib/minimal/version.rb
CHANGED
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 5
|
9
|
+
version: 0.0.5
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Sven Fuchs
|
@@ -14,47 +14,34 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-04-
|
17
|
+
date: 2010-04-03 00:00:00 +02:00
|
18
18
|
default_executable:
|
19
19
|
dependencies: []
|
20
20
|
|
21
|
-
description: Minimal templating engine inspired by Markaby & Erector and targeted at Rails 3
|
21
|
+
description: Minimal templating engine inspired by Markaby & Erector and targeted at Rails 3.
|
22
22
|
email: svenfuchs@artweb-design.de
|
23
23
|
executables: []
|
24
24
|
|
25
25
|
extensions: []
|
26
26
|
|
27
|
-
extra_rdoc_files:
|
28
|
-
|
27
|
+
extra_rdoc_files: []
|
28
|
+
|
29
29
|
files:
|
30
|
-
- Gemfile
|
31
|
-
- README.textile
|
32
|
-
- Rakefile
|
33
|
-
- lib/minimal.rb
|
34
|
-
- lib/minimal/template.rb
|
35
30
|
- lib/minimal/template/form_builder_proxy.rb
|
36
31
|
- lib/minimal/template/handler.rb
|
32
|
+
- lib/minimal/template.rb
|
37
33
|
- lib/minimal/version.rb
|
38
|
-
-
|
39
|
-
-
|
40
|
-
-
|
41
|
-
-
|
42
|
-
- test/fixtures/views/foo/misc_helpers.rb
|
43
|
-
- test/fixtures/views/foo/partial.rb
|
44
|
-
- test/fixtures/views/foo/simple.rb
|
45
|
-
- test/fixtures/views/foo/table.rb
|
46
|
-
- test/fixtures/views/mime_types/partial.css.rb
|
47
|
-
- test/fixtures/views/mime_types/partial.html.rb
|
48
|
-
- test/template_handler_test.rb
|
49
|
-
- test/template_test.rb
|
50
|
-
- test/test_helper.rb
|
34
|
+
- lib/minimal.rb
|
35
|
+
- Gemfile
|
36
|
+
- Rakefile
|
37
|
+
- README.textile
|
51
38
|
has_rdoc: true
|
52
39
|
homepage: http://github.com/svenfuchs/minimal
|
53
40
|
licenses: []
|
54
41
|
|
55
42
|
post_install_message:
|
56
|
-
rdoc_options:
|
57
|
-
|
43
|
+
rdoc_options: []
|
44
|
+
|
58
45
|
require_paths:
|
59
46
|
- lib
|
60
47
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -69,26 +56,16 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
69
56
|
- - ">="
|
70
57
|
- !ruby/object:Gem::Version
|
71
58
|
segments:
|
72
|
-
-
|
73
|
-
|
59
|
+
- 1
|
60
|
+
- 3
|
61
|
+
- 6
|
62
|
+
version: 1.3.6
|
74
63
|
requirements: []
|
75
64
|
|
76
|
-
rubyforge_project:
|
65
|
+
rubyforge_project: "[none]"
|
77
66
|
rubygems_version: 1.3.6
|
78
67
|
signing_key:
|
79
68
|
specification_version: 3
|
80
69
|
summary: Minimal templating engine inspired by Markaby & Erector
|
81
|
-
test_files:
|
82
|
-
|
83
|
-
- test/fixtures/views/foo/_partial.rb
|
84
|
-
- test/fixtures/views/foo/form_for.rb
|
85
|
-
- test/fixtures/views/foo/form_tag.rb
|
86
|
-
- test/fixtures/views/foo/misc_helpers.rb
|
87
|
-
- test/fixtures/views/foo/partial.rb
|
88
|
-
- test/fixtures/views/foo/simple.rb
|
89
|
-
- test/fixtures/views/foo/table.rb
|
90
|
-
- test/fixtures/views/mime_types/partial.css.rb
|
91
|
-
- test/fixtures/views/mime_types/partial.html.rb
|
92
|
-
- test/template_handler_test.rb
|
93
|
-
- test/template_test.rb
|
94
|
-
- test/test_helper.rb
|
70
|
+
test_files: []
|
71
|
+
|
data/test/all.rb
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
module Foo
|
2
|
-
class MiscHelpers < Minimal::Template
|
3
|
-
def content
|
4
|
-
image_tag('http://no-asset-host.com/rails.png')
|
5
|
-
debug('foo')
|
6
|
-
javascript_tag("alert('All is good')")
|
7
|
-
# div_for(Record.new) { self << 'content' }
|
8
|
-
tag('br')
|
9
|
-
content_tag(:p, 'Hello world!')
|
10
|
-
content_tag(:p) { self << 'Hello world!' }
|
11
|
-
content_tag(:p) { em 'Hello world!' }
|
12
|
-
content_tag(:p) { em { self << 'Hello world!' } }
|
13
|
-
link_to('foo', '#')
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
@@ -1,12 +0,0 @@
|
|
1
|
-
module Foo
|
2
|
-
class Partial < Minimal::Template
|
3
|
-
def content
|
4
|
-
div do
|
5
|
-
%w(foo bar).each do |local|
|
6
|
-
render :partial => 'foo/partial', :locals => { :local => local }
|
7
|
-
end
|
8
|
-
end
|
9
|
-
render :partial => 'foo/partial', :locals => { :local => 'baz' }
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
require File.expand_path('../test_helper', __FILE__)
|
2
|
-
|
3
|
-
class TemplateHandlerTest < Test::Unit::TestCase
|
4
|
-
def template_class_name(path)
|
5
|
-
handler = Minimal::Template::Handler.new
|
6
|
-
handler.send(:template_class_name, path)
|
7
|
-
end
|
8
|
-
|
9
|
-
test "template_class_name without a mime type" do
|
10
|
-
assert_equal 'Foo::Bar', template_class_name('path/to/views/foo/bar.rb')
|
11
|
-
end
|
12
|
-
|
13
|
-
test "template_class_name with a mime type" do
|
14
|
-
assert_equal 'Foo::Bar::Html', template_class_name('path/to/views/foo/bar.html.rb')
|
15
|
-
assert_equal 'Foo::Bar::Css', template_class_name('path/to/views/foo/bar.css.rb')
|
16
|
-
end
|
17
|
-
end
|
data/test/template_test.rb
DELETED
@@ -1,117 +0,0 @@
|
|
1
|
-
require File.expand_path('../test_helper', __FILE__)
|
2
|
-
|
3
|
-
class TemplateTest < Test::Unit::TestCase
|
4
|
-
def setup
|
5
|
-
@view = @template = nil
|
6
|
-
end
|
7
|
-
|
8
|
-
def view
|
9
|
-
@view ||= ActionView::Base.new(FIXTURES_PATH).tap do |view|
|
10
|
-
view.output_buffer = ActiveSupport::SafeBuffer.new rescue ''
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
def template
|
15
|
-
@template ||= Minimal::Template.new(view)
|
16
|
-
end
|
17
|
-
|
18
|
-
test "capturing a block" do
|
19
|
-
result = view.with_output_buffer do
|
20
|
-
view.concat('foo')
|
21
|
-
view.concat('bar')
|
22
|
-
'baz'
|
23
|
-
end
|
24
|
-
assert_equal 'foobar', result
|
25
|
-
end
|
26
|
-
|
27
|
-
test "capturing a helper with a block" do
|
28
|
-
block = lambda do
|
29
|
-
view.concat('foo')
|
30
|
-
view.concat('bar')
|
31
|
-
'baz'
|
32
|
-
end
|
33
|
-
result = view.content_tag(:div, &lambda { view.with_output_buffer(&block) })
|
34
|
-
assert_equal '<div>foobar</div>', result
|
35
|
-
end
|
36
|
-
|
37
|
-
test "call_view calling a non-concating helper without a block" do
|
38
|
-
result = template.send(:call_view, :number_with_precision, 1234)
|
39
|
-
assert_equal '1234.000', result
|
40
|
-
end
|
41
|
-
|
42
|
-
test "call_view calling a non-concating helper with a block" do
|
43
|
-
template.send(:call_view, :content_tag, :div) do
|
44
|
-
template << 'foo'
|
45
|
-
template << 'bar'
|
46
|
-
'baz'
|
47
|
-
end
|
48
|
-
assert_equal '<div>foobar</div>', view.output_buffer
|
49
|
-
end
|
50
|
-
|
51
|
-
test "call_view calling a concating helper with a block" do
|
52
|
-
template.send(:call_view, :form_for, 'foo', :url => '/foo') do |f|
|
53
|
-
template << f.text_field('foo')
|
54
|
-
template << f.text_field('bar')
|
55
|
-
'baz'
|
56
|
-
end
|
57
|
-
html = '<form action="/foo" method="post">' +
|
58
|
-
'<input id="foo_foo" name="foo[foo]" size="30" type="text" />' +
|
59
|
-
'<input id="foo_bar" name="foo[bar]" size="30" type="text" />' +
|
60
|
-
'</form>'
|
61
|
-
assert_equal html, view.output_buffer
|
62
|
-
end
|
63
|
-
|
64
|
-
# test "does not buffer but return a helper's result when :capture => true was passed'" do
|
65
|
-
# result = template.a('foo', :href => '#', :capture => true)
|
66
|
-
# assert_equal '<a href="#">foo</a>', result
|
67
|
-
# assert_equal '', view.output_buffer
|
68
|
-
# end
|
69
|
-
|
70
|
-
test "simple render with local assigns" do
|
71
|
-
html = '<html><head></head><body><h1>plain</h1><p>local</p><div><div>nested</div></div></body></html>'
|
72
|
-
assert_equal html, view.render(:file => 'foo/simple', :locals => { :local => 'local' })
|
73
|
-
end
|
74
|
-
|
75
|
-
test "partial rendering" do
|
76
|
-
html = '<div><p>foo</p><p>bar</p></div><p>baz</p>'
|
77
|
-
assert_equal html, view.render(:file => 'foo/partial')
|
78
|
-
end
|
79
|
-
|
80
|
-
test "table" do
|
81
|
-
html = '<table><tr><td>foo</td><td>bar</td><td>baz</td></tr></table>'
|
82
|
-
assert_equal html, view.render(:file => 'foo/table')
|
83
|
-
end
|
84
|
-
|
85
|
-
test "form_tag with input_tags" do
|
86
|
-
html = '<div>foo</div>' +
|
87
|
-
'<form action="/foo" method="post">' +
|
88
|
-
'<div><input id="bar" name="bar" type="text" /></div>' +
|
89
|
-
'<input id="baz" name="baz" type="text" />' +
|
90
|
-
'</form>'
|
91
|
-
assert_equal html, view.render(:file => 'foo/form_tag')
|
92
|
-
end
|
93
|
-
|
94
|
-
test "form_for" do
|
95
|
-
html = '<div>foo</div>' +
|
96
|
-
'<form action="/foo" method="post">' +
|
97
|
-
'<div><input id="foo_bar" name="foo[bar]" size="30" type="text" /></div>' +
|
98
|
-
'<input id="foo_baz" name="foo[baz]" size="30" type="text" />' +
|
99
|
-
'</form>'
|
100
|
-
assert_equal html, view.render(:file => 'foo/form_for')
|
101
|
-
end
|
102
|
-
|
103
|
-
test "misc_helpers" do
|
104
|
-
html = '<img alt="Rails" src="http://no-asset-host.com/rails.png" />' +
|
105
|
-
"<pre class='debug_dump'>--- foo</pre>" +
|
106
|
-
'<script type="text/javascript">//<![CDATA[alert(\'All is good\')//]]></script>' +
|
107
|
-
# '<div class="record" id="record_1">content</div>' +
|
108
|
-
'<br />' +
|
109
|
-
'<p>Hello world!</p>' +
|
110
|
-
'<p>Hello world!</p>' +
|
111
|
-
'<p><em>Hello world!</em></p>' +
|
112
|
-
'<p><em>Hello world!</em></p>' +
|
113
|
-
'<a href="#">foo</a>'
|
114
|
-
html
|
115
|
-
assert_equal html, view.render(:file => 'foo/misc_helpers').gsub("\n", '')
|
116
|
-
end
|
117
|
-
end
|
data/test/test_helper.rb
DELETED
@@ -1,52 +0,0 @@
|
|
1
|
-
$: << File.expand_path('../../lib', __FILE__)
|
2
|
-
|
3
|
-
# require 'rubygems'
|
4
|
-
# require 'bundler'
|
5
|
-
# Bundler.setup
|
6
|
-
# gem 'actionpack', '>=3.0.0.beta'
|
7
|
-
|
8
|
-
require 'test/unit'
|
9
|
-
require 'pp'
|
10
|
-
require 'minimal'
|
11
|
-
|
12
|
-
alias :require_dependency :require
|
13
|
-
|
14
|
-
Minimal::Template.send(:include, Minimal::Template::FormBuilderProxy)
|
15
|
-
|
16
|
-
ActionView::Template.register_template_handler('rb', Minimal::Template::Handler)
|
17
|
-
|
18
|
-
ActionView::Base.class_eval { def protect_against_forgery?; false end } # HAX
|
19
|
-
|
20
|
-
FIXTURES_PATH = File.expand_path('../fixtures/views', __FILE__)
|
21
|
-
|
22
|
-
class Record
|
23
|
-
def self.model_name; ActiveModel::Name.new(self) end
|
24
|
-
def id; 1 end
|
25
|
-
end
|
26
|
-
|
27
|
-
module TestMethod
|
28
|
-
def self.included(base)
|
29
|
-
base.class_eval do
|
30
|
-
def self.test(name, &block)
|
31
|
-
test_name = "test_#{name.gsub(/\s+/,'_')}".to_sym
|
32
|
-
defined = instance_method(test_name) rescue false
|
33
|
-
raise "#{test_name} is already defined in #{self}" if defined
|
34
|
-
if block_given?
|
35
|
-
define_method(test_name, &block)
|
36
|
-
else
|
37
|
-
define_method(test_name) do
|
38
|
-
flunk "No implementation provided for #{name}"
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
class Module
|
47
|
-
include TestMethod
|
48
|
-
end
|
49
|
-
|
50
|
-
class Test::Unit::TestCase
|
51
|
-
include TestMethod
|
52
|
-
end
|