Module: FontAwesome::Rails::IconHelper

Defined in:
app/helpers/font_awesome/rails/icon_helper.rb

Defined Under Namespace

Modules: Private

Instance Method Summary collapse

Instance Method Details

#fa_icon(names = "flag", options = {}) ⇒ Object

Creates an icon tag given an icon name and possible icon modifiers.

Examples

fa_icon "camera-retro"
# => <i class="icon-camera-retro"></i>

fa_icon "camera-retro", text: "Take a photo"
# => <i class="icon-camera-retro"></i> Take a photo

fa_icon "camera-retro 2x"
# => <i class="icon-camera-retro icon-2x"></i>
fa_icon ["camera-retro", "4x"]
# => <i class="icon-camera-retro icon-4x"></i>
fa_icon "spinner spin large"
# => <i class="icon-spinner icon-spin icon-large">

fa_icon "quote-left 4x muted", class: "pull-left"
# => <i class="icon-quote-left icon-4x icon-muted pull-left"></i>

fa_icon "user", data: { id: 123 }
# => <i class="icon-user" data-id="123"></i>

(:li, fa_icon("ok li", text: "Bulleted list item"))
# => <li><i class="icon-ok icon-li"></i> Bulleted list item</li>


30
31
32
33
34
35
# File 'app/helpers/font_awesome/rails/icon_helper.rb', line 30

def fa_icon(names = "flag", options = {})
  classes = Private.icon_names(names).concat(Array(options.delete(:class)))
  text = options.delete(:text)
  icon = (:i, nil, options.merge(:class => classes))
  Private.icon_join(icon, text)
end

#fa_stacked_icon(names = "flag", options = {}) ⇒ Object

Creates an stack set of icon tags given a base icon name, a main icon name, and possible icon modifiers.

Examples

fa_stacked_icon "twitter", base: "check-empty"
# => <span class="icon-stack">
# =>   <i class="icon-check-empty icon-stack-base"></i>
# =>   <i class="icon-twitter"></i>
# => </span>

fa_stacked_icon "terminal light", base: "sign-blank", class: "pull-right", text: "Hi!"
# => <span class="icon-stack pull-right">
# =>   <i class="icon-sign-blank icon-stack-base"></i>
# =>   <i class="icon-terminal icon-light"></i>
# => </span> Hi!

fa_stacked_icon "camera", base: "ban-circle", reverse: true
# => <span class="icon-stack">
# =>   <i class="icon-camera"></i>
# =>   <i class="icon-ban-circle icon-stack-base"></i>
# => </span>


59
60
61
62
63
64
65
66
67
68
69
# File 'app/helpers/font_awesome/rails/icon_helper.rb', line 59

def fa_stacked_icon(names = "flag", options = {})
  classes = Private.icon_names("stack").concat(Array(options.delete(:class)))
  base_names = Private.array_value(options.delete(:base)).push("stack-base")
  base = fa_icon(base_names, options.delete(:base_options) || {})
  icon = fa_icon(names, options.delete(:icon_options) || {})
  icons = [base, icon]
  icons.reverse! if options.delete(:reverse)
  text = options.delete(:text)
  stacked_icon = (:span, safe_join(icons), options.merge(:class => classes))
  Private.icon_join(stacked_icon, text)
end