mustache_render 0.0.13 → 0.0.14
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/lib/mustache_render/core_ext/action_view_handler.rb +1 -0
- data/lib/mustache_render/core_ext/base_controller_ext.rb +27 -16
- data/lib/mustache_render/mustache/data.rb +14 -8
- data/lib/mustache_render/mustache.rb +14 -2
- data/lib/mustache_render/populator_base.rb +89 -0
- data/lib/mustache_render/version.rb +1 -1
- data/lib/mustache_render.rb +2 -1
- data/spec/lib/config_spec.rb +14 -0
- data/spec/lib/mustache/file_render_spec.rb +1 -0
- data/spec/spec_helper.rb +1 -0
- metadata +66 -47
@@ -11,23 +11,23 @@ module MustacheRender::CoreExt
|
|
11
11
|
end
|
12
12
|
|
13
13
|
module SharedMethods
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
end
|
14
|
+
# 是否是mustache_render调试模式
|
15
|
+
def mustache_render_at_debug_mode?
|
16
|
+
return @_mustache_render_at_debug_mode if defined?(@_mustache_render_at_debug_mode)
|
18
17
|
|
19
|
-
|
20
|
-
result = ::MustacheRender::Mustache.file_render(template_path, mustache)
|
21
|
-
impl_mustache_result_render result
|
18
|
+
@_mustache_render_at_debug_mode = Rails.env.development? && params[:mustache_render_debug]
|
22
19
|
end
|
23
20
|
|
24
21
|
#
|
25
|
-
#
|
26
|
-
#
|
22
|
+
# 定义了三个方法:
|
23
|
+
# render template, data
|
24
|
+
# file_render template_path, data
|
25
|
+
# db_render template_path, data
|
27
26
|
#
|
28
|
-
|
29
|
-
|
30
|
-
|
27
|
+
[:render, :file_render, :db_render, :impl_render].each do |method_name|
|
28
|
+
define_method "mustache_#{method_name}".to_sym do |path_or_template, data|
|
29
|
+
impl_mustache_result_render method_name, path_or_template, data
|
30
|
+
end
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
@@ -39,8 +39,15 @@ module MustacheRender::CoreExt
|
|
39
39
|
|
40
40
|
private
|
41
41
|
|
42
|
-
def impl_mustache_result_render(
|
43
|
-
|
42
|
+
def impl_mustache_result_render(method_name, path_or_template='', data={})
|
43
|
+
if mustache_render_at_debug_mode?
|
44
|
+
::MustacheRender.logger.debug <<-DEBUG_TEXT
|
45
|
+
>>> impl_mustache_result_render##{method_name} path_or_template: #{path_or_template}
|
46
|
+
>>> data: #{data.inspect}
|
47
|
+
DEBUG_TEXT
|
48
|
+
end
|
49
|
+
|
50
|
+
raw(::MustacheRender::Mustache.send method_name, path_or_template, data)
|
44
51
|
end
|
45
52
|
end
|
46
53
|
|
@@ -49,8 +56,12 @@ module MustacheRender::CoreExt
|
|
49
56
|
|
50
57
|
private
|
51
58
|
|
52
|
-
def impl_mustache_result_render(
|
53
|
-
|
59
|
+
def impl_mustache_result_render(method_name, path_or_template='', data={})
|
60
|
+
if mustache_render_at_debug_mode?
|
61
|
+
render :json => data
|
62
|
+
else
|
63
|
+
render :text => (::MustacheRender::Mustache.send method_name, path_or_template, data)
|
64
|
+
end
|
54
65
|
end
|
55
66
|
end
|
56
67
|
end
|
@@ -7,17 +7,23 @@ module MustacheRender
|
|
7
7
|
self.merge! options
|
8
8
|
end
|
9
9
|
|
10
|
-
|
11
|
-
|
10
|
+
[:render, :file_render, :db_render, :impl_render].each do |method_name|
|
11
|
+
define_method method_name do |path_or_template|
|
12
|
+
::MustacheRender::Mustache.send method_name, path_or_template, self
|
13
|
+
end
|
12
14
|
end
|
13
15
|
|
14
|
-
def
|
15
|
-
|
16
|
-
end
|
16
|
+
# def render(template='')
|
17
|
+
# ::MustacheRender::Mustache.render template, self
|
18
|
+
# end
|
17
19
|
|
18
|
-
def
|
19
|
-
|
20
|
-
end
|
20
|
+
# def file_render path
|
21
|
+
# ::MustacheRender::Mustache.file_render path, self
|
22
|
+
# end
|
23
|
+
|
24
|
+
# def db_render path
|
25
|
+
# ::MustacheRender::Mustache.db_render path, self
|
26
|
+
# end
|
21
27
|
|
22
28
|
def []=(name, value)
|
23
29
|
result = super(name.to_s, value)
|
@@ -5,6 +5,9 @@ require 'mustache_render/mustache/data'
|
|
5
5
|
|
6
6
|
module MustacheRender
|
7
7
|
class Mustache
|
8
|
+
# 可用的渲染的方法
|
9
|
+
# AVAILABLE_RENDER_METHODS = [:render, :file_render, :db_render].freeze
|
10
|
+
|
8
11
|
def self.render(*args)
|
9
12
|
new.render(*args)
|
10
13
|
end
|
@@ -21,7 +24,7 @@ module MustacheRender
|
|
21
24
|
|
22
25
|
def render(data = template, ctx = {})
|
23
26
|
impl_logger :level => :debug, :operation => 'MustacheRender::Mustache.render' do
|
24
|
-
|
27
|
+
impl_template_render data, ctx
|
25
28
|
end
|
26
29
|
end
|
27
30
|
|
@@ -51,6 +54,15 @@ module MustacheRender
|
|
51
54
|
@context ||= Context.new(self)
|
52
55
|
end
|
53
56
|
|
57
|
+
# 使用default_media 进行渲染
|
58
|
+
def self.impl_render(name, context={})
|
59
|
+
self.new.send :impl_render, name, context
|
60
|
+
end
|
61
|
+
|
62
|
+
def impl_render name, context={}
|
63
|
+
send "#{::MustacheRender.config.default_render_media}_render".to_sym, name, context
|
64
|
+
end
|
65
|
+
|
54
66
|
# Given a file name and an optional context, attempts to load and
|
55
67
|
# render the file as a template.
|
56
68
|
def self.file_render(name, context = {})
|
@@ -288,7 +300,7 @@ module MustacheRender
|
|
288
300
|
" \033[4;34;1m#{operation}\033[0m \033[0;1m#{message}\033[0m"
|
289
301
|
end
|
290
302
|
|
291
|
-
def
|
303
|
+
def impl_template_render(data=template, ctx={})
|
292
304
|
self.template = data
|
293
305
|
|
294
306
|
return self.template.render(context) if ctx == {}
|
@@ -0,0 +1,89 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
module MustacheRender
|
3
|
+
class PopulatorBase
|
4
|
+
attr_reader :data
|
5
|
+
|
6
|
+
def initialize options={}
|
7
|
+
@context = options[:context]
|
8
|
+
@data = ::MustacheRender::Mustache::Data.new
|
9
|
+
@template = options[:template]
|
10
|
+
@_scope = options[:scope]
|
11
|
+
@_method = options[:method] || "#{@context.controller_name}_#{@context.action_name}"
|
12
|
+
|
13
|
+
self.send _impl_get_render_method_name
|
14
|
+
end
|
15
|
+
|
16
|
+
#
|
17
|
+
# impl_collect_reader_board
|
18
|
+
#
|
19
|
+
def collect_record record_name, record, options={}, &block
|
20
|
+
if record
|
21
|
+
result = self.send("impl_collect_#{record_name}".to_sym, record, options, &block) || {}
|
22
|
+
result = _impl_collect_require_fields(result, record_name, record, options, &block)
|
23
|
+
result
|
24
|
+
else
|
25
|
+
{
|
26
|
+
'miss?' => true
|
27
|
+
}
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def collect_records record_name, records, options={}, &block
|
32
|
+
records.map do |record|
|
33
|
+
collect_record record_name, record, options, &block
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
#
|
38
|
+
# render template
|
39
|
+
# file_render template_path
|
40
|
+
# db_render template_path
|
41
|
+
#
|
42
|
+
[:render, :file_render, :db_render, :impl_render].each do |method_name|
|
43
|
+
define_method method_name do |path_or_template=nil|
|
44
|
+
@context.send "mustache_#{method_name}".to_sym, "#{path_or_template || @template}", @data
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
private
|
49
|
+
|
50
|
+
def _impl_collect_require_fields result, record_name, record, options={}
|
51
|
+
_cache_names = {}
|
52
|
+
|
53
|
+
(options[:fields] || []).each do |field|
|
54
|
+
formated_method_name = "format_field_#{record_name}_#{field}".to_sym
|
55
|
+
|
56
|
+
if self.respond_to?(formated_method_name)
|
57
|
+
(result[:fields] ||= {}).merge!(
|
58
|
+
field => self.send(formated_method_name, record, options)
|
59
|
+
)
|
60
|
+
elsif record.respond_to?(field)
|
61
|
+
(result[:fields] ||= {}).merge!(
|
62
|
+
field => record.send(field)
|
63
|
+
)
|
64
|
+
else
|
65
|
+
raise "#{self.class.to_s} not define method: #{formated_method_name} or #{record_name} can not respond_to: #{field}"
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
result
|
70
|
+
end
|
71
|
+
|
72
|
+
|
73
|
+
def _impl_get_render_method_name
|
74
|
+
"render#{"_#{@_scope}" if @scope.present?}_#{@_method}"
|
75
|
+
end
|
76
|
+
|
77
|
+
class << self
|
78
|
+
#
|
79
|
+
# 定义了
|
80
|
+
#
|
81
|
+
[:render, :file_render, :db_render, :impl_render].each do |method_name|
|
82
|
+
define_method method_name do |options={}|
|
83
|
+
self.new(options).send method_name
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
end
|
89
|
+
end
|
data/lib/mustache_render.rb
CHANGED
@@ -9,7 +9,8 @@ module MustacheRender
|
|
9
9
|
MustacheRender.config.logger
|
10
10
|
end
|
11
11
|
|
12
|
-
autoload :Adapter,
|
12
|
+
autoload :Adapter, 'mustache_render/adapter'
|
13
|
+
autoload :PopulatorBase, 'mustache_render/populator_base'
|
13
14
|
|
14
15
|
module Manage
|
15
16
|
autoload :BaseHelper, 'mustache_render/helpers/mustache_render/manage/base_helper'
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,55 +1,61 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: mustache_render
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 3
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 14
|
10
|
+
version: 0.0.14
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- happy
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
17
|
+
|
18
|
+
date: 2013-01-28 00:00:00 +08:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
15
22
|
name: awesome_nested_set
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
|
-
requirements:
|
19
|
-
- - ! '>='
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: '0'
|
22
|
-
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
25
|
none: false
|
26
|
-
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
|
30
|
-
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
version: "0"
|
33
|
+
type: :runtime
|
34
|
+
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
31
36
|
name: sqlite3
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
|
-
requirements:
|
35
|
-
- - ! '>='
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
version: '0'
|
38
|
-
type: :development
|
39
37
|
prerelease: false
|
40
|
-
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
39
|
none: false
|
42
|
-
requirements:
|
43
|
-
- -
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
hash: 3
|
44
|
+
segments:
|
45
|
+
- 0
|
46
|
+
version: "0"
|
47
|
+
type: :development
|
48
|
+
version_requirements: *id002
|
46
49
|
description: Description of MustacheRender.
|
47
|
-
email:
|
50
|
+
email:
|
48
51
|
- andywang7259@gmail.com
|
49
52
|
executables: []
|
53
|
+
|
50
54
|
extensions: []
|
55
|
+
|
51
56
|
extra_rdoc_files: []
|
52
|
-
|
57
|
+
|
58
|
+
files:
|
53
59
|
- lib/mustache_render.rb
|
54
60
|
- lib/tasks/mustache_render_tasks.rake
|
55
61
|
- lib/generators/mustache_render/install_generator.rb
|
@@ -105,10 +111,12 @@ files:
|
|
105
111
|
- lib/mustache_render/views/mustache_render/manage/folders/show.html.erb
|
106
112
|
- lib/mustache_render/views/mustache_render/manage/folders/_new_2.html.erb
|
107
113
|
- lib/mustache_render/views/mustache_render/manage/folders/_edit_2.html.erb
|
114
|
+
- lib/mustache_render/populator_base.rb
|
108
115
|
- lib/mustache_render/adapter.rb
|
109
116
|
- spec/lib/mustache/data_spec.rb
|
110
117
|
- spec/lib/mustache/file_render_spec.rb
|
111
118
|
- spec/lib/mustache/basic_render_spec.rb
|
119
|
+
- spec/lib/config_spec.rb
|
112
120
|
- spec/lib/resources/templates/basic/6.mustache
|
113
121
|
- spec/lib/resources/templates/basic/2.mustache
|
114
122
|
- spec/lib/resources/templates/basic/1.mustache
|
@@ -124,28 +132,39 @@ files:
|
|
124
132
|
- MIT-LICENSE
|
125
133
|
- Rakefile
|
126
134
|
- README.md
|
135
|
+
has_rdoc: true
|
127
136
|
homepage: http://blogsoso.net/
|
128
137
|
licenses: []
|
138
|
+
|
129
139
|
post_install_message:
|
130
140
|
rdoc_options: []
|
131
|
-
|
141
|
+
|
142
|
+
require_paths:
|
132
143
|
- lib
|
133
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
144
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
134
145
|
none: false
|
135
|
-
requirements:
|
136
|
-
- -
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
|
139
|
-
|
146
|
+
requirements:
|
147
|
+
- - ">="
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
hash: 3
|
150
|
+
segments:
|
151
|
+
- 0
|
152
|
+
version: "0"
|
153
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
140
154
|
none: false
|
141
|
-
requirements:
|
142
|
-
- -
|
143
|
-
- !ruby/object:Gem::Version
|
144
|
-
|
155
|
+
requirements:
|
156
|
+
- - ">="
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
hash: 3
|
159
|
+
segments:
|
160
|
+
- 0
|
161
|
+
version: "0"
|
145
162
|
requirements: []
|
163
|
+
|
146
164
|
rubyforge_project:
|
147
|
-
rubygems_version: 1.
|
165
|
+
rubygems_version: 1.3.7
|
148
166
|
signing_key:
|
149
167
|
specification_version: 3
|
150
168
|
summary: Summary of MustacheRender.
|
151
169
|
test_files: []
|
170
|
+
|