34 lines
553 B
Ruby
34 lines
553 B
Ruby
class Layout < DesignFile
|
|
include ParserLayout
|
|
|
|
attr_reader :content
|
|
|
|
field :body
|
|
|
|
embeds_one :menu
|
|
belongs_to :design
|
|
embeds_many :layout_parts
|
|
|
|
before_save :parse_layout
|
|
after_save :save_pages
|
|
|
|
def content
|
|
self.file.read.force_encoding("UTF-8") rescue ''
|
|
end
|
|
|
|
def self.exist_one?
|
|
Layout.count > 0
|
|
end
|
|
|
|
def parse_layout
|
|
html = Nokogiri::HTML(self.file.read)
|
|
self.body = html.at_css("body").inner_html
|
|
parse_body(self)
|
|
end
|
|
|
|
def save_pages
|
|
self.design.pages.each(&:generate_parts)
|
|
end
|
|
|
|
end
|