Sha256: 938436ea9668b9e3f29ba1dddab76d26ff3768e23bb103e49690dfe51d41ccd6
Contents?: true
Size: 1.28 KB
Versions: 4
Compression:
Stored size: 1.28 KB
Contents
module Spina class Theme attr_accessor :name, :title, :page_parts, :structures, :view_templates, :layout_parts, :custom_pages, :plugins, :public_theme, :config 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 = [] @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
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
spina-0.11.1 | lib/spina/theme.rb |
spina-0.11.0 | lib/spina/theme.rb |
spina-0.10.0 | lib/spina/theme.rb |
spina-0.9.0 | lib/spina/theme.rb |