Sha256: 870311ebd067fb9a59cffaa1d371985b489d31af7801a5186c119e423326f406

Contents?: true

Size: 1.16 KB

Versions: 2

Compression:

Stored size: 1.16 KB

Contents

module Symbolink
  module SymbolinkHelpers
    include ActionView::Helpers::UrlHelper
    def symbolicon(sym)
      Symbolink.configuration.symbols[sym]
    end

    # @deprecate use symbolicon
    def symbol(sym)
      symbolicon(sym)
    end

    def symbolink_to(sym, options = {}, html_options = {})
      action = Symbolink.configuration.actions[sym]
      if action
        icon = action[:icon]
        title = action[:title]
        confirm = action[:confirm]
      else
        icon = sym
        title = sym.to_s.humanize
        confirm = nil
      end
      html_options[:title] ||= title
      if confirm
        html_options[:data] ||= {}
        %w{confirm data-confirm}.map(&:to_sym).select{ |opt| html_options[opt] }.each do |opt|
          html_options[:data][:confirm] = html_options[opt]
          html_options.delete(opt)
        end
        html_options[:data][:confirm] ||= confirm
      end
      link_to(symbolicon(icon), options, html_options)
    end

    def symbolink_destroy(options = {}, html_options = {})
      html_options[:method] = :delete
      symbolink_to(:delete, options, html_options)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
symbolink-0.0.7 lib/symbolink/helper.rb
symbolink-0.0.6 lib/symbolink/helper.rb