Class: Refinery::Widgets::Widget
- Inherits:
-
Core::BaseModel
- Object
- Core::BaseModel
- Refinery::Widgets::Widget
- Defined in:
- app/models/refinery/widgets/widget.rb
Instance Attribute Summary collapse
-
#widget_attributes ⇒ Object
Returns the value of attribute widget_attributes.
Class Method Summary collapse
Instance Method Summary collapse
- #deep_dup ⇒ Object
- #dup_by_ref ⇒ Object
- #on_page? ⇒ Boolean
- #on_template? ⇒ Boolean
- #pages ⇒ Object
- #sub_type_instance ⇒ Object
- #templates ⇒ Object
- #times_used ⇒ Object
- #ultimate_widget_type ⇒ Object
- #widget_type ⇒ Object
Instance Attribute Details
#widget_attributes ⇒ Object
Returns the value of attribute widget_attributes.
10 11 12 |
# File 'app/models/refinery/widgets/widget.rb', line 10 def end |
Class Method Details
.has_name ⇒ Object
24 25 26 |
# File 'app/models/refinery/widgets/widget.rb', line 24 def self.has_name where(["name != ? AND name IS NOT NULL", '']) end |
.on_page ⇒ Object
28 29 30 |
# File 'app/models/refinery/widgets/widget.rb', line 28 def self.on_page where(container_type: 'Refinery::PagePart') end |
.on_template ⇒ Object
32 33 34 |
# File 'app/models/refinery/widgets/widget.rb', line 32 def self.on_template where(container_type: 'Refinery::Widgets::TemplatePart') end |
.reusable ⇒ Object
20 21 22 |
# File 'app/models/refinery/widgets/widget.rb', line 20 def self.reusable where(widget_id: nil) end |
Instance Method Details
#deep_dup ⇒ Object
48 49 50 51 52 53 |
# File 'app/models/refinery/widgets/widget.rb', line 48 def deep_dup ret = self.dup sub_type_copy = self.sub_type_instance.dup ret.send("#{self.widget_type.association_name}=", sub_type_copy) ret end |
#dup_by_ref ⇒ Object
55 56 57 58 59 60 61 |
# File 'app/models/refinery/widgets/widget.rb', line 55 def dup_by_ref ret = Widget.new ret. = self ret.sub_type = self.class.to_s ret.name = self.name ret end |
#on_page? ⇒ Boolean
63 64 65 |
# File 'app/models/refinery/widgets/widget.rb', line 63 def on_page? container_type == 'Refinery::PagePart' end |
#on_template? ⇒ Boolean
67 68 69 |
# File 'app/models/refinery/widgets/widget.rb', line 67 def on_template? container_type == 'Refinery::Widgets::TemplatePart' end |
#pages ⇒ Object
80 81 82 83 84 85 86 87 |
# File 'app/models/refinery/widgets/widget.rb', line 80 def pages ret = [] ret << self.container.page if self.on_page? && self.container Widget.where(widget_id: self.id).each do |w| ret << w.container.page if w.on_page? && w.container end ret end |
#sub_type_instance ⇒ Object
44 45 46 |
# File 'app/models/refinery/widgets/widget.rb', line 44 def sub_type_instance self.send(.association_name) end |
#templates ⇒ Object
71 72 73 74 75 76 77 78 |
# File 'app/models/refinery/widgets/widget.rb', line 71 def templates ret = [] ret << self.container.template if self.on_template? && self.container Widget.where(widget_id: self.id).each do |w| ret << w.container.template if w.on_template? && w.container end ret end |
#times_used ⇒ Object
89 90 91 92 93 94 95 96 97 |
# File 'app/models/refinery/widgets/widget.rb', line 89 def times_used if .times_used elsif new_record? 0 else Widget.where(widget_id: id).count + 1 end end |
#ultimate_widget_type ⇒ Object
40 41 42 |
# File 'app/models/refinery/widgets/widget.rb', line 40 def ? . : end |
#widget_type ⇒ Object
36 37 38 |
# File 'app/models/refinery/widgets/widget.rb', line 36 def WidgetType.find(sub_type) end |