mustache_render 0.0.5 → 0.0.6

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 (54) hide show
  1. data/lib/generators/mustache_render/install/templates/active_record/migration.rb +65 -0
  2. data/lib/generators/mustache_render/install/templates/config/initializers/mustache_render.rb +25 -0
  3. data/lib/generators/mustache_render/{migration → install}/templates/models/active_record/mustache_render_folder.rb +0 -0
  4. data/lib/generators/mustache_render/install/templates/models/active_record/mustache_render_manager.rb +6 -0
  5. data/lib/generators/mustache_render/{migration → install}/templates/models/active_record/mustache_render_template.rb +0 -0
  6. data/lib/generators/mustache_render/install/templates/models/active_record/mustache_render_template_version.rb +6 -0
  7. data/lib/generators/mustache_render/{migration/install_generator.rb → install_generator.rb} +5 -5
  8. data/lib/mustache_render.rb +14 -6
  9. data/lib/mustache_render/adapter.rb +75 -0
  10. data/lib/mustache_render/config.rb +48 -0
  11. data/lib/mustache_render/controllers/mustache_render/manage/base_controller.rb +42 -0
  12. data/lib/mustache_render/controllers/mustache_render/{manager → manage}/folders_controller.rb +3 -3
  13. data/lib/mustache_render/controllers/mustache_render/manage/template_versions_controller.rb +71 -0
  14. data/lib/mustache_render/controllers/mustache_render/{manager → manage}/templates_controller.rb +12 -5
  15. data/lib/mustache_render/helpers/mustache_render/manage/base_helper.rb +29 -0
  16. data/lib/mustache_render/models/mustache_render_manager_mixin.rb +23 -0
  17. data/lib/mustache_render/models/mustache_render_template_mixin.rb +42 -2
  18. data/lib/mustache_render/models/mustache_render_template_version_mixin.rb +46 -0
  19. data/lib/mustache_render/resources/jquery.js +9473 -0
  20. data/lib/mustache_render/resources/jquery_ujs.js +429 -0
  21. data/lib/mustache_render/version.rb +1 -1
  22. data/lib/mustache_render/views/layouts/mustache_render/manage/base.html.erb +22 -0
  23. data/lib/mustache_render/views/mustache_render/manage/folders/_edit_2.html.erb +7 -0
  24. data/lib/mustache_render/views/mustache_render/manage/folders/_edit_3.html.erb +6 -0
  25. data/lib/mustache_render/views/mustache_render/{manager → manage}/folders/_form.html.erb +0 -0
  26. data/lib/mustache_render/views/mustache_render/{manager/folders/new.html.erb → manage/folders/_new_2.html.erb} +1 -6
  27. data/lib/mustache_render/views/mustache_render/manage/folders/_new_3.html.erb +3 -0
  28. data/lib/mustache_render/views/mustache_render/manage/folders/edit.html.erb +11 -0
  29. data/lib/mustache_render/views/mustache_render/{manager → manage}/folders/index.html.erb +2 -2
  30. data/lib/mustache_render/views/mustache_render/manage/folders/new.html.erb +10 -0
  31. data/lib/mustache_render/views/mustache_render/{manager → manage}/folders/show.html.erb +6 -6
  32. data/lib/mustache_render/views/mustache_render/manage/template_versions/_edit_2.html.erb +10 -0
  33. data/lib/mustache_render/views/mustache_render/manage/template_versions/_edit_3.html.erb +10 -0
  34. data/lib/mustache_render/views/mustache_render/manage/template_versions/_form.html.erb +43 -0
  35. data/lib/mustache_render/views/mustache_render/manage/template_versions/_list.html.erb +41 -0
  36. data/lib/mustache_render/views/mustache_render/manage/template_versions/edit.html.erb +22 -0
  37. data/lib/mustache_render/views/mustache_render/manage/template_versions/index.html.erb +20 -0
  38. data/lib/mustache_render/views/mustache_render/manage/template_versions/show.html.erb +53 -0
  39. data/lib/mustache_render/views/mustache_render/manage/templates/_edit_2.html.erb +10 -0
  40. data/lib/mustache_render/views/mustache_render/manage/templates/_edit_3.html.erb +9 -0
  41. data/lib/mustache_render/views/mustache_render/{manager → manage}/templates/_form.html.erb +7 -0
  42. data/lib/mustache_render/views/mustache_render/manage/templates/_new_2.html.erb +9 -0
  43. data/lib/mustache_render/views/mustache_render/manage/templates/_new_3.html.erb +9 -0
  44. data/lib/mustache_render/views/mustache_render/manage/templates/edit.html.erb +13 -0
  45. data/lib/mustache_render/views/mustache_render/manage/templates/new.html.erb +10 -0
  46. data/lib/mustache_render/views/mustache_render/manage/templates/show.html.erb +52 -0
  47. metadata +46 -21
  48. data/lib/generators/mustache_render/migration/templates/active_record/migration.rb +0 -37
  49. data/lib/mustache_render/controllers/mustache_render/manager/base_controller.rb +0 -17
  50. data/lib/mustache_render/views/layouts/mustache_render/manager/base.html.erb +0 -14
  51. data/lib/mustache_render/views/mustache_render/manager/folders/edit.html.erb +0 -11
  52. data/lib/mustache_render/views/mustache_render/manager/templates/edit.html.erb +0 -15
  53. data/lib/mustache_render/views/mustache_render/manager/templates/new.html.erb +0 -12
  54. data/lib/mustache_render/views/mustache_render/manager/templates/show.html.erb +0 -33
@@ -0,0 +1,65 @@
1
+ # -*- encoding : utf-8 -*-
2
+ class MustacheRenderMigration < ActiveRecord::Migration
3
+ def self.up
4
+ create_table :mustache_render_folders, :options => 'DEFAULT CHARSET=utf8' do |t|
5
+ t.string :name, :default => '' # 文件夹的名称
6
+
7
+ t.string :full_path, :default => '' # 全路径
8
+
9
+ ###### for nested_ful #####################
10
+ t.integer :parent_id # 父节点的id
11
+ t.integer :left_id
12
+ t.integer :right_id
13
+ t.integer :depth # 深度
14
+ t.integer :children_count, :default => 0
15
+ ###########################################
16
+
17
+ t.text :note # 备注
18
+
19
+ t.timestamps
20
+ end
21
+
22
+ create_table :mustache_render_templates, :options => 'DEFAULT CHARSET=utf8' do |t|
23
+ t.integer :last_user_id # 最后一个修改模板的用户
24
+ t.integer :create_user_id # 创建者的用户id
25
+ t.integer :folder_id # 文件夹的ID
26
+ t.string :name # 模板的名称
27
+ t.text :content # 代码
28
+
29
+ t.text :note # 备注
30
+ t.timestamps
31
+ end
32
+
33
+ create_table :mustache_render_template_versions, :options => 'DEFAULT CHARSET=utf8' do |t|
34
+ t.integer :template_id # 模板的id
35
+ t.integer :last_user_id # 最后一个修改模板的用户
36
+ t.integer :create_user_id # 创建者的用户id
37
+ t.integer :folder_id # 文件夹的ID
38
+ t.string :name # 模板的名称
39
+ t.text :content # 代码
40
+ t.string :full_path
41
+ t.string :change_log # 修改日志
42
+
43
+ t.text :note # 备注
44
+ t.timestamps
45
+ end
46
+
47
+ create_table :mustache_render_managers, :options => 'DEFAULT CHARSET=utf8' do |t|
48
+ t.integer :user_id
49
+
50
+ t.integer :admin_able # 是否是管理权限
51
+ t.integer :edit_able # 是否可以编辑
52
+
53
+ t.timestamps
54
+ end
55
+
56
+ end
57
+
58
+ def self.down
59
+ drop_table :mustache_render_folders
60
+ drop_table :mustache_render_template_versions
61
+ drop_table :mustache_render_templates
62
+ drop_table :mustache_render_managers
63
+ end
64
+ end
65
+
@@ -0,0 +1,25 @@
1
+ # -*- encoding : utf-8 -*-
2
+ MustacheRender.configure do |config|
3
+ # 默认的模板渲染媒介
4
+ # :db => 数据库渲染
5
+ # :file => 文件系统渲染
6
+ config.default_render_media = :db
7
+
8
+ # 默认的文件模板的根目录
9
+ config.file_template_root_path = "#{Rails.root}/app/templates"
10
+
11
+ # 默认的文件模板的扩展名称
12
+ config.file_template_extension = 'mustache'
13
+
14
+ # 当模板缺少的时候是否抛出异常
15
+ config.raise_on_context_miss = false
16
+
17
+ config.adapter_configure do |adapter|
18
+
19
+ end
20
+
21
+ config.manage_center_need_login = true
22
+ config.user_login_url = '/login'
23
+ config.manager_authenticate_fail_url = '/login'
24
+ end
25
+
@@ -0,0 +1,6 @@
1
+ # -*- encoding : utf-8 -*-
2
+ class MustacheRenderManager < ActiveRecord::Base
3
+ include ::MustacheRender::Models::MustacheRenderManagerMixin
4
+
5
+ end
6
+
@@ -0,0 +1,6 @@
1
+ # -*- encoding : utf-8 -*-
2
+ class MustacheRenderTemplateVersion < ActiveRecord::Base
3
+ include ::MustacheRender::Models::MustacheRenderTemplateVersionMixin
4
+
5
+ end
6
+
@@ -3,19 +3,20 @@ require 'rails/generators'
3
3
  require 'rails/generators/migration'
4
4
 
5
5
  module MustacheRender
6
- module Migration
7
6
  class InstallGenerator < Rails::Generators::Base
8
7
  include Rails::Generators::Migration
9
8
 
10
- desc "Generates MustacheRender database migration"
9
+ desc "Generates MustacheRender database migration, models"
11
10
 
12
11
  def copy_files
13
12
  orm = options[:orm].to_s
14
13
  orm = "active_record" unless %w{active_record}.include?(orm)
15
- %w(mustache_render_folder mustache_render_template).each do |file|
14
+ %w(mustache_render_folder mustache_render_template mustache_render_manager mustache_render_template_version).each do |file|
16
15
  copy_model(orm, file)
17
16
  end
18
17
 
18
+ template "config/initializers/mustache_render.rb", "config/initializers/mustache_render.rb"
19
+
19
20
  if self.class.orm_has_migration?
20
21
  migration_template "#{orm}/migration.rb", 'db/migrate/mustache_render_migration'
21
22
  end
@@ -26,7 +27,7 @@ module MustacheRender
26
27
  end
27
28
 
28
29
  def self.source_root
29
- File.join(File.dirname(__FILE__), 'templates')
30
+ File.join(File.dirname(__FILE__), 'install', 'templates')
30
31
  end
31
32
 
32
33
  def self.orm_has_migration?
@@ -50,4 +51,3 @@ module MustacheRender
50
51
  end
51
52
  end
52
53
  end
53
- end
@@ -1,12 +1,18 @@
1
1
  # -*- encoding : utf-8 -*-
2
+ require 'mustache_render/adapter'
2
3
  require 'mustache_render/config'
3
4
  require 'mustache_render/mustache'
4
5
 
5
6
  module MustacheRender
6
- module Manager
7
- autoload :BaseController, 'mustache_render/controllers/mustache_render/manager/base_controller'
8
- autoload :FoldersController, 'mustache_render/controllers/mustache_render/manager/folders_controller'
9
- autoload :TemplatesController, 'mustache_render/controllers/mustache_render/manager/templates_controller'
7
+ autoload :Adapter, 'mustache_render/adapter'
8
+
9
+ module Manage
10
+ autoload :BaseHelper, 'mustache_render/helpers/mustache_render/manage/base_helper'
11
+
12
+ autoload :BaseController, 'mustache_render/controllers/mustache_render/manage/base_controller'
13
+ autoload :FoldersController, 'mustache_render/controllers/mustache_render/manage/folders_controller'
14
+ autoload :TemplatesController, 'mustache_render/controllers/mustache_render/manage/templates_controller'
15
+ autoload :TemplateVersionsController, 'mustache_render/controllers/mustache_render/manage/template_versions_controller'
10
16
  end
11
17
 
12
18
  module CoreExt
@@ -17,8 +23,10 @@ module MustacheRender
17
23
  end
18
24
 
19
25
  module Models
20
- autoload :MustacheRenderFolderMixin, 'mustache_render/models/mustache_render_folder_mixin'
21
- autoload :MustacheRenderTemplateMixin, 'mustache_render/models/mustache_render_template_mixin'
26
+ autoload :MustacheRenderManagerMixin, 'mustache_render/models/mustache_render_manager_mixin'
27
+ autoload :MustacheRenderFolderMixin, 'mustache_render/models/mustache_render_folder_mixin'
28
+ autoload :MustacheRenderTemplateMixin, 'mustache_render/models/mustache_render_template_mixin'
29
+ autoload :MustacheRenderTemplateVersionMixin, 'mustache_render/models/mustache_render_template_version_mixin'
22
30
  end
23
31
  end
24
32
 
@@ -0,0 +1,75 @@
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
@@ -12,6 +12,15 @@ module MustacheRender
12
12
  def initialize
13
13
  end
14
14
 
15
+ # 配置适配器
16
+ def adapter_configure(&block)
17
+ ::MustacheRender.adapter_configure do |adapter|
18
+ if block_given?
19
+ block.call adapter
20
+ end
21
+ end
22
+ end
23
+
15
24
  #
16
25
  # 默认的渲染媒介
17
26
  #
@@ -23,6 +32,35 @@ module MustacheRender
23
32
  @default_render_media ||= media
24
33
  end
25
34
 
35
+ def manager_authenticate_fail_url
36
+ @manager_authenticate_fail_url ||= '/login'
37
+ end
38
+
39
+ def manager_authenticate_fail_url= url
40
+ @manager_authenticate_fail_url ||= url
41
+ end
42
+
43
+ def user_login_url
44
+ @user_login_url ||= '/login'
45
+ end
46
+
47
+ def user_login_url= url
48
+ @user_login_url ||= url
49
+ end
50
+
51
+ def manage_center_need_login?
52
+ if defined?(@manage_center_need_login)
53
+ @manage_center_need_login
54
+ else
55
+ true
56
+ end
57
+ end
58
+
59
+ ## 管理中心是否需要登录 ?
60
+ def manage_center_need_login= value
61
+ @manage_center_need_login = value unless defined?(@manage_center_need_login)
62
+ end
63
+
26
64
  #
27
65
  # lib 的基本路径
28
66
  #
@@ -54,5 +92,15 @@ module MustacheRender
54
92
  @raise_on_context_miss = boolean
55
93
  end
56
94
 
95
+ def manage_view_base
96
+ @manage_view_base ||= {
97
+ :title => "MustacheRender Manage Center"
98
+ }.merge(@_manage_view_base || {})
99
+ end
100
+
101
+ def manage_view_base= options={}
102
+ @_manage_view_base = options
103
+ end
104
+
57
105
  end
58
106
  end
@@ -0,0 +1,42 @@
1
+ # -*- encoding : utf-8 -*-
2
+ module MustacheRender::Manage
3
+ class BaseController < ::ApplicationController
4
+ helper BaseHelper
5
+
6
+ before_filter :require_user_is_manager!
7
+ before_filter :set_mustache_manage_view_path
8
+
9
+ layout 'mustache_render/manage/base'
10
+
11
+ protected
12
+
13
+ #
14
+ # 设置mustache的管理器的view path
15
+ #
16
+ def set_mustache_manage_view_path
17
+ prepend_view_path "#{::MustacheRender.config.lib_base_path}/views"
18
+ end
19
+
20
+ def require_user_is_manager!
21
+ self.mustache_render_manager = current_user
22
+
23
+ if ::MustacheRender.config.manage_center_need_login?
24
+ if self.mustache_render_manager
25
+ ## 当前用户没有登录,跳往的url
26
+ redirect_to ::MustacheRender.config.user_login_url ## 用户登录的url
27
+ elsif !(::MustacheRenderManager.authenticate?(self.mustache_render_manager))
28
+ redirect_to ::MustacheRender.config.manager_authenticate_fail_url ## 用户没有权限要跳转的url
29
+ end
30
+ end
31
+ end
32
+
33
+ def mustache_render_manager
34
+ @_mustache_render_manager
35
+ end
36
+
37
+ def mustache_render_manager= user
38
+ return @_mustache_render_manager if defined?(@_mustache_render_manager)
39
+ @_mustache_render_manager ||= user
40
+ end
41
+ end
42
+ end
@@ -1,5 +1,5 @@
1
1
  # -*- encoding : utf-8 -*-
2
- module MustacheRender::Manager
2
+ module MustacheRender::Manage
3
3
  class FoldersController < BaseController
4
4
  def index
5
5
 
@@ -24,7 +24,7 @@ module MustacheRender::Manager
24
24
  @mustache_render_folder = MustacheRenderFolder.new(params[:mustache_render_folder])
25
25
 
26
26
  if @mustache_render_folder.save
27
- redirect_to mustache_render_manager_folder_url(@mustache_render_folder)
27
+ redirect_to mustache_render_manage_folder_url(@mustache_render_folder)
28
28
  else
29
29
  render :new
30
30
  end
@@ -34,7 +34,7 @@ module MustacheRender::Manager
34
34
  @mustache_render_folder = MustacheRenderFolder.find params[:id]
35
35
 
36
36
  if @mustache_render_folder.update_attributes(params[:mustache_render_folder])
37
- redirect_to mustache_render_manager_folder_url(@mustache_render_folder)
37
+ redirect_to mustache_render_manage_folder_url(@mustache_render_folder)
38
38
  else
39
39
  render :edit
40
40
  end
@@ -0,0 +1,71 @@
1
+ # -*- encoding : utf-8 -*-
2
+ module MustacheRender::Manage
3
+ class TemplateVersionsController < BaseController
4
+ before_filter :load_template_record
5
+
6
+ def show
7
+ @mustache_render_template_version = MustacheRenderTemplateVersion.find params[:id]
8
+ end
9
+
10
+ def index
11
+ @mustache_render_template_versions = @mustache_render_template.template_versions
12
+ end
13
+
14
+ def destroy
15
+ # TODO: 是否增加删除功能
16
+ @mustache_render_template_version = MustacheRenderTemplateVersion.find params[:id]
17
+
18
+ @mustache_render_template_version.destroy
19
+
20
+ redirect_to params[:return_to] || mustache_render_manage_folder_template_template_versions_url(
21
+ :folder_id => @mustache_render_template_version.folder_id,
22
+ :template_id => @mustache_render_template_version.template_id
23
+ )
24
+ end
25
+
26
+ def edit
27
+ @mustache_render_template_version = MustacheRenderTemplateVersion.find params[:id]
28
+ end
29
+
30
+ def update
31
+ @mustache_render_template_version = MustacheRenderTemplateVersion.find params[:id]
32
+
33
+ if @mustache_render_template_version.update_attributes(params[:mustache_render_template_version])
34
+ respond_to do |format|
35
+ format.html { redirect_to mustache_render_manage_folder_template_template_version_url(
36
+ :folder_id => @mustache_render_template_version.folder_id,
37
+ :template_id => @mustache_render_template_version.template_id,
38
+ :id => @mustache_render_template_version.id
39
+ )}
40
+ format.json { head :no_content }
41
+ end
42
+ else
43
+ respond_to do |format|
44
+ format.html { render 'edit' }
45
+ format.json { render :json => @mustache_render_template_version.errors, :status => :unprocessable_entity }
46
+ end
47
+ end
48
+ end
49
+
50
+ def revert
51
+ # TODO: 是否增加还原功能
52
+ @mustache_render_template_version = MustacheRenderTemplateVersion.find params[:id]
53
+
54
+ @mustache_render_template_version.revert
55
+
56
+ redirect_to params[:return_to] || mustache_render_manage_folder_template_template_versions_url(
57
+ :folder_id => @mustache_render_template_version.folder_id,
58
+ :template_id => @mustache_render_template_version.template_id
59
+ )
60
+
61
+ end
62
+
63
+ protected
64
+
65
+ def load_template_record
66
+ @mustache_render_template = MustacheRenderTemplate.find params[:template_id]
67
+ @mustache_render_folder = @mustache_render_template.folder
68
+ end
69
+
70
+ end
71
+ end