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