class Locomotive::Wagon::Generators::Page
Public Class Methods
source_root()
click to toggle source
# File lib/locomotive/wagon/generators/page.rb, line 36 def self.source_root File.join(File.dirname(__FILE__), '..', '..', '..', '..', 'generators', 'page') end
Public Instance Methods
create_page()
click to toggle source
# File lib/locomotive/wagon/generators/page.rb, line 16 def create_page segments = self.slug.split('/').find_all { |segment| segment != '' } max_segments = segments.size while segment = segments.pop do _options = self.page_options(slug: segment, translated: false) file_path = File.join(pages_path, segments, segment) # the content type option is never deleted for the first segment (the requested template) _options.delete(:content_type) unless segments.size == (max_segments - 1) template 'template.liquid.tt', "#{file_path}.liquid", _options self.other_locales.each do |locale| _options[:translated] = true template 'template.liquid.tt', "#{file_path}.#{locale}.liquid", _options end end end
Protected Instance Methods
other_locales()
click to toggle source
# File lib/locomotive/wagon/generators/page.rb, line 54 def other_locales return @other_locales if @other_locales # Rules: # #1 default: [fr, en, es], asked: [en, de], result => [en] # #2 default: [fr, en, de], asked: [es], result => [] # #1 default: [fr, en, es], asked: [fr, en, es], result => [en, es] _locales = options[:locales] || '' separator = _locales.include?(',') ? ',' : ' ' _locales = _locales.split(separator) locales = options[:default_locales] locales.shift @other_locales = locales & (_locales || []) end
page_options(base = {})
click to toggle source
# File lib/locomotive/wagon/generators/page.rb, line 46 def page_options(base = {}) base.merge({ title: options[:title] || base[:slug].humanize, listed: options[:listed], content_type: options[:content_type] }) end
pages_path()
click to toggle source
# File lib/locomotive/wagon/generators/page.rb, line 42 def pages_path File.join(target_path, 'app', 'views', 'pages') end