Sha256: 14bc6dd6a2608114ca2f8735df6712037483599838c4253f64e0c04c12af4f54
Contents?: true
Size: 1.31 KB
Versions: 6
Compression:
Stored size: 1.31 KB
Contents
class Theme cattr_accessor :cache_theme_lookup @@cache_theme_lookup = false attr_accessor :name, :path, :description_html def initialize(name, path) @name, @path = name, path end def layout(action=:default) if action.to_s == 'view_page' if File.exists? "#{RAILS_ROOT}/themes/#{name}/layouts/pages.html.erb" return "#{RAILS_ROOT}/themes/#{name}/layouts/pages.html.erb" end end "#{RAILS_ROOT}/themes/#{name}/layouts/default.html.erb" end def description File.read("#{path}/about.markdown") rescue "### #{name}" end # Find a theme, given the theme name def self.find(name) self.new(name,theme_path(name)) end def self.themes_root RAILS_ROOT + "/themes" end def self.theme_path(name) themes_root + "/" + name end def self.theme_from_path(path) name = path.scan(/[-\w]+$/i).flatten.first self.new(name, path) end def self.find_all installed_themes.inject([]) do |array, path| array << theme_from_path(path) end end def self.installed_themes cache_theme_lookup ? @theme_cache ||= search_theme_directory : search_theme_directory end def self.search_theme_directory glob = "#{themes_root}/[a-zA-Z0-9]*" Dir.glob(glob).select do |file| File.readable?("#{file}/about.markdown") end.compact end end
Version data entries
6 entries across 6 versions & 1 rubygems
Version | Path |
---|---|
typo-5.5 | app/models/theme.rb |
typo-5.4.4 | app/models/theme.rb |
typo-5.4.3 | app/models/theme.rb |
typo-5.4.2 | app/models/theme.rb |
typo-5.4.1 | app/models/theme.rb |
typo-5.4 | app/models/theme.rb |