class Alexandria::WebTheme

Attributes

css_file[R]
name[R]
pixmaps_directory[R]
preview_file[R]

Public Class Methods

all() click to toggle source
# File lib/alexandria/web_themes.rb, line 36
def self.all
  themes_dir = [
    # System dir
    File.join(Alexandria::Config::DATA_DIR, "web-themes"),

    # User dir
    File.join(ENV["HOME"], ".alexandria", ".web-themes")
  ]
  themes_dir.map { |x| load(x) }.flatten
end
load(themes_dir) click to toggle source
# File lib/alexandria/web_themes.rb, line 47
def self.load(themes_dir)
  themes = []
  if File.exist?(themes_dir)
    Dir.entries(themes_dir).each do |file|
      # ignore hidden files
      next if file.start_with?(".")

      # ignore non-directories
      path = File.join(themes_dir, file)
      next unless File.directory?(path)
      # ignore CVS directories
      next if file == "CVS"

      css_file = File.join(path, file + ".css")
      preview_file = File.join(path, "preview.jpg")
      [css_file, preview_file].each do |helper_file|
        unless File.exist?(helper_file)
          raise format(_("File %<file>s not found"), file: helper_file)
        end
      end
      themes << WebTheme.new(css_file, preview_file,
                             File.join(path, file, "pixmaps"))
    end
  else
    FileUtils.mkdir_p(themes_dir)
  end
  themes
end
new(css_file, preview_file, pixmaps_directory) click to toggle source
# File lib/alexandria/web_themes.rb, line 25
def initialize(css_file, preview_file, pixmaps_directory)
  @name = File.basename(css_file, ".css").capitalize
  @css_file = css_file
  @preview_file = preview_file
  @pixmaps_directory = pixmaps_directory
end

Public Instance Methods

has_pixmaps?() click to toggle source
# File lib/alexandria/web_themes.rb, line 32
def has_pixmaps?
  File.exist?(@pixmaps_directory)
end