mustache_render 0.0.21 → 0.0.22

Sign up to get free protection for your applications and to get access to all the features.
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