mustache_render 0.0.21 → 0.0.22

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.
Files changed (37) hide show
  1. data/README.rdoc +22 -0
  2. data/lib/generators/mustache_render/install/templates/active_record/migration.rb +65 -0
  3. data/lib/generators/mustache_render/install/templates/config/initializers/mustache_render.rb +8 -14
  4. data/lib/generators/mustache_render/install/templates/models/active_record/mustache_render_folder.rb +6 -0
  5. data/lib/generators/mustache_render/install/templates/models/active_record/mustache_render_manager.rb +6 -0
  6. data/lib/generators/mustache_render/install/templates/models/active_record/mustache_render_template.rb +6 -0
  7. data/lib/generators/mustache_render/install/templates/models/active_record/mustache_render_template_version.rb +6 -0
  8. data/lib/generators/mustache_render/install_generator.rb +14 -2
  9. data/lib/mustache_render.rb +5 -14
  10. data/lib/mustache_render/ables.rb +7 -0
  11. data/lib/mustache_render/ables/render_able.rb +161 -0
  12. data/lib/mustache_render/config.rb +24 -62
  13. data/lib/mustache_render/errors.rb +5 -0
  14. data/lib/mustache_render/errors/mustache_template_miss_error.rb +6 -0
  15. data/lib/mustache_render/mustache.rb +85 -79
  16. data/lib/mustache_render/mustache/data.rb +155 -61
  17. data/lib/mustache_render/mustache/parser.rb +0 -4
  18. data/lib/mustache_render/mustache/template.rb +2 -7
  19. data/lib/mustache_render/populator.rb +7 -0
  20. data/lib/mustache_render/utils.rb +15 -0
  21. data/lib/mustache_render/{core_ext/base_controller_ext.rb → utils/action_controller_util.rb} +7 -6
  22. data/lib/mustache_render/utils/array_util.rb +15 -0
  23. data/lib/mustache_render/utils/fields_filter_util.rb +127 -0
  24. data/lib/mustache_render/version.rb +1 -1
  25. data/spec/lib/ables/render_able_spec.rb +183 -0
  26. data/spec/lib/mustache/basic_render_spec.rb +26 -1
  27. data/spec/lib/mustache/data_spec.rb +5 -5
  28. data/spec/lib/mustache/file_render_spec.rb +11 -2
  29. data/spec/lib/resources/templates/mustache_render_ables/1.mustache +11 -0
  30. data/spec/lib/utils/field_filter_spec.rb +71 -0
  31. data/spec/spec_helper.rb +0 -21
  32. metadata +69 -59
  33. data/README.md +0 -23
  34. data/lib/mustache_render/adapter.rb +0 -75
  35. data/lib/mustache_render/populator_base.rb +0 -88
  36. data/spec/lib/config_spec.rb +0 -14
  37. data/spec/lib/resources/templates/basic/8.mustache +0 -1
@@ -22,14 +22,14 @@ describe 'MustacheRender Mustache Data' do
22
22
  data.render('{{#a}}a:{{a}} b:{{b}}{{/a}}').should == "a:1 b:2a:10 b:20"
23
23
  end
24
24
 
25
- it '所有的key转为字符串' do
25
+ it '所有的key转为symbol' do
26
26
  data[:a] = 'b'
27
- data.inspect.should == "{\"a\"=>\"b\"}"
27
+ data.inspect.should == "{\:a=>\"b\"}"
28
28
  end
29
29
 
30
30
  it '当为数组的时候,每个元素也许要进行key字符串化' do
31
31
  data.b.c = [{:a => 'a', 'b' => 'b'}]
32
- data.inspect.should == "{\"b\"=>{\"c\"=>[{\"b\"=>\"b\", \"a\"=>\"a\"}]}}"
32
+ data.should == {:b=>{:c=>[{:a=>"a", "b"=>"b"}]}}
33
33
  end
34
34
 
35
35
  it '基本赋值方法' do
@@ -38,8 +38,8 @@ describe 'MustacheRender Mustache Data' do
38
38
  :name => 'a'
39
39
  }
40
40
 
41
- data.inspect.should == "{\"site\"=>{\"name\"=>\"a\"}}"
42
- data.site.inspect.should == "{\"name\"=>\"a\"}"
41
+ data.inspect.should == "{:site=>{:name=>\"a\"}}"
42
+ data.site.inspect.should == "{:name=>\"a\"}"
43
43
  end
44
44
 
45
45
  it '取值类型为数组' do
@@ -1,8 +1,17 @@
1
- # -*- encoding : utf-8 -*-
2
1
  require 'spec_helper'
3
2
 
4
- describe 'MustacheRender::Mustache.xxx_render' do
3
+ describe 'MustacheRender::Mustache.db_render' do
5
4
  before :each do
5
+ MustacheRender.configure do |config|
6
+ config.file_template_root_path = ROOT_PATH + '/resources/templates'
7
+ end
8
+ end
9
+
10
+ it 'file render generate template value' do
11
+ fr = MustacheRender::Mustache.new
12
+
13
+ result = fr.render "{{render}}:{{context}}", {:render => 'render', :context => 'context'}
14
+ result.should == "render:context"
6
15
  end
7
16
 
8
17
  it 'template scan_tags test' do
@@ -0,0 +1,11 @@
1
+ {{#any?}}
2
+ {{#list}}
3
+ {{#deals}}
4
+ <ul>
5
+ <li>name: {{name}}</li>
6
+ <li>age: {{age}}</li>
7
+ <li>address: {{address}}</li>
8
+ </ul>
9
+ {{/deals}}
10
+ {{/list}}
11
+ {{/any?}}
@@ -0,0 +1,71 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'spec_helper'
3
+
4
+ describe ::MustacheRender::FieldsFilterUtil do
5
+ it 'parse_rules' do
6
+ start = Time.now
7
+
8
+ util = ::MustacheRender::FieldsFilterUtil.new
9
+ util.empty?.should be_true
10
+
11
+ util = ::MustacheRender::FieldsFilterUtil.new(
12
+ :default => {
13
+ :deals => [
14
+ {
15
+ :name => true,
16
+ :age => false
17
+ }
18
+ ],
19
+ :shop => {
20
+ :name => true
21
+ }
22
+ }
23
+ )
24
+ util.empty?.should be_false
25
+
26
+ util.load(:default_missing).empty?.should be_true
27
+ util.load(:default).empty?.should be_false
28
+
29
+ (1..10000).each do |i|
30
+ # 传递数组类型的效率要差!
31
+ util.match?([:default, :deals]).should be_true
32
+ util.match?([:default, :deals_missing]).should be_false
33
+
34
+ util.hit?("default").should be_true
35
+ util.match?("default#deals").should be_true
36
+ util.match?("default#deals_missing").should be_false
37
+
38
+ util.load(:default).empty?.should be_false
39
+
40
+ end
41
+
42
+ (Time.now - start).should < 0.5
43
+
44
+ # rules = ::MustacheRender::FieldsFilterUtil.new(
45
+ # :shop => {
46
+ # :name => true,
47
+ # :address => false
48
+ # }
49
+ # ).rules
50
+ # rules.should == {"shop#name"=>true, "shop#address"=>false}
51
+
52
+ # rules = ::MustacheRender::FieldsFilterUtil.new(
53
+ # :shop => {
54
+ # :deal => :wap,
55
+ # :name => false,
56
+ # :address => false,
57
+ # :nice? => false,
58
+ # :hello! => true,
59
+ # :like? => false
60
+ # },
61
+ # :deal => {
62
+ # :urls => {
63
+ # :www => true,
64
+ # :wap => false
65
+ # }
66
+ # }
67
+ # ).rules
68
+
69
+ end
70
+ end
71
+
@@ -1,7 +1,5 @@
1
- # -*- encoding : utf-8 -*-
2
1
  require 'mustache_render'
3
2
 
4
-
5
3
  ROOT_PATH = File.dirname(__FILE__) + '/lib'
6
4
 
7
5
  # -*- encoding : utf-8 -*-
@@ -19,27 +17,8 @@ MustacheRender.configure do |config|
19
17
  # 当字段缺少的时候是否抛出异常
20
18
  config.raise_on_context_miss = false
21
19
 
22
- # 当文件模板不存在时候是否抛出异常
23
- config.raise_on_file_template_miss = true
24
-
25
20
  # config.logger = Rails.logger
26
21
 
27
22
  config.logger.level = Logger::INFO
28
23
 
29
- ### 模板的相关配置 ###########################
30
- # 缓存的媒介
31
- # config.cache_store = Rails.cache
32
-
33
- # 版本适配器的配置
34
- config.adapter_configure do |adapter|
35
-
36
- end
37
-
38
- # config.manage_center_need_login = true
39
- config.manage_center_need_login = false
40
- config.user_login_url = '/login'
41
- config.manager_authenticate_fail_url = '/auth_fail'
42
24
  end
43
-
44
-
45
-
metadata CHANGED
@@ -1,114 +1,124 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: mustache_render
3
- version: !ruby/object:Gem::Version
4
- hash: 53
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 0
9
- - 21
10
- version: 0.0.21
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.22
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - happy
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2013-01-28 00:00:00 +08:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
22
- name: sqlite3
12
+ date: 2013-03-14 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ 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
- requirement: &id001 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
25
25
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 0
32
- version: "0"
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: sqlite3
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
33
38
  type: :development
34
- version_requirements: *id001
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
35
46
  description: Description of MustacheRender.
36
- email:
47
+ email:
37
48
  - andywang7259@gmail.com
38
49
  executables: []
39
-
40
50
  extensions: []
41
-
42
51
  extra_rdoc_files: []
43
-
44
- files:
52
+ files:
45
53
  - lib/mustache_render.rb
46
54
  - lib/tasks/mustache_render_tasks.rake
47
55
  - lib/generators/mustache_render/install_generator.rb
56
+ - lib/generators/mustache_render/install/templates/active_record/migration.rb
48
57
  - lib/generators/mustache_render/install/templates/config/initializers/mustache_render.rb
58
+ - lib/generators/mustache_render/install/templates/models/active_record/mustache_render_folder.rb
59
+ - lib/generators/mustache_render/install/templates/models/active_record/mustache_render_manager.rb
60
+ - lib/generators/mustache_render/install/templates/models/active_record/mustache_render_template.rb
61
+ - lib/generators/mustache_render/install/templates/models/active_record/mustache_render_template_version.rb
62
+ - lib/mustache_render/ables/render_able.rb
49
63
  - lib/mustache_render/mustache/generator.rb
50
64
  - lib/mustache_render/mustache/context.rb
51
65
  - lib/mustache_render/mustache/template.rb
52
66
  - lib/mustache_render/mustache/parser.rb
53
67
  - lib/mustache_render/mustache/data.rb
68
+ - lib/mustache_render/utils/fields_filter_util.rb
69
+ - lib/mustache_render/utils/array_util.rb
70
+ - lib/mustache_render/utils/action_controller_util.rb
54
71
  - lib/mustache_render/mustache.rb
55
72
  - lib/mustache_render/config.rb
56
- - lib/mustache_render/core_ext/base_controller_ext.rb
73
+ - lib/mustache_render/utils.rb
57
74
  - lib/mustache_render/version.rb
58
- - lib/mustache_render/populator_base.rb
59
- - lib/mustache_render/adapter.rb
75
+ - lib/mustache_render/errors/mustache_template_miss_error.rb
76
+ - lib/mustache_render/populator.rb
77
+ - lib/mustache_render/errors.rb
78
+ - lib/mustache_render/ables.rb
79
+ - spec/lib/ables/render_able_spec.rb
60
80
  - spec/lib/mustache/data_spec.rb
61
81
  - spec/lib/mustache/file_render_spec.rb
62
82
  - spec/lib/mustache/basic_render_spec.rb
63
- - spec/lib/config_spec.rb
83
+ - spec/lib/utils/field_filter_spec.rb
64
84
  - spec/lib/resources/templates/basic/6.mustache
65
85
  - spec/lib/resources/templates/basic/2.mustache
66
86
  - spec/lib/resources/templates/basic/1.mustache
67
87
  - spec/lib/resources/templates/basic/7.mustache
68
88
  - spec/lib/resources/templates/basic/3.mustache
69
- - spec/lib/resources/templates/basic/8.mustache
70
89
  - spec/lib/resources/templates/basic/5.mustache
71
90
  - spec/lib/resources/templates/basic/4.mustache
72
91
  - spec/lib/resources/templates/scan_tags/2.mustache
73
92
  - spec/lib/resources/templates/scan_tags/1.mustache
74
93
  - spec/lib/resources/templates/scan_tags/3.mustache
94
+ - spec/lib/resources/templates/mustache_render_ables/1.mustache
75
95
  - spec/spec_helper.rb
76
96
  - MIT-LICENSE
77
97
  - Rakefile
78
- - README.md
79
- has_rdoc: true
98
+ - README.rdoc
80
99
  homepage: http://blogsoso.net/
81
100
  licenses: []
82
-
83
101
  post_install_message:
84
102
  rdoc_options: []
85
-
86
- require_paths:
103
+ require_paths:
87
104
  - lib
88
- required_ruby_version: !ruby/object:Gem::Requirement
105
+ required_ruby_version: !ruby/object:Gem::Requirement
89
106
  none: false
90
- requirements:
91
- - - ">="
92
- - !ruby/object:Gem::Version
93
- hash: 3
94
- segments:
95
- - 0
96
- version: "0"
97
- required_rubygems_version: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ required_rubygems_version: !ruby/object:Gem::Requirement
98
112
  none: false
99
- requirements:
100
- - - ">="
101
- - !ruby/object:Gem::Version
102
- hash: 3
103
- segments:
104
- - 0
105
- version: "0"
113
+ requirements:
114
+ - - ! '>='
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
106
117
  requirements: []
107
-
108
118
  rubyforge_project:
109
- rubygems_version: 1.3.7
119
+ rubygems_version: 1.8.24
110
120
  signing_key:
111
121
  specification_version: 3
112
122
  summary: Summary of MustacheRender.
113
123
  test_files: []
114
-
124
+ has_rdoc:
data/README.md DELETED
@@ -1,23 +0,0 @@
1
- # MustacheRender
2
-
3
- This project rocks and uses MIT-LICENSE.
4
-
5
- ## Rails 3.1.x
6
-
7
- routes
8
-
9
- ``` ruby
10
- Raily::Application.routes.draw do
11
- ::MustacheRender.adapter.manage_route_adapter self
12
- end
13
- ```
14
-
15
- install:
16
-
17
- ``` console
18
- rails g mustache_render:migration:install
19
- ```
20
-
21
- ## 使用方法
22
-
23
-
@@ -1,75 +0,0 @@
1
- # -*- encoding : utf-8 -*-
2
- module MustacheRender
3
- #
4
- # MustacheRender的适配器
5
- #
6
- class << self
7
- def adapter
8
- @adapter ||= Adapter.new
9
- end
10
-
11
- def adapter_configure
12
- yield(@adapter ||= Adapter.new)
13
- end
14
- end
15
-
16
- class Adapter
17
- def initialize
18
- end
19
-
20
- ############# routes ##########################################
21
- def manage_route_adapter(router)
22
- if rails_2?
23
- router.namespace :mustache_render do |render|
24
- render.namespace :manage do |manage|
25
- manage.resources :folders do |folder|
26
- folder.resources :templates, :only => [:show, :new, :edit, :update, :create, :destroy] do |template|
27
- template.resources :template_versions, :only => [:show, :index, :destroy, :update, :edit], :member => {
28
- :revert => :post
29
- }
30
- end
31
- end
32
- end
33
- end
34
- elsif rails_3?
35
- router.namespace :mustache_render do
36
- router.namespace :manage do
37
- router.resources :folders do
38
- router.resources :templates, :only => [:show, :new, :edit, :update, :create, :destroy] do |template|
39
- router.resources :template_versions, :only => [:show, :index, :destroy, :update, :edit] do
40
- router.member do
41
- router.post :revert
42
- end
43
- end
44
- end
45
- end
46
- end
47
- end
48
- end
49
- end
50
-
51
- ################## after about rails ##########################
52
- def rails?
53
- defined?(Rails)
54
- end
55
-
56
- def rails_version
57
- return @rails_version if defined?(@rails_version)
58
-
59
- @rails_version = if rails?
60
- Rails.version
61
- end
62
- end
63
-
64
- def rails_3?
65
- return @rails_3 if defined?(@rails_3)
66
-
67
- @rails_3 = (rails? && rails_version > '3.0.0')
68
- end
69
-
70
- def rails_2?
71
- return @rails_2 if defined?(@rails_2)
72
- @rails_2 = (rails? && rails_version > '2.0.0' && rails_version < '3.0.0')
73
- end
74
- end
75
- end