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
 |