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 @widget_attributes end |
Class Method Details
.has_name ⇒ Object
22 23 24 |
# File 'app/models/refinery/widgets/widget.rb', line 22 def self.has_name where(["name != ? AND name IS NOT NULL", '']) end |
.on_page ⇒ Object
26 27 28 |
# File 'app/models/refinery/widgets/widget.rb', line 26 def self.on_page where(container_type: 'Refinery::PagePart') end |
.on_template ⇒ Object
30 31 32 |
# File 'app/models/refinery/widgets/widget.rb', line 30 def self.on_template where(container_type: 'Refinery::Widgets::TemplatePart') end |
.reusable ⇒ Object
18 19 20 |
# File 'app/models/refinery/widgets/widget.rb', line 18 def self.reusable where(widget_id: nil, reuse: true) end |
Instance Method Details
#deep_dup ⇒ Object
46 47 48 49 50 51 |
# File 'app/models/refinery/widgets/widget.rb', line 46 def deep_dup ret = self.dup sub_type_copy = self.sub_type_instance.dup ret.send("#{self..association_name}=", sub_type_copy) ret end |
#dup_by_ref ⇒ Object
53 54 55 56 57 58 59 |
# File 'app/models/refinery/widgets/widget.rb', line 53 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
61 62 63 |
# File 'app/models/refinery/widgets/widget.rb', line 61 def on_page? container_type == 'Refinery::PagePart' end |
#on_template? ⇒ Boolean
65 66 67 |
# File 'app/models/refinery/widgets/widget.rb', line 65 def on_template? container_type == 'Refinery::Widgets::TemplatePart' end |
#pages ⇒ Object
78 79 80 81 82 83 84 85 |
# File 'app/models/refinery/widgets/widget.rb', line 78 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
42 43 44 |
# File 'app/models/refinery/widgets/widget.rb', line 42 def sub_type_instance self.send(.association_name) end |
#templates ⇒ Object
69 70 71 72 73 74 75 76 |
# File 'app/models/refinery/widgets/widget.rb', line 69 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
87 88 89 90 91 92 93 94 95 |
# File 'app/models/refinery/widgets/widget.rb', line 87 def times_used if .times_used elsif new_record? 0 else Widget.where(widget_id: id).count + 1 end end |
#ultimate_widget_type ⇒ Object
38 39 40 |
# File 'app/models/refinery/widgets/widget.rb', line 38 def ? . : end |
#widget_type ⇒ Object
34 35 36 |
# File 'app/models/refinery/widgets/widget.rb', line 34 def WidgetType.find(sub_type) end |