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
25 26 27 |
# File 'app/models/refinery/widgets/widget.rb', line 25 def self.has_name where(["name != ? AND name IS NOT NULL", '']) end |
.on_page ⇒ Object
29 30 31 |
# File 'app/models/refinery/widgets/widget.rb', line 29 def self.on_page where(container_type: 'Refinery::PagePart') end |
.on_template ⇒ Object
33 34 35 |
# File 'app/models/refinery/widgets/widget.rb', line 33 def self.on_template where(container_type: 'Refinery::Widgets::TemplatePart') end |
.reusable ⇒ Object
21 22 23 |
# File 'app/models/refinery/widgets/widget.rb', line 21 def self.reusable where(widget_id: nil, reuse: true) end |
Instance Method Details
#deep_dup ⇒ Object
49 50 51 52 53 54 |
# File 'app/models/refinery/widgets/widget.rb', line 49 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
56 57 58 59 60 61 62 |
# File 'app/models/refinery/widgets/widget.rb', line 56 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
64 65 66 |
# File 'app/models/refinery/widgets/widget.rb', line 64 def on_page? container_type == 'Refinery::PagePart' end |
#on_template? ⇒ Boolean
68 69 70 |
# File 'app/models/refinery/widgets/widget.rb', line 68 def on_template? container_type == 'Refinery::Widgets::TemplatePart' end |
#pages ⇒ Object
81 82 83 84 85 86 87 88 |
# File 'app/models/refinery/widgets/widget.rb', line 81 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
45 46 47 |
# File 'app/models/refinery/widgets/widget.rb', line 45 def sub_type_instance self.send(.association_name) end |
#templates ⇒ Object
72 73 74 75 76 77 78 79 |
# File 'app/models/refinery/widgets/widget.rb', line 72 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
90 91 92 93 94 95 96 97 98 |
# File 'app/models/refinery/widgets/widget.rb', line 90 def times_used if .times_used elsif new_record? 0 else Widget.where(widget_id: id).count + 1 end end |
#ultimate_widget_type ⇒ Object
41 42 43 |
# File 'app/models/refinery/widgets/widget.rb', line 41 def ? . : end |
#widget_type ⇒ Object
37 38 39 |
# File 'app/models/refinery/widgets/widget.rb', line 37 def WidgetType.find(sub_type) end |