Sha256: 29d2b5683484de514be539547590a4ee2dc6646982aecb43a48f66bfffab5d28
Contents?: true
Size: 1.5 KB
Versions: 1
Compression:
Stored size: 1.5 KB
Contents
require 'cgi' require 'uri' module Wikilink class Converter module ArgumentExtractor def extract_arguments(*args) options = {} options = args.pop if args.last.is_a?(Hash) name = args.shift if name.nil? || name.is_a?(String) || name.is_a?(Symbol) name = name.to_s converter = args.shift else converter = name name = nil end throw ArgumentError, "too many arguments" unless args.empty? [name, converter, options] end end module LinkHelper def link_to(name, url, attributes = {}) attributes[:class] = Array(attributes[:class]).flatten.join(' ').split.uniq.join(' ') attributes.delete(:class) if attributes[:class].empty? attributes = attributes.inject('') do |memo, (key, value)| memo + key.to_s + '="' + CGI.escape_html(value) + '" ' end url, fragment = url.split('#', 2) if fragment url << '#' + URI.encode(fragment, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]")) end %Q{<a #{attributes}href="#{url}">#{CGI.escape_html name}</a>} end end module HTMLAttributes def html_class(extra_classes = nil) classes = [] if respond_to? :options classes << options[:class] classes << 'external' if options[:external] end classes << extra_classes if extra_classes classes.flatten.join(' ').split.uniq.join(' ') end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
wikilink-converter-0.2.4 | lib/wikilink/converter/utils.rb |