class JsDuck::Web::ClassIcons

Public Class Methods

css() click to toggle source

Generates CSS for class icons

# File lib/jsduck/web/class_icons.rb, line 21
        def css
          css = []
          class_icon_providers.each do |tag|
            css << <<-EOCSS
              #center-container h1.icon-#{tag.tagname} .class-source-link {
                  background: url(class-icons/#{tag.tagname}-large.png) no-repeat 0 -5px; }
              #treecontainer .x-grid-cell-inner .icon-#{tag.tagname} {
                  background: url(class-icons/#{tag.tagname}.png) no-repeat; }
              #search-dropdown .icon-#{tag.tagname} {
                  background: url(class-icons/#{tag.tagname}.png) no-repeat; }
              #search-dropdown .icon-#{tag.tagname}-redirect {
                  background: url(class-icons/#{tag.tagname}-redirect.png) no-repeat; }
              .doctabs .icon-#{tag.tagname} {
                  background: url(class-icons/#{tag.tagname}.png) no-repeat; }
            EOCSS
          end
          css.join("\n")
        end
get(cls) click to toggle source

Returns CSS class name for an icon of class

# File lib/jsduck/web/class_icons.rb, line 10
def get(cls)
  class_icon_providers.each do |tag|
    if cls[tag.tagname]
      return "icon-#{tag.tagname}"
    end
  end

  return "icon-class"
end
write(dir) click to toggle source

Copies all class icons to given destination dir.

# File lib/jsduck/web/class_icons.rb, line 41
def write(dir)
  FileUtils.mkdir(dir)

  icons = {}
  class_icon_providers.each do |tag|
    icons[tag.class_icon[:small]] = "#{dir}/#{tag.tagname}.png"
    icons[tag.class_icon[:large]] = "#{dir}/#{tag.tagname}-large.png"
    icons[tag.class_icon[:redirect]] = "#{dir}/#{tag.tagname}-redirect.png"
  end

  icons.each_pair do |source, target|
    if File.exists?(source)
      FileUtils.cp(source, target)
    else
      Logger.warn(nil, "Class icon file not found", {:filename => source})
    end
  end
end

Private Class Methods

class_icon_providers() click to toggle source
# File lib/jsduck/web/class_icons.rb, line 62
def class_icon_providers
  @providers ||= generate_class_icon_providers
end
generate_class_icon_providers() click to toggle source

Find tags with class_icon and sort them from highest priority to lowest

# File lib/jsduck/web/class_icons.rb, line 67
def generate_class_icon_providers
  TagRegistry.tags.find_all {|t| t.class_icon }.sort do |a, b|
    a.class_icon[:priority] <=> b.class_icon[:priority]
  end.reverse
end