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.
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  # #
2
3
  # # 注册action view handler
3
4
  # #
@@ -11,23 +11,23 @@ module MustacheRender::CoreExt
11
11
  end
12
12
 
13
13
  module SharedMethods
14
- def mustache_render template='', mustache={}
15
- result = ::MustacheRender::Mustache.render(template, mustache)
16
- impl_mustache_result_render result
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
- def mustache_file_render template_path, mustache={}
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
- # - template_path: 模板的路径
22
+ # 定义了三个方法:
23
+ # render template, data
24
+ # file_render template_path, data
25
+ # db_render template_path, data
27
26
  #
28
- def mustache_db_render(template_path, mustache={})
29
- result = ::MustacheRender::Mustache.db_render(template_path, mustache)
30
- impl_mustache_result_render result
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(result)
43
- raw result
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(result)
53
- render :text => result
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
- def render(template='')
11
- ::MustacheRender::Mustache.render template, self
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 file_render path
15
- ::MustacheRender::Mustache.file_render path, self
16
- end
16
+ # def render(template='')
17
+ # ::MustacheRender::Mustache.render template, self
18
+ # end
17
19
 
18
- def db_render path
19
- ::MustacheRender::Mustache.db_render path, self
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
- impl_render data, ctx
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 impl_render(data=template, ctx={})
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
@@ -3,7 +3,7 @@ module MustacheRender
3
3
  VERSION_NUMBERS = [
4
4
  VERSION_MAJOR = 0,
5
5
  VERSION_MINOR = 0,
6
- VERSION_BUILD = 13,
6
+ VERSION_BUILD = 14,
7
7
  ]
8
8
 
9
9
  VERSION = VERSION_NUMBERS.join(".")
@@ -9,7 +9,8 @@ module MustacheRender
9
9
  MustacheRender.config.logger
10
10
  end
11
11
 
12
- autoload :Adapter, 'mustache_render/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'
@@ -0,0 +1,14 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'spec_helper'
3
+
4
+ describe 'MustacheRender config' do
5
+ context 'config' do
6
+ before :each do
7
+
8
+ end
9
+
10
+ it 'config not nil' do
11
+ ::MustacheRender.config.nil?.should == false
12
+ end
13
+ end
14
+ end
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  require 'spec_helper'
2
3
 
3
4
  describe 'MustacheRender::Mustache.db_render' do
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  require 'mustache_render'
2
3
 
3
4
 
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
- version: 0.0.13
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
- date: 2013-01-26 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
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
- version_requirements: !ruby/object:Gem::Requirement
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
25
  none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: '0'
30
- - !ruby/object:Gem::Dependency
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
- version_requirements: !ruby/object:Gem::Requirement
38
+ requirement: &id002 !ruby/object:Gem::Requirement
41
39
  none: false
42
- requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
45
- version: '0'
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
- files:
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
- require_paths:
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
- version: '0'
139
- required_rubygems_version: !ruby/object:Gem::Requirement
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
- version: '0'
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.8.24
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
+