Class: Structure
Overview
Table name: structures
id :integer not null, primary key
slug :string(100) not null
structure_type_id :integer default(0)
position_type_id :integer default(0)
is_visible :boolean default(TRUE)
redirect_url :string(255)
parent_id :integer
lft :integer default(0)
rgt :integer default(0)
depth :integer default(0)
created_at :datetime
updated_at :datetime
is_update_traking :boolean default(FALSE)
title_translations :hstore default({})
Class Method Summary
collapse
Instance Method Summary
collapse
#cached_meta_tags, #meta_tag
Class Method Details
.page_text(slug, content = :main) ⇒ Object
65
66
67
|
# File 'app/models/defaults/structure.rb', line 65
def self.page_text(slug, content = :main)
with_type(StructureType.page).where(slug: slug).first.try(content)
end
|
Instance Method Details
#content ⇒ Object
73
74
75
|
# File 'app/models/defaults/structure.rb', line 73
def content
normalized_content
end
|
#content! ⇒ Object
77
78
79
80
81
|
# File 'app/models/defaults/structure.rb', line 77
def content!
Rails.cache.fetch "structures_#{slug}_content", expires_in: 4.hours do
main
end
end
|
#normalized_content(block = nil) ⇒ Object
69
70
71
|
# File 'app/models/defaults/structure.rb', line 69
def normalized_content(block = nil)
self[(block || 'main').to_sym].try(:gsub, '<p> </p>', '<p></p>')
end
|
#parent_path ⇒ Object
99
100
101
|
# File 'app/models/defaults/structure.rb', line 99
def parent_path
parent_services.reverse.map(&:slug).join('/')
end
|
#parent_services ⇒ Object
91
92
93
|
# File 'app/models/defaults/structure.rb', line 91
def parent_services
ancestors.select(&:service_page?)
end
|
#published_at ⇒ Object
83
84
85
|
# File 'app/models/defaults/structure.rb', line 83
def published_at
created_at
end
|
#service_info ⇒ Object
95
96
97
|
# File 'app/models/defaults/structure.rb', line 95
def service_info
super || build_service_info
end
|
#service_page? ⇒ Boolean
87
88
89
|
# File 'app/models/defaults/structure.rb', line 87
def service_page?
ancestors.where(structure_type_id: StructureType.services.id).exists?
end
|
#track_key ⇒ Object
112
113
114
115
116
117
|
# File 'app/models/defaults/structure.rb', line 112
def track_key
@track_key ||= [
'page_update',
id
].join('_')
end
|
#track_updates ⇒ Object
119
120
121
|
# File 'app/models/defaults/structure.rb', line 119
def track_updates
self.updated_at = Time.zone.now if is_update_traking
end
|
#track_value ⇒ Object
108
109
110
|
# File 'app/models/defaults/structure.rb', line 108
def track_value
updated_at.to_i.to_s(16)
end
|
#trackable? ⇒ Boolean
104
105
106
|
# File 'app/models/defaults/structure.rb', line 104
def trackable?
is_update_traking
end
|