tansaku/LocalSupport

View on GitHub
app/helpers/application_helper.rb

Summary

Maintainability
A
0 mins
Test Coverage
module ApplicationHelper
  # from http://stackoverflow.com/questions/1293573/rails-smart-text-truncation
  def smart_truncate(sentence, char_limit = 128)
      sentence = sentence.to_s
      size =0
      sentence.split().reject do |word|
        size+=word.size()
        size>char_limit
      end.join(" ")+(sentence.size()>char_limit ? " "+ "..." : "" )
  end

  def markdown(text)
    red_carpet = Redcarpet::Markdown.new(Redcarpet::Render::HTML, :autolink => true)
    red_carpet.render(text).html_safe
  end

  def resource_name
    :user
  end

  def resource
    @resource ||= User.new
  end

  def devise_mapping
    @devise_mapping ||= Devise.mappings[:user]
  end

  def parent_layout(layout) # http://andre.arko.net/2013/02/02/nested-layouts-on-rails--31/
    @view_flow.set(:layout, output_buffer)
    self.output_buffer = render(:file => "layouts/#{layout}")
  end

  def cookie_policy_accepted?
    cookies['cookie_policy_accepted'].present?
  end

  def active_if(controller)
    'active' if params[:controller] == controller
  end

  def feature_active?(flag)
    Feature.active?(flag.to_sym)
  end

  def bootstrap_class_for flash_type
    case flash_type
    when 'warning'
      'alert-warning'
    when 'notice'
      'alert-success'
    else
      'alert-danger'
    end
  end

  def gmap_key_value_for_url
    return '' if ENV['GMAP_API_KEY'].nil?
    "&key=#{ENV['GMAP_API_KEY']}"
  end
end