minimal 0.0.8 → 0.0.10
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/Gemfile +3 -1
- data/Gemfile.lock +37 -0
- data/README.textile +1 -1
- data/lib/minimal/template/form_builder_proxy.rb +13 -3
- data/lib/minimal/template/handler.rb +6 -3
- data/lib/minimal/template/translated_tags.rb +13 -0
- data/lib/minimal/template.rb +7 -6
- data/lib/minimal/version.rb +1 -1
- metadata +43 -6
data/Gemfile
CHANGED
data/Gemfile.lock
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
GEM
|
2
|
+
remote: http://gemcutter.org/
|
3
|
+
specs:
|
4
|
+
abstract (1.0.0)
|
5
|
+
actionpack (3.0.0.rc)
|
6
|
+
activemodel (= 3.0.0.rc)
|
7
|
+
activesupport (= 3.0.0.rc)
|
8
|
+
builder (~> 2.1.2)
|
9
|
+
erubis (~> 2.6.6)
|
10
|
+
i18n (~> 0.4.1)
|
11
|
+
rack (~> 1.2.1)
|
12
|
+
rack-mount (~> 0.6.9)
|
13
|
+
rack-test (~> 0.5.4)
|
14
|
+
tzinfo (~> 0.3.22)
|
15
|
+
activemodel (3.0.0.rc)
|
16
|
+
activesupport (= 3.0.0.rc)
|
17
|
+
builder (~> 2.1.2)
|
18
|
+
i18n (~> 0.4.1)
|
19
|
+
activesupport (3.0.0.rc)
|
20
|
+
builder (2.1.2)
|
21
|
+
erubis (2.6.6)
|
22
|
+
abstract (>= 1.0.0)
|
23
|
+
i18n (0.4.1)
|
24
|
+
rack (1.2.1)
|
25
|
+
rack-mount (0.6.9)
|
26
|
+
rack (>= 1.0.0)
|
27
|
+
rack-test (0.5.4)
|
28
|
+
rack (>= 1.0)
|
29
|
+
test_declarative (0.0.3)
|
30
|
+
tzinfo (0.3.22)
|
31
|
+
|
32
|
+
PLATFORMS
|
33
|
+
ruby
|
34
|
+
|
35
|
+
DEPENDENCIES
|
36
|
+
actionpack (>= 3.0.0.beta2)
|
37
|
+
test_declarative
|
data/README.textile
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
class Minimal::Template
|
2
2
|
module FormBuilderProxy
|
3
|
+
PROXY_TAGS = [:form_for, :fields_for]
|
4
|
+
|
3
5
|
class Proxy
|
4
6
|
attr_reader :template, :builder
|
5
7
|
|
@@ -8,13 +10,21 @@ class Minimal::Template
|
|
8
10
|
end
|
9
11
|
|
10
12
|
def method_missing(method, *args, &block)
|
11
|
-
|
13
|
+
if PROXY_TAGS.include?(method)
|
14
|
+
template << builder.send(method, *args) do |builder|
|
15
|
+
yield(Proxy.new(template, builder))
|
16
|
+
end
|
17
|
+
else
|
18
|
+
template << builder.send(method, *args, &block)
|
19
|
+
end
|
12
20
|
end
|
13
21
|
end
|
14
22
|
|
15
23
|
def method_missing(method, *args, &block)
|
16
|
-
if
|
17
|
-
self << view.send(method, *args)
|
24
|
+
if PROXY_TAGS.include?(method)
|
25
|
+
self << view.send(method, *args) do |builder|
|
26
|
+
yield(Proxy.new(self, builder))
|
27
|
+
end
|
18
28
|
else
|
19
29
|
super
|
20
30
|
end
|
@@ -4,16 +4,19 @@ class Minimal::Template
|
|
4
4
|
|
5
5
|
def compile(template)
|
6
6
|
require_dependency template.identifier
|
7
|
+
class_name, format = template_class_name_and_format(template.identifier)
|
7
8
|
<<-code
|
8
9
|
@output_buffer = ActiveSupport::SafeBuffer.new
|
9
|
-
#{
|
10
|
+
template, format = #{class_name}, #{format.inspect}
|
11
|
+
template.new(self)._render(local_assigns, format) { |*args| yield(*args) }
|
10
12
|
code
|
11
13
|
end
|
12
14
|
|
13
15
|
protected
|
14
16
|
|
15
|
-
def
|
16
|
-
|
17
|
+
def template_class_name_and_format(path)
|
18
|
+
%r(views/(.*?)(\.[^\.]*)?.rb) =~ path
|
19
|
+
[$1.try(:camelize), ($2 || 'html').gsub('.', '').to_sym]
|
17
20
|
end
|
18
21
|
end
|
19
22
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class Minimal::Template
|
2
|
+
TRANSLATED_TAGS = %w(link_to button_to a div em h1 h2 h3 h4 h5 h6 label li
|
3
|
+
option p pre span strong td title)
|
4
|
+
|
5
|
+
module TranslatedTags
|
6
|
+
TRANSLATED_TAGS.each do |name|
|
7
|
+
define_method(name) do |*args, &block|
|
8
|
+
args[0] = t(args[0]) if args[0].is_a?(Symbol)
|
9
|
+
super(*args, &block)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/lib/minimal/template.rb
CHANGED
@@ -1,22 +1,23 @@
|
|
1
1
|
class Minimal::Template
|
2
2
|
autoload :FormBuilderProxy, 'minimal/template/form_builder_proxy'
|
3
3
|
autoload :Handler, 'minimal/template/handler'
|
4
|
+
autoload :TranslatedTags, 'minimal/template/translated_tags'
|
4
5
|
|
5
6
|
AUTO_BUFFER = %r(render|tag|error_message_|select|debug|_to|_for)
|
6
|
-
|
7
|
-
|
8
|
-
link ol option p pre script select span strong table thead tbody tfoot td th tr ul)
|
7
|
+
TAG_NAMES = %w(a body div em fieldset h1 h2 h3 h4 h5 h6 head html img input label li link
|
8
|
+
ol option p pre script select span strong table thead tbody tfoot td title th tr ul)
|
9
9
|
|
10
10
|
module Base
|
11
|
-
attr_accessor :view, :locals
|
11
|
+
attr_accessor :view, :locals, :block
|
12
12
|
|
13
13
|
def initialize(view = nil)
|
14
14
|
@view, @locals, @_buffer = view, {}, {}
|
15
15
|
end
|
16
16
|
|
17
|
-
def _render(locals = nil)
|
17
|
+
def _render(locals = nil, format = :html, &block)
|
18
18
|
@locals = locals || {}
|
19
|
-
|
19
|
+
self.block = lambda { |*args| self << block.call(*args) }
|
20
|
+
send(:"to_#{format}", &self.block)
|
20
21
|
view.output_buffer
|
21
22
|
end
|
22
23
|
|
data/lib/minimal/version.rb
CHANGED
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minimal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 11
|
4
5
|
prerelease: false
|
5
6
|
segments:
|
6
7
|
- 0
|
7
8
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
9
|
+
- 10
|
10
|
+
version: 0.0.10
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Sven Fuchs
|
@@ -14,10 +15,40 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date: 2010-
|
18
|
+
date: 2010-08-10 00:00:00 +02:00
|
18
19
|
default_executable:
|
19
|
-
dependencies:
|
20
|
-
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: actionpack
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: -1848230022
|
30
|
+
segments:
|
31
|
+
- 3
|
32
|
+
- 0
|
33
|
+
- 0
|
34
|
+
- beta2
|
35
|
+
version: 3.0.0.beta2
|
36
|
+
type: :runtime
|
37
|
+
version_requirements: *id001
|
38
|
+
- !ruby/object:Gem::Dependency
|
39
|
+
name: test_declarative
|
40
|
+
prerelease: false
|
41
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
hash: 3
|
47
|
+
segments:
|
48
|
+
- 0
|
49
|
+
version: "0"
|
50
|
+
type: :development
|
51
|
+
version_requirements: *id002
|
21
52
|
description: Minimal templating engine inspired by Markaby & Erector and targeted at Rails 3.
|
22
53
|
email: svenfuchs@artweb-design.de
|
23
54
|
executables: []
|
@@ -29,10 +60,12 @@ extra_rdoc_files: []
|
|
29
60
|
files:
|
30
61
|
- lib/minimal/template/form_builder_proxy.rb
|
31
62
|
- lib/minimal/template/handler.rb
|
63
|
+
- lib/minimal/template/translated_tags.rb
|
32
64
|
- lib/minimal/template.rb
|
33
65
|
- lib/minimal/version.rb
|
34
66
|
- lib/minimal.rb
|
35
67
|
- Gemfile
|
68
|
+
- Gemfile.lock
|
36
69
|
- Rakefile
|
37
70
|
- README.textile
|
38
71
|
has_rdoc: true
|
@@ -45,16 +78,20 @@ rdoc_options: []
|
|
45
78
|
require_paths:
|
46
79
|
- lib
|
47
80
|
required_ruby_version: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
48
82
|
requirements:
|
49
83
|
- - ">="
|
50
84
|
- !ruby/object:Gem::Version
|
85
|
+
hash: 3
|
51
86
|
segments:
|
52
87
|
- 0
|
53
88
|
version: "0"
|
54
89
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
90
|
+
none: false
|
55
91
|
requirements:
|
56
92
|
- - ">="
|
57
93
|
- !ruby/object:Gem::Version
|
94
|
+
hash: 23
|
58
95
|
segments:
|
59
96
|
- 1
|
60
97
|
- 3
|
@@ -63,7 +100,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
63
100
|
requirements: []
|
64
101
|
|
65
102
|
rubyforge_project: "[none]"
|
66
|
-
rubygems_version: 1.3.
|
103
|
+
rubygems_version: 1.3.7
|
67
104
|
signing_key:
|
68
105
|
specification_version: 3
|
69
106
|
summary: Minimal templating engine inspired by Markaby & Erector
|