Sha256: ddc066efc941070e1c356d3bd834f68def70bbd4b533666138dcae2b7c9fb969
Contents?: true
Size: 1.32 KB
Versions: 5
Compression:
Stored size: 1.32 KB
Contents
module Spina class Theme attr_accessor :name, :title, :page_parts, :structures, :view_templates, :layout_parts, :custom_pages, :plugins, :public_theme, :config, :navigations class << self def all ::Spina::THEMES end def find_by_name(name) all.find { |theme| theme.name == name } end def register theme = ::Spina::Theme.new yield theme raise 'Missing theme name' if theme.name.nil? if theme.plugins.nil? theme.plugins = ::Spina::Plugin.all.map { |plugin| plugin.name } end all << theme end end def initialize @page_parts = [] @structures = [] @layout_parts = [] @view_templates = [] @custom_pages = [] @navigations = [] @public_theme = false end def new_page_templates @view_templates.map do |view_template| [view_template[:name], view_template[:title], view_template[:description], view_template[:usage]] unless is_custom_undeletable_page?(view_template[:name]) end.compact end # Check if view_template is defined as a custom undeletable page def is_custom_undeletable_page?(view_template) @custom_pages.any? { |page| page[:view_template] == view_template && !page[:deletable] } end end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
spina-1.0.3 | lib/spina/theme.rb |
spina-1.0.2 | lib/spina/theme.rb |
spina-1.0.1 | lib/spina/theme.rb |
spina-1.0.0 | lib/spina/theme.rb |
spina-0.12.0 | lib/spina/theme.rb |