class Limitedrun::Themekit::Renderer
Public Instance Methods
render(template, template_assigns = nil)
click to toggle source
# File lib/limitedrun-themekit/renderer.rb, line 14 def render(template, template_assigns = nil) assigns = global_assigns if template_assigns template_assigns.each_key do |k| unless template_assigns[k].is_a?(Hashie::Mash) template_assigns[k] = Hashie::Mash.new(instance_eval &template_assigns[k]) end end assigns.merge!(template_assigns.stringify_keys) end layout = parse_template File.join(Limitedrun::Themekit::Config.layouts_dir, 'default.html') template = parse_template File.join(Limitedrun::Themekit::Config.templates_dir, template) layout.render(assigns.merge('content' => template.render(assigns))) end
render_string(string)
click to toggle source
# File lib/limitedrun-themekit/renderer.rb, line 33 def render_string(string) Liquid::Template.parse(string).render('config' => theme_config) end
Protected Instance Methods
global_assigns()
click to toggle source
Assignments for all liquid templates
# File lib/limitedrun-themekit/renderer.rb, line 40 def global_assigns { 'config' => theme_config, 'store' => store } end
parse_template(template)
click to toggle source
# File lib/limitedrun-themekit/renderer.rb, line 76 def parse_template(template) Liquid::Template.parse( File.read( File.join( Limitedrun::Themekit::Config.theme_path, template ) ) ) end
store()
click to toggle source
Store mock data model loaded from store.json
# File lib/limitedrun-themekit/renderer.rb, line 72 def store @store ||= Hashie::Mash.new(JSON.parse(File.read(File.join(Limitedrun::Themekit::Config.theme_path, 'store.json')))) end
theme_config()
click to toggle source
Theme configuration extracted from config/defaults.js and store.config overrides
# File lib/limitedrun-themekit/renderer.rb, line 45 def theme_config return @theme_config if @theme_config settings = JSON.parse( File.read( File.join( Limitedrun::Themekit::Config.theme_path, Limitedrun::Themekit::Config.configs_dir, 'default.json' ) ) )['settings'] config = {} settings.each do |k, v| config[k] = v['default'] if v['default'] end if store && store.config store.config.each { |k, v| config[k] = v } end @config = config end