sidebar-engine 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -0,0 +1,2 @@
1
+ v0.0.2 2013.5.21
2
+ * render_sidebar support name render
data/lib/scene_sidebar.rb CHANGED
@@ -1,8 +1,12 @@
1
+ #encoding: utf-8
1
2
  class SceneSidebar
2
3
  include Mongoid::Document
3
4
  field :name, :type => String
4
5
  field :description, :type => String
5
- has_many :sidebars
6
+ has_and_belongs_to_many :sidebars
7
+
8
+ validates_presence_of :name
9
+ validates_uniqueness_of :name
6
10
 
7
11
  class << self
8
12
  def parse_scene(scence)
data/lib/sidebar.rb CHANGED
@@ -1,9 +1,15 @@
1
+ #encoding: utf-8
1
2
  class Sidebar
2
3
  include Mongoid::Document
4
+
5
+ field :name, :type => String
3
6
  field :description, :type => String
4
7
  field :display_name, :type => String
5
8
  field :config, :type=>Hash,:default=>{}
6
- belongs_to :scene_sidebar
9
+ has_and_belongs_to_many :scene_sidebars
10
+
11
+ validates_presence_of :name
12
+ validates_uniqueness_of :name
7
13
 
8
14
  class ParamField
9
15
  attr_accessor :key
@@ -124,6 +130,10 @@ class Sidebar
124
130
 
125
131
 
126
132
  class << self
133
+ def parse_sidebar(sidebar)
134
+ self.find_by :name => sidebar.to_s
135
+ end
136
+
127
137
  def setting(key, default=nil, options = { })
128
138
  return if instance_methods.include?(key.to_s)
129
139
  param_fields << ParamField.build(key.to_s, default, options)
@@ -1,22 +1,33 @@
1
1
  module SidebarHelper
2
+ #==render scene sidebars
3
+ # params:
4
+ # +scene+ scene name
2
5
  def render_scene_sidebars(scene)
3
6
  scene_htmls = []
4
7
  begin
5
8
  @scene = SceneSidebar.parse_scene(scene)
6
9
  if @scene
7
10
  @scene.sidebars.each do |sb|
8
- sb.parse_request(params,content_hash,controller.current_user)
9
11
  scene_htmls << render_sidebar(sb)
10
12
  end
11
13
  end
12
14
  end
13
- scene_htmls.join
15
+ scene_htmls.join.html_safe
14
16
  end
15
17
 
16
- def render_sidebar(sidebar)
17
- render_to_string(:partial => sidebar.content_partial,
18
+ #==render_sidebar
19
+ # params:
20
+ # +sidebar+ Sidebar instance or sidebar name
21
+ # +current_user+ sidebar of current_user, default controller.current_user
22
+ # +options+ optional parameters
23
+ def render_sidebar(sidebar,current_user=controller.current_user,options={})
24
+ sidebar = sidebar.is_a?(Sidebar) ? sidebar : Sidebar.parse_sidebar(sidebar)
25
+ if sidebar
26
+ sidebar.parse_request(params,content_hash,current_user)
27
+ render_to_string(:partial => sidebar.content_partial,
18
28
  :locals => sidebar.to_locals_hash,
19
- :layout => false)
29
+ :layout => false).html_safe
30
+ end
20
31
  end
21
32
 
22
33
  # get controller instance variables
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |gem|
4
4
  gem.name = "sidebar-engine"
5
- gem.version = "0.0.1"
5
+ gem.version = "0.0.2"
6
6
  gem.platform = Gem::Platform::RUBY
7
7
 
8
8
  gem.homepage = "https://github.com/totothink/sidebar-engine"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidebar-engine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-28 00:00:00.000000000 Z
12
+ date: 2013-05-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mongoid