Sha256: 26276dd8ad3a87594bba2da5b48f262c5187552276b75674e59d22d3e143ea87

Contents?: true

Size: 1012 Bytes

Versions: 2

Compression:

Stored size: 1012 Bytes

Contents

# See: http://twitter.github.io/bootstrap/components.html#labels-badges
# 
# Helper for producing Twitter Bootstrap badges
#
# Default badge:
#
#   badge('Default')
#
# Other badges (see BADGE_TYPES):
#
#   badge('Info', :info)
#
# Options passed through to <span> tag:
#
#   badge('Warning', :warning, id: 'warn-id', class: 'more-class', my_key: 'my_value')
#
module Bootstrap::BadgeHelper
  InvalidBadgeTypeError = Class.new(StandardError)
  
  BADGE_TYPES = %w(default success warning important info inverse)
  
  def badge(*args)
    text = args.shift
    options = add_badge_classes(*args)
    content_tag(:span, text, options)
  end

  private
  
  def add_badge_classes(*args)
    options = args.extract_options!
    validate_badge_types(args)
    classes = ['badge'] + args.map { |arg| "badge-#{arg}" }
    ensure_class(options, classes)
  end
  
  def validate_badge_types(badge_types)
    badge_types.each { |e| raise(InvalidBadgeTypeError, e.inspect) unless BADGE_TYPES.include?(e.to_s) }
  end
  
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
bootstrap-view-helpers-0.0.3 app/helpers/bootstrap/badge_helper.rb
bootstrap-view-helpers-0.0.1 app/helpers/bootstrap/badge_helper.rb