Class: BaseBlock
Class Method Summary
collapse
Instance Method Summary
collapse
cache_key, cache_key_name, csv_columns, #expire_cache_key, expire_cache_key, statusable?, #statusable?, to_csv_template, #to_friendly_param, #to_label, #to_select2_response, #to_select2_selection, versionable, #versionable
Class Method Details
.display_icon ⇒ Object
Override to add a Bootstrap 3 glyphicon next to the block’s title.
16
17
18
|
# File 'app/models/blocks/base_block.rb', line 16
def self.display_icon
'glyphicon glyphicon-tree-conifer'
end
|
.display_name ⇒ Object
Override to customize the display name of the block.
11
12
13
|
# File 'app/models/blocks/base_block.rb', line 11
def self.display_name
'Base Block'
end
|
.kind ⇒ Object
20
21
22
|
# File 'app/models/blocks/base_block.rb', line 20
def self.kind
BlockKind.find_by_name(name)
end
|
Instance Method Details
#as_indexed_json(options = {}) ⇒ Object
129
130
131
132
133
|
# File 'app/models/blocks/base_block.rb', line 129
def as_indexed_json(options={})
self.as_json({
only: indexed_attributes
})
end
|
#block? ⇒ Boolean
32
33
34
|
# File 'app/models/blocks/base_block.rb', line 32
def block?
true
end
|
#block_id ⇒ Object
56
57
58
|
# File 'app/models/blocks/base_block.rb', line 56
def block_id
"#{self.model_name.singular.dasherize}-#{self.id}"
end
|
#block_kind ⇒ Object
60
61
62
|
# File 'app/models/blocks/base_block.rb', line 60
def block_kind
@block_kind ||= BlockKind.find_by_name(self.class.name)
end
|
#block_layout ⇒ Object
72
73
74
|
# File 'app/models/blocks/base_block.rb', line 72
def block_layout
block_slot.block_layout
end
|
#block_record ⇒ Object
64
65
66
|
# File 'app/models/blocks/base_block.rb', line 64
def block_record
@block_record ||= block_slot.block_record
end
|
#block_record_id ⇒ Object
68
69
70
|
# File 'app/models/blocks/base_block.rb', line 68
def block_record_id
block_record.block_record.id
end
|
#blocks ⇒ Object
76
77
78
|
# File 'app/models/blocks/base_block.rb', line 76
def blocks
block_record.blocks(block_layout: block_layout)
end
|
#css_class ⇒ Object
Override to add css classes to a block’s wrapper.
37
38
|
# File 'app/models/blocks/base_block.rb', line 37
def css_class
end
|
#css_styles ⇒ Object
Override to add css styles to a block’s wrapper.
41
42
|
# File 'app/models/blocks/base_block.rb', line 41
def css_styles
end
|
#data_attributes ⇒ Object
Override to add data attributes to a block’s wrapper. Make sure this is a hash.
45
46
|
# File 'app/models/blocks/base_block.rb', line 45
def data_attributes
end
|
#display_icon ⇒ Object
48
49
50
|
# File 'app/models/blocks/base_block.rb', line 48
def display_icon
self.class.display_icon
end
|
#display_name ⇒ Object
24
25
26
|
# File 'app/models/blocks/base_block.rb', line 24
def display_name
self.class.display_name
end
|
#even_of_kind? ⇒ Boolean
100
101
102
|
# File 'app/models/blocks/base_block.rb', line 100
def even_of_kind?
blocks.kind(self.class).index(self).even?
end
|
#first? ⇒ Boolean
84
85
86
|
# File 'app/models/blocks/base_block.rb', line 84
def first?
index == 0
end
|
#first_of_kind? ⇒ Boolean
92
93
94
|
# File 'app/models/blocks/base_block.rb', line 92
def first_of_kind?
blocks.first_of_kind(self.class) == self
end
|
#hidden? ⇒ Boolean
28
29
30
|
# File 'app/models/blocks/base_block.rb', line 28
def hidden?
false
end
|
#index ⇒ Object
80
81
82
|
# File 'app/models/blocks/base_block.rb', line 80
def index
blocks.index(self)
end
|
#indexed_attributes ⇒ Object
Override this in your block to define which attributes should be indexed for search
123
124
125
126
127
|
# File 'app/models/blocks/base_block.rb', line 123
def indexed_attributes
self.class.columns.select { |c| %i(text string).include?(c.type) }
.collect(&:name)
.reject { |c| c =~ /_url$/ } - non_indexed_attributes
end
|
#last? ⇒ Boolean
88
89
90
|
# File 'app/models/blocks/base_block.rb', line 88
def last?
index == blocks.length - 1
end
|
#last_of_kind? ⇒ Boolean
96
97
98
|
# File 'app/models/blocks/base_block.rb', line 96
def last_of_kind?
blocks.last_of_kind(self.class) == self
end
|
#next ⇒ Object
113
114
115
116
|
# File 'app/models/blocks/base_block.rb', line 113
def next
return nil if last?
blocks[index + 1]
end
|
#non_indexed_attributes ⇒ Object
118
119
120
|
# File 'app/models/blocks/base_block.rb', line 118
def non_indexed_attributes
%W(id created_at updated_at)
end
|
#odd_of_kind? ⇒ Boolean
104
105
106
|
# File 'app/models/blocks/base_block.rb', line 104
def odd_of_kind?
blocks.kind(self.class).index(self).odd?
end
|
#permitted_params ⇒ Object
52
53
54
|
# File 'app/models/blocks/base_block.rb', line 52
def permitted_params
self.class.permitted_params
end
|
#previous ⇒ Object
108
109
110
111
|
# File 'app/models/blocks/base_block.rb', line 108
def previous
return nil if first?
blocks[index - 1]
end
|