mustache_render 0.0.10 → 0.0.12

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.
@@ -23,17 +23,19 @@ MustacheRender.configure do |config|
23
23
  # 当文件模板不存在时候是否抛出异常
24
24
  config.raise_on_file_template_miss = true
25
25
 
26
+ config.logger = Rails.logger
27
+
26
28
  ### 模板的相关配置 ###########################
27
- # 数据库模板是否需要缓存
28
- config.db_template_cache = true
29
- # 文件模板是否需要缓存
30
- config.file_template_cache = false
31
- # 数据库模板缓存过期时间
32
- config.db_template_cache_expires_in = 1.hours
33
- # 文件模板缓存的过期时间, 注意文件系统没有自动清理缓存的机制,建议设置的短一些
34
- config.file_template_cache_expires_in = 1.minutes
35
- # 缓存的媒介
36
- config.cache_store = Rails.cache
29
+ # # 数据库模板是否需要缓存
30
+ # config.db_template_cache = true
31
+ # # 文件模板是否需要缓存
32
+ # config.file_template_cache = false
33
+ # # 数据库模板缓存过期时间
34
+ # config.db_template_cache_expires_in = 1.hours
35
+ # # 文件模板缓存的过期时间, 注意文件系统没有自动清理缓存的机制,建议设置的短一些
36
+ # config.file_template_cache_expires_in = 1.minutes
37
+ # # 缓存的媒介
38
+ # config.cache_store = Rails.cache
37
39
 
38
40
  # 版本适配器的配置
39
41
  config.adapter_configure do |adapter|
@@ -5,10 +5,22 @@ module MustacheRender
5
5
 
6
6
  def configure
7
7
  yield self.config ||= Config.new
8
+ self.config.apply!
8
9
  end
9
10
  end
10
11
 
11
12
  class Config
13
+ def apply!
14
+ # if self.action_view_handler?
15
+ # if defined?(::ActionView::Template)
16
+ # ::ActionView::Template.register_template_handler(
17
+ # self.action_view_handler_extension.to_sym,
18
+ # ::MustacheRender::CoreExt::ActionViewHandler
19
+ # )
20
+ # end
21
+ # end
22
+ end
23
+
12
24
  def initialize
13
25
  end
14
26
 
@@ -21,6 +33,18 @@ module MustacheRender
21
33
  end
22
34
  end
23
35
 
36
+ def action_view_handler?
37
+ if defined?(@_use_action_view_handler)
38
+ @_use_action_view_handler
39
+ else
40
+ true
41
+ end
42
+ end
43
+
44
+ def use_action_view_handler= _bool
45
+ @_use_action_view_handler = _bool unless defined?(@_use_action_view_handler)
46
+ end
47
+
24
48
  #
25
49
  # 默认的渲染媒介
26
50
  #
@@ -48,20 +72,22 @@ module MustacheRender
48
72
  @user_login_url ||= url
49
73
  end
50
74
 
51
- def cache
52
- return @_cache_store if defined?(@_cache_store)
75
+ # def cache
76
+ # return @_cache_store if defined?(@_cache_store)
53
77
 
54
- @_cache_store ||= Rails.cache
55
- # @_cache_store ||= MemCache.new('localhost:11211', :namespace => 'mustache_render#cache')
56
- end
78
+ # @_cache_store ||= Rails.cache
79
+ # # @_cache_store ||= MemCache.new('localhost:11211', :namespace => 'mustache_render#cache')
80
+ # end
57
81
 
58
- def cache_store= cache_store
59
- @_cache_store ||= cache_store
60
- end
82
+ # def cache_store= cache_store
83
+ # @_cache_store ||= cache_store
84
+ # end
61
85
 
62
86
  def logger
63
87
  return @_logger if defined?(@_logger)
64
88
 
89
+ require 'logger'
90
+
65
91
  @_logger ||= ::Logger.new(STDOUT)
66
92
  end
67
93
 
@@ -69,57 +95,57 @@ module MustacheRender
69
95
  @_logger ||= logger
70
96
  end
71
97
 
72
- #
73
- # 是否开启缓存
74
- #
75
- def db_template_cache?
76
- if defined?(@_db_template_cache)
77
- @_db_template_cache
78
- else
79
- true
80
- end
81
- end
82
-
83
- #
84
- # 是否开启缓存
85
- #
86
- def file_template_cache?
87
- if defined?(@_file_template_cache)
88
- @_file_template_cache
89
- else
90
- false
91
- end
92
- end
93
-
94
- #
95
- # 设置是否启用缓存
96
- #
97
- def db_template_cache= user_cache
98
- @_db_template_cache = user_cache unless defined?(@_db_template_cache)
99
- end
100
-
101
- #
102
- # 设置是否启用缓存
103
- #
104
- def file_template_cache= user_cache
105
- @_file_template_cache = user_cache unless defined?(@_file_template_cache)
106
- end
107
-
108
- def db_template_cache_expires_in
109
- @db_template_cache_expires_in ||= 1.hours
110
- end
111
-
112
- def file_template_cache_expires_in
113
- @file_template_cache_expires_in ||= 5.minutes
114
- end
115
-
116
- def db_template_cache_expires_in= expires_in
117
- @db_template_cache_expires_in ||= expires_in
118
- end
119
-
120
- def file_template_cache_expires_in= expires_in
121
- @file_template_cache_expires_in ||= expires_in
122
- end
98
+ # #
99
+ # # 是否开启缓存
100
+ # #
101
+ # def db_template_cache?
102
+ # if defined?(@_db_template_cache)
103
+ # @_db_template_cache
104
+ # else
105
+ # true
106
+ # end
107
+ # end
108
+
109
+ # #
110
+ # # 是否开启缓存
111
+ # #
112
+ # def file_template_cache?
113
+ # if defined?(@_file_template_cache)
114
+ # @_file_template_cache
115
+ # else
116
+ # false
117
+ # end
118
+ # end
119
+
120
+ # #
121
+ # # 设置是否启用缓存
122
+ # #
123
+ # def db_template_cache= user_cache
124
+ # @_db_template_cache = user_cache unless defined?(@_db_template_cache)
125
+ # end
126
+
127
+ # #
128
+ # # 设置是否启用缓存
129
+ # #
130
+ # def file_template_cache= user_cache
131
+ # @_file_template_cache = user_cache unless defined?(@_file_template_cache)
132
+ # end
133
+
134
+ # def db_template_cache_expires_in
135
+ # @db_template_cache_expires_in ||= 1.hours
136
+ # end
137
+
138
+ # def file_template_cache_expires_in
139
+ # @file_template_cache_expires_in ||= 5.minutes
140
+ # end
141
+
142
+ # def db_template_cache_expires_in= expires_in
143
+ # @db_template_cache_expires_in ||= expires_in
144
+ # end
145
+
146
+ # def file_template_cache_expires_in= expires_in
147
+ # @file_template_cache_expires_in ||= expires_in
148
+ # end
123
149
 
124
150
  def manage_center_need_login?
125
151
  if defined?(@manage_center_need_login)
@@ -149,6 +175,14 @@ module MustacheRender
149
175
  @file_template_root_path ||= path
150
176
  end
151
177
 
178
+ # def action_view_handler_extension
179
+ # @action_view_handler_extension ||= :mustache
180
+ # end
181
+
182
+ # def action_view_handler_extension= name
183
+ # @action_view_handler_extension ||= name
184
+ # end
185
+
152
186
  def db_template_extension
153
187
  @db_template_extension ||= '.mustache'
154
188
  end
@@ -203,3 +237,10 @@ module MustacheRender
203
237
 
204
238
  end
205
239
  end
240
+
241
+ # if ::MustacheRender.config.action_view_handler?
242
+ # ActionView::Template.register_template_handler(
243
+ # ::MustacheRender.config.db_template_extension.to_sym,
244
+ # ::MustacheRender::CoreExt::ActionViewHandler
245
+ # )
246
+ # end
@@ -0,0 +1,17 @@
1
+ # #
2
+ # # 注册action view handler
3
+ # #
4
+ # #
5
+ # module MustacheRender::CoreExt
6
+ # module ActionViewHandler
7
+ # def self.call template
8
+ # if template.locals.include? :mustache
9
+ # ::MustacheRender::Mustache.render(template.source.inspect, {}).html_safe
10
+ # else
11
+ # "#{template.source.inspect}".html_safe
12
+ # end
13
+ # end
14
+ #
15
+ # end
16
+ # end
17
+ #
@@ -19,21 +19,14 @@ module MustacheRender
19
19
  end
20
20
 
21
21
  def render(data = template, ctx = {})
22
- self.template = data
23
-
24
- return self.template.render(context) if ctx == {}
25
-
26
- begin
27
- context.push(ctx)
28
- self.template.render(context)
29
- ensure
30
- context.pop
22
+ impl_logger :level => :debug, :operation => 'MustacheRender::Mustache.render' do
23
+ impl_render data, ctx
31
24
  end
32
25
  end
33
26
 
34
27
  # 片段树
35
28
  def partials_tree
36
-
29
+
37
30
  end
38
31
 
39
32
  # Context accessors.
@@ -66,8 +59,10 @@ module MustacheRender
66
59
  # Given a file name and an optional context, attempts to load and
67
60
  # render the file as a template.
68
61
  def file_render(name, context = {})
69
- @media = :file
70
- render(partial(name), context)
62
+ impl_logger :level => :debug, :operation => "#{self.class}.file_render" do
63
+ @media = :file
64
+ render(partial(name), context)
65
+ end
71
66
  end
72
67
 
73
68
  def self.db_render(full_path, context={})
@@ -75,8 +70,10 @@ module MustacheRender
75
70
  end
76
71
 
77
72
  def db_render(full_path, context={})
78
- @media = :db
79
- render(partial(full_path), context)
73
+ impl_logger :level => :debug, :operation => "#{self.class}.db_render" do
74
+ @media = :db
75
+ render(partial(full_path), context)
76
+ end
80
77
  end
81
78
 
82
79
  def impl_read_db_template name
@@ -115,23 +112,30 @@ module MustacheRender
115
112
  end
116
113
 
117
114
  def read_template_from_media name, media
118
- ::MustacheRender.logger.debug "MustacheRender render -> read template from #{media}: #{name}"
119
- # puts "read_template_from_media: #{name} #{media}"
120
- case media
121
- when :db
122
- if ::MustacheRender.config.db_template_cache?
123
- self.class.fetch_partial_cache name, media, :expires_in => ::MustacheRender.config.db_template_cache_expires_in do
124
- impl_read_db_template name
125
- end
126
- else
127
- impl_read_db_template name
128
- end
129
- when :file
130
- if ::MustacheRender.config.file_template_cache?
131
- self.class.fetch_partial_cache name, media, :expires_in => ::MustacheRender.config.file_template_cache_expires_in do
132
- impl_read_file_template name
133
- end
134
- else
115
+ # ::MustacheRender.logger.debug "MustacheRender render -> read template from #{media}: #{name}"
116
+
117
+ impl_logger :level => :debug,
118
+ :operation => "MustacheRender render -> read template from #{media}: #{name}" do
119
+
120
+ case media
121
+ when :db
122
+ # if ::MustacheRender.config.db_template_cache?
123
+ # self.class.fetch_partial_cache name, media, :expires_in => ::MustacheRender.config.db_template_cache_expires_in do
124
+ # impl_read_db_template name
125
+ # end
126
+ # else
127
+ # impl_read_db_template name
128
+ # end
129
+ impl_read_file_template name
130
+ when :file
131
+ # if ::MustacheRender.config.file_template_cache?
132
+ # self.class.fetch_partial_cache name, media, :expires_in => ::MustacheRender.config.file_template_cache_expires_in do
133
+ # impl_read_file_template name
134
+ # end
135
+ # else
136
+ # impl_read_file_template name
137
+ # end
138
+
135
139
  impl_read_file_template name
136
140
  end
137
141
  end
@@ -148,34 +152,34 @@ module MustacheRender
148
152
  (@_cached_partials[media] ||= {})[name] ||= self.read_template_from_media name, media
149
153
  end
150
154
 
151
- def self.partial_cache_key(name, media)
152
- raise 'options key: :media must in(:file, :db)' unless [:file, :db].include?(media)
153
- "MustacheRender::Mustache#Template.cache##{media}##{name}"
154
- end
155
-
156
- def self.exist_partial_cache?(name, media)
157
- ::MustacheRender.config.cache.exist?(self.partial_cache_key(name, media))
158
- end
159
-
160
- def self.delete_partial_cache(name, media)
161
- ::MustacheRender.config.cache.delete(self.partial_cache_key(name, media))
162
- end
163
-
164
- def self.fetch_partial_cache(name, media, options={}, &block)
165
- ::MustacheRender.config.cache.fetch(self.partial_cache_key(name, media), options) do
166
- if block_given?
167
- block.call
168
- end
169
- end
170
- end
171
-
172
- def self.read_partial_cache(name, media)
173
- ::MustacheRender.config.cache.read(self.partial_cache_key(name, media))
174
- end
175
-
176
- def self.write_partial_cache(name, media, value, options={})
177
- ::MustacheRender.config.cache.write(self.partial_cache_key(name, media), value, options)
178
- end
155
+ ## def self.partial_cache_key(name, media)
156
+ ## raise 'options key: :media must in(:file, :db)' unless [:file, :db].include?(media)
157
+ ## "MustacheRender::Mustache#Template.cache##{media}##{name}"
158
+ ## end
159
+ ##
160
+ ## def self.exist_partial_cache?(name, media)
161
+ ## ::MustacheRender.config.cache.exist?(self.partial_cache_key(name, media))
162
+ ## end
163
+ ##
164
+ ## def self.delete_partial_cache(name, media)
165
+ ## ::MustacheRender.config.cache.delete(self.partial_cache_key(name, media))
166
+ ## end
167
+ ##
168
+ ## def self.fetch_partial_cache(name, media, options={}, &block)
169
+ ## ::MustacheRender.config.cache.fetch(self.partial_cache_key(name, media), options) do
170
+ ## if block_given?
171
+ ## block.call
172
+ ## end
173
+ ## end
174
+ ## end
175
+ ##
176
+ ## def self.read_partial_cache(name, media)
177
+ ## ::MustacheRender.config.cache.read(self.partial_cache_key(name, media))
178
+ ## end
179
+ ##
180
+ ## def self.write_partial_cache(name, media, value, options={})
181
+ ## ::MustacheRender.config.cache.write(self.partial_cache_key(name, media), value, options)
182
+ ## end
179
183
 
180
184
  # Override this to provide custom escaping.
181
185
  #
@@ -310,5 +314,42 @@ module MustacheRender
310
314
  def self.inheritable_config_for(attr_name, default)
311
315
  superclass.respond_to?(attr_name) ? superclass.send(attr_name) : default
312
316
  end
317
+
318
+ private
319
+
320
+ def impl_logger options={}
321
+ level = options[:level] || :debug
322
+
323
+ result = nil
324
+
325
+ if block_given?
326
+ start_at = Time.now
327
+ result = yield
328
+ ms = ((Time.now - start_at) * 1000).to_i
329
+ MustacheRender.logger.send level, impl_format_log_entry(
330
+ "#{options[:operation]} (#{ms}ms)", options[:message]
331
+ )
332
+ end
333
+
334
+ result
335
+ end
336
+
337
+ def impl_format_log_entry(operation, message = nil)
338
+ " \033[4;34;1m#{operation}\033[0m \033[0;1m#{message}\033[0m"
339
+ end
340
+
341
+ def impl_render(data=template, ctx={})
342
+ self.template = data
343
+
344
+ return self.template.render(context) if ctx == {}
345
+
346
+ begin
347
+ context.push(ctx)
348
+ self.template.render(context)
349
+ ensure
350
+ context.pop
351
+ end
352
+ end
353
+
313
354
  end
314
355
  end
@@ -3,7 +3,7 @@ module MustacheRender
3
3
  VERSION_NUMBERS = [
4
4
  VERSION_MAJOR = 0,
5
5
  VERSION_MINOR = 0,
6
- VERSION_BUILD = 10,
6
+ VERSION_BUILD = 12,
7
7
  ]
8
8
 
9
9
  VERSION = VERSION_NUMBERS.join(".")
@@ -2,6 +2,7 @@
2
2
  require 'mustache_render/adapter'
3
3
  require 'mustache_render/config'
4
4
  require 'mustache_render/mustache'
5
+ # require 'benchmark'
5
6
 
6
7
  module MustacheRender
7
8
  def self.logger
@@ -21,6 +22,7 @@ module MustacheRender
21
22
 
22
23
  module CoreExt
23
24
  autoload :BaseControllerExt, 'mustache_render/core_ext/base_controller_ext'
25
+ # autoload :ActionViewHandler, 'mustache_render/core_ext/action_view_handler'
24
26
  end
25
27
 
26
28
  module Controllers
@@ -2,9 +2,6 @@ require 'spec_helper'
2
2
 
3
3
  describe 'MustacheRender::Mustache.db_render' do
4
4
  before :each do
5
- MustacheRender.configure do |config|
6
- config.file_template_root_path = ROOT_PATH + '/resources/templates'
7
- end
8
5
  end
9
6
 
10
7
  it 'template scan_tags test' do
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,51 @@
1
1
  require 'mustache_render'
2
2
 
3
+
3
4
  ROOT_PATH = File.dirname(__FILE__) + '/lib'
5
+
6
+ # -*- encoding : utf-8 -*-
7
+ MustacheRender.configure do |config|
8
+ # 默认的模板渲染媒介
9
+ # :db => 数据库渲染
10
+ # :file => 文件系统渲染
11
+ config.default_render_media = :db
12
+
13
+ # 默认的文件模板的根目录
14
+ config.file_template_root_path = ROOT_PATH + '/resources/templates'
15
+
16
+ # 默认的文件模板的扩展名称
17
+ config.file_template_extension = '.mustache'
18
+
19
+ # 默认的数据模板的扩展名称
20
+ config.db_template_extension = '.mustache'
21
+
22
+ # 当字段缺少的时候是否抛出异常
23
+ config.raise_on_context_miss = false
24
+
25
+ # 当数据库模板不存在时候是否抛出异常
26
+ config.raise_on_db_template_miss = true
27
+
28
+ # 当文件模板不存在时候是否抛出异常
29
+ config.raise_on_file_template_miss = true
30
+
31
+ # config.logger = Rails.logger
32
+
33
+ config.logger.level = Logger::INFO
34
+
35
+ ### 模板的相关配置 ###########################
36
+ # 缓存的媒介
37
+ # config.cache_store = Rails.cache
38
+
39
+ # 版本适配器的配置
40
+ config.adapter_configure do |adapter|
41
+
42
+ end
43
+
44
+ # config.manage_center_need_login = true
45
+ config.manage_center_need_login = false
46
+ config.user_login_url = '/login'
47
+ config.manager_authenticate_fail_url = '/auth_fail'
48
+ end
49
+
50
+
51
+
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mustache_render
3
3
  version: !ruby/object:Gem::Version
4
- hash: 11
4
+ hash: 7
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 10
10
- version: 0.0.10
9
+ - 12
10
+ version: 0.0.12
11
11
  platform: ruby
12
12
  authors:
13
13
  - happy
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2013-01-21 00:00:00 +08:00
18
+ date: 2013-01-24 00:00:00 +08:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -77,6 +77,7 @@ files:
77
77
  - lib/mustache_render/resources/jquery.js
78
78
  - lib/mustache_render/resources/jquery_ujs.js
79
79
  - lib/mustache_render/config.rb
80
+ - lib/mustache_render/core_ext/action_view_handler.rb
80
81
  - lib/mustache_render/core_ext/base_controller_ext.rb
81
82
  - lib/mustache_render/helpers/mustache_render/manage/base_helper.rb
82
83
  - lib/mustache_render/version.rb