Sha256: 2b3736f296fc7f4826bfea2443b123124ac9aa013377302b2ddd5f9566d787c7

Contents?: true

Size: 643 Bytes

Versions: 3

Compression:

Stored size: 643 Bytes

Contents

class TagSidebar < Sidebar
  display_name 'Tags'
  description 'Show most popular tags for this blog'

  setting :maximum_tags, 20

  def tags
    @tags ||= Tag.find_all_with_content_counters.
      take(maximum_tags.to_i).sort_by(&:name)
  end

  def sizes
    return @sizes if @sizes
    total = tags.reduce(0) { |sum, tag| sum + tag.content_counter }
    average = total.to_f / @tags.size.to_f
    @sizes = tags.reduce({}) do |h, tag|
      size = tag.content_counter.to_f / average
      h.merge tag => [[2.0 / 3.0, size].max, 2].min * 100
    end
  end

  def font_multiplier
    80
  end
end

SidebarRegistry.register_sidebar TagSidebar

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
publify_core-9.1.0 app/models/tag_sidebar.rb
publify_core-9.0.1 app/models/tag_sidebar.rb
publify_core-9.0.0 app/models/tag_sidebar.rb