module TbHelpers::Base

Constants

ALIGNMENT_CLASSES
BUTTON_SIZES
EMPHASIS_CLASSES
FORM_CLASSES
INPUT_SIZES
SPAN_SIZES
TABLE_CLASSES
TABLE_ROW_CLASSES

Public Instance Methods

tb_abbr(content = nil, options = nil, &block)
Alias for: tb_abbreviation
tb_abbreviation(content = nil, options = nil, &block) click to toggle source
# File lib/tb-helpers/base.rb, line 74
def tb_abbreviation(content = nil, options = nil, &block)
  content, options = content_or_options_with_block?(content, options, &block)
  tag = delete_option_if_exists!(options, :tag, :abbr)
  escape = delete_option_if_exists!(options, :escape, true)

  content_tag(tag, content, options, escape)
end
Also aliased as: tb_abbr
tb_address(content = nil, options = nil, &block) click to toggle source
# File lib/tb-helpers/base.rb, line 83
def tb_address(content = nil, options = nil, &block)
  content, options = content_or_options_with_block?(content, options, &block)
  tag = delete_option_if_exists!(options, :tag, :address)
  escape = delete_option_if_exists!(options, :escape, true)

  content_tag(tag, content, options, escape)
end
tb_blockquote(content = nil, options = nil, &block) click to toggle source
# File lib/tb-helpers/base.rb, line 91
def tb_blockquote(content = nil, options = nil, &block)
  content, options = content_or_options_with_block?(content, options, &block)
  tag = delete_option_if_exists!(options, :tag, :blockquote)
  escape = delete_option_if_exists!(options, :escape, true)

  content_tag(tag, content, options, escape)
end
tb_bold(content = nil, options = nil, &block) click to toggle source
# File lib/tb-helpers/base.rb, line 65
def tb_bold(content = nil, options = nil, &block)
  tb_emphasis(:bold, content, options, &block)
end
tb_btn(content = nil, options = nil, &block)
Alias for: tb_button
tb_button(content = nil, options = nil, &block) click to toggle source
# File lib/tb-helpers/base.rb, line 340
def tb_button(content = nil, options = nil, &block)
  content, options = content_or_options_with_block?(content, options, &block)
  tag = delete_option_if_exists!(options, :tag, :div)
  escape = delete_option_if_exists!(options, :escape, true)

  classes = ['btn']
  context = delete_option_if_exists!(options, :context, nil)
  classes << "btn-#{context}" if context
  size = delete_option_if_exists!(options, :size, nil)
  classes << "btn-#{size}" if size
  set_or_prepend_option!(options, :class, classes.join(' '))

  content_tag(tag, content, options, escape)
end
Also aliased as: tb_btn
tb_button_group(options = nil, &block) click to toggle source

buttons

# File lib/tb-helpers/base.rb, line 332
def tb_button_group(options = nil, &block)
  options = set_or_prepend_option!(options, :class, 'btn-group')
  tag = delete_option_if_exists!(options, :tag, :div)
  escape = delete_option_if_exists!(options, :escape, true)

  content_tag(tag, options, nil, escape, &block)
end
tb_check_box_label(options = nil, &block)
Alias for: tb_checkbox_label
tb_checkbox_label(options = nil, &block) click to toggle source
# File lib/tb-helpers/base.rb, line 218
def tb_checkbox_label(options = nil, &block)
  options ||= {} # set_or_prepend_option!(options, :class, 'checkbox')
  tag = delete_option_if_exists!(options, :tag, :label)
  escape = delete_option_if_exists!(options, :escape, true)

  classes = ['checkbox']
  inline = delete_option_if_exists!(options, :inline, false)
  classes << 'inline' if inline

  set_or_prepend_option!(options, :class, classes.join(' '))
  content_tag(tag, options, nil, escape, &block)
end
Also aliased as: tb_check_box_label
tb_code_block(content = nil, options = nil, &block) click to toggle source
# File lib/tb-helpers/base.rb, line 111
def tb_code_block(content = nil, options = nil, &block)
  content, options = content_or_options_with_block?(content, options, &block)
  tag = delete_option_if_exists!(options, :tag, :pre)
  escape = delete_option_if_exists!(options, :escape, true)

  classes = []
  scrollable = delete_option_if_exists!(options, :scrollable, true)
  classes << 'pre-scrollable' if scrollable
  set_or_prepend_option!(options, :class, classes.join(' ')) unless classes.empty?

  content_tag(tag, content, options, escape)
end
tb_code_inline(content = nil, options = nil, &block) click to toggle source

code

# File lib/tb-helpers/base.rb, line 103
def tb_code_inline(content = nil, options = nil, &block)
  content, options = content_or_options_with_block?(content, options, &block)
  tag = delete_option_if_exists!(options, :tag, :code)
  escape = delete_option_if_exists!(options, :escape, true)

  content_tag(tag, content, options, escape)
end
tb_control_group(options = nil, &block) click to toggle source
# File lib/tb-helpers/base.rb, line 183
def tb_control_group(options = nil, &block)
  options ||= {}
  tag = delete_option_if_exists!(options, :tag, :div)
  escape = delete_option_if_exists!(options, :escape, true)

  classes = ['control-group']
  context = delete_option_if_exists!(options, :context, nil)
  classes << context.to_s if context

  set_or_prepend_option!(options, :class, classes.join(' '))
  content_tag(tag, options, nil, escape, &block)
end
tb_control_label(content = nil, options = nil, &block) click to toggle source
# File lib/tb-helpers/base.rb, line 209
def tb_control_label(content = nil, options = nil, &block)
  content, options = content_or_options_with_block?(content, options, &block)
  options = set_or_prepend_option!(options, :class, 'control-label')
  tag = delete_option_if_exists!(options, :tag, :label)
  escape = delete_option_if_exists!(options, :escape, true)

  content_tag(tag, content, options, escape)
end
tb_controls(options = nil, &block) click to toggle source
# File lib/tb-helpers/base.rb, line 196
def tb_controls(options = nil, &block)
  options ||= {} # set_or_prepend_option!(options, :class, 'controls')
  tag = delete_option_if_exists!(options, :tag, :div)
  escape = delete_option_if_exists!(options, :escape, true)

  classes = ['controls']
  row = delete_option_if_exists!(options, :row, false)
  classes << 'controls-row' if row

  set_or_prepend_option!(options, :class, classes.join(' '))
  content_tag(tag, options, nil, escape, &block)
end
tb_emphasis(style, content = nil, options = nil, &block) click to toggle source
# File lib/tb-helpers/base.rb, line 40
def tb_emphasis(style, content = nil, options = nil, &block)
  content, options = content_or_options_with_block?(content, options, &block)
  tag = case style
    when :small then :small
    when :bold then :strong
    when :italics then :em
    when nil then delete_option_if_exists!(options, :tag, :span)
    else raise ArgumentError.new('invalid style value')
  end
  escape = delete_option_if_exists!(options, :escape, true)

  classes = []
  EMPHASIS_CLASSES.each do |class_sym, class_name|
    class_val = delete_option_if_exists!(options, class_sym, false)
    classes << class_name if class_val
  end
  set_or_prepend_option!(options, :class, classes.join(' '))

  content_tag(tag, content, options, escape)
end
tb_fieldset(options = nil, &block) click to toggle source
# File lib/tb-helpers/base.rb, line 171
def tb_fieldset(options = nil, &block)
  options ||= {}
  tag = delete_option_if_exists!(options, :tag, :fieldset)
  escape = delete_option_if_exists!(options, :escape, true)
  legend = delete_option_if_exists!(options, :legend, nil)

  content_tag(tag, options, nil, escape) do
    concat content_tag(:legend, legend, {}, true) if legend
    concat capture(&block)
  end
end
tb_form_actions(options = nil, &block) click to toggle source
# File lib/tb-helpers/base.rb, line 296
def tb_form_actions(options = nil, &block)
  options = set_or_prepend_option!(options, :class, 'form-actions')
  tag = delete_option_if_exists!(options, :tag, :div)
  escape = delete_option_if_exists!(options, :escape, true)

  content_tag(tag, options, nil, escape, &block)
end
tb_form_for(*args) click to toggle source

forms

# File lib/tb-helpers/base.rb, line 167
def tb_form_for(*args)
  raise NotImplementedError.new
end
tb_icon(name, options = nil)
Alias for: tb_icon_black
tb_icon_black(name, options = nil) click to toggle source

icons by glyphicons

# File lib/tb-helpers/base.rb, line 384
def tb_icon_black(name, options = nil)
  icon_name = name.to_s.starts_with?('icon-') ? name.to_s : "icon-#{name}"
  options = set_or_prepend_option!(options, :class, icon_name)
  tag = delete_option_if_exists!(options, :tag, :i)
  escape = delete_option_if_exists!(options, :escape, true)

  content_tag(tag, nil, options, escape)
end
Also aliased as: tb_icon
tb_icon_white(name, options = nil) click to toggle source
# File lib/tb-helpers/base.rb, line 394
def tb_icon_white(name, options = nil)
  icon_name = name.to_s.starts_with?('icon-') ? "#{name} icon-white" : "icon-#{name} icon-white"
  options = set_or_prepend_option!(options, :class, icon_name)
  tag = delete_option_if_exists!(options, :tag, :i)
  escape = delete_option_if_exists!(options, :escape, true)

  content_tag(tag, nil, options, escape)
end
tb_input_addon(style, options = nil, &block) click to toggle source
# File lib/tb-helpers/base.rb, line 245
def tb_input_addon(style, options = nil, &block)
  options = case style
    when :prepend then set_or_prepend_option!(options, :class, 'input-prepend')
    when :append then set_or_prepend_option!(options, :class, 'input-append')
    when :combined then set_or_prepend_option!(options, :class, 'input-prepend input-append')
    else raise ArgumentError.new('invalid style value')
  end
  tag = delete_option_if_exists!(options, :tag, :div)
  escape = delete_option_if_exists!(options, :escape, true)
  addon = delete_option_if_exists!(options, :addon, nil)

  content_tag(tag, options, nil, escape) do
    if style == :prepend || style == :combined
      prepend = addon.is_a?(Array) ? addon[0] : addon
      concat content_tag(:span, prepend, {:class => 'add-on'}, true) if prepend
    end
    concat capture(&block)
    if style == :append || style == :combined
      append = addon.is_a?(Array) ? addon[1] : addon
      concat content_tag(:span, append, {:class => 'add-on'}, true) if append
    end
  end
end
tb_input_addon_append(options = nil, &block) click to toggle source
# File lib/tb-helpers/base.rb, line 273
def tb_input_addon_append(options = nil, &block)
  tb_input_addon(:append, options, &block)
end
tb_input_addon_combined(options = nil, &block)
tb_input_addon_pre_and_append(options = nil, &block) click to toggle source
# File lib/tb-helpers/base.rb, line 277
def tb_input_addon_pre_and_append(options = nil, &block)
  tb_input_addon(:combined, options, &block)
end
Also aliased as: tb_input_addon_combined
tb_input_addon_prepend(options = nil, &block) click to toggle source
# File lib/tb-helpers/base.rb, line 269
def tb_input_addon_prepend(options = nil, &block)
  tb_input_addon(:prepend, options, &block)
end
tb_input_help(style, content = nil, options = nil, &block) click to toggle source
# File lib/tb-helpers/base.rb, line 304
def tb_input_help(style, content = nil, options = nil, &block)
  content, options = content_or_options_with_block?(content, options, &block)
  tag = delete_option_if_exists!(options, :tag, :span)
  escape = delete_option_if_exists!(options, :escape, true)

  classes = []
  classes << case style
    when :inline then 'help-inline'
    when :block then 'help-block'
    else raise ArgumentError.new('invalid style value')
  end

  set_or_prepend_option!(options, :class, classes.join(' '))
  content_tag(tag, content, options, escape)    
end
tb_input_help_block(content = nil, options = nil, &block) click to toggle source
# File lib/tb-helpers/base.rb, line 324
def tb_input_help_block(content = nil, options = nil, &block)
  tb_input_help(:block, content, options, &block)
end
tb_input_help_inline(content = nil, options = nil, &block) click to toggle source
# File lib/tb-helpers/base.rb, line 320
def tb_input_help_inline(content = nil, options = nil, &block)
  tb_input_help(:inline, content, options, &block)
end
tb_input_uneditable(content = nil, options = nil, &block) click to toggle source
# File lib/tb-helpers/base.rb, line 282
def tb_input_uneditable(content = nil, options = nil, &block)
  content, options = content_or_options_with_block?(content, options, &block)
  tag = delete_option_if_exists!(options, :tag, :span)
  escape = delete_option_if_exists!(options, :escape, true)

  classes = []
  size = delete_option_if_exists!(options, :size, nil)
  classes << "input-#{size}" if size
  classes << 'uneditable-input'

  set_or_prepend_option!(options, :class, classes.join(' '))
  content_tag(tag, content, options, escape)
end
tb_italic(content = nil, options = nil, &block)
Alias for: tb_italics
tb_italics(content = nil, options = nil, &block) click to toggle source
# File lib/tb-helpers/base.rb, line 69
def tb_italics(content = nil, options = nil, &block)
  tb_emphasis(:italics, content, options, &block)
end
Also aliased as: tb_italic
tb_javascript_include_tag(version=nil) click to toggle source

essentials

# File lib/tb-helpers/base.rb, line 15
def tb_javascript_include_tag(version=nil)
  version ||= '2.3.1'
  javascript_include_tag "//netdna.bootstrapcdn.com/twitter-bootstrap/#{version}/js/bootstrap.min.js"
end
tb_lead(content = nil, options = nil, &block) click to toggle source

typography

# File lib/tb-helpers/base.rb, line 29
def tb_lead(content = nil, options = nil, &block)
  content, options = content_or_options_with_block?(content, options, &block)
  tag = delete_option_if_exists!(options, :tag, :p)
  escape = delete_option_if_exists!(options, :escape, true)

  classes = ['lead']
  set_or_prepend_option!(options, :class, classes.join(' '))

  content_tag(tag, content, options, escape)
end
tb_radio_label(options = nil, &block) click to toggle source
# File lib/tb-helpers/base.rb, line 232
def tb_radio_label(options = nil, &block)
  options ||= {} # set_or_prepend_option!(options, :class, 'radio')
  tag = delete_option_if_exists!(options, :tag, :label)
  escape = delete_option_if_exists!(options, :escape, true)

  classes = ['radio']
  inline = delete_option_if_exists!(options, :inline, false)
  classes << 'inline' if inline

  set_or_prepend_option!(options, :class, classes.join(' '))
  content_tag(tag, options, nil, escape, &block)
end
tb_small(content = nil, options = nil, &block) click to toggle source
# File lib/tb-helpers/base.rb, line 61
def tb_small(content = nil, options = nil, &block)
  tb_emphasis(:small, content, options, &block)
end
tb_table(options = nil, &block) click to toggle source

tables

# File lib/tb-helpers/base.rb, line 128
def tb_table(options = nil, &block)
  options ||= {}
  tag = delete_option_if_exists!(options, :tag, :table)
  escape = delete_option_if_exists!(options, :escape, true)
  caption = delete_option_if_exists!(options, :caption, nil)

  classes = ['table']
  TABLE_CLASSES.each do |class_sym, class_name|
    class_val = delete_option_if_exists!(options, class_sym, false)
    classes << class_name if class_val
  end
  set_or_prepend_option!(options, :class, classes.join(' '))

  content_tag(tag, options, nil, escape) do
    concat content_tag(:caption, caption, {}, true) if caption
    concat capture(&block)
  end
end
tb_table_row(options = nil, &block) click to toggle source
# File lib/tb-helpers/base.rb, line 147
def tb_table_row(options = nil, &block)
  options ||= {}
  tag = delete_option_if_exists!(options, :tag, :tr)
  escape = delete_option_if_exists!(options, :escape, true)

  # FIXME this should be done with context option
  classes = []
  TABLE_ROW_CLASSES.each do |class_sym, class_name|
    class_val = delete_option_if_exists!(options, class_sym, false)
    classes << class_name if class_val
  end
  set_or_prepend_option!(options, :class, classes.join(' '))

  content_tag(tag, options, nil, escape, &block)
end

Protected Instance Methods

content_or_options_with_block?(content_or_options_with_block, options, &block) click to toggle source
# File lib/tb-helpers/base.rb, line 423
def content_or_options_with_block?(content_or_options_with_block, options, &block)
  if content_or_options_with_block.is_a?(Hash)
    content = capture(&block)
    options = content_or_options_with_block
  else
    content = content_or_options_with_block
    options ||= {}
  end
  return content, options
end
delete_option_if_exists!(options, key, fallback=nil) click to toggle source

protected helper methods

# File lib/tb-helpers/base.rb, line 409
def delete_option_if_exists!(options, key, fallback=nil)
  options.has_key?(key) ? options.delete(key) : fallback
end
set_or_prepend_option!(options, key, value) click to toggle source
# File lib/tb-helpers/base.rb, line 413
def set_or_prepend_option!(options, key, value)
  options ||= {}
  unless options.has_key?(:class)
    options[:class] = value
  else
    options[:class] = "#{value} #{options[:class]}"
  end
  options
end