sidebar-engine 0.0.1 → 0.0.2

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.
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