@ -1,4 +1,4 @@
gem 'activesupport' , " >= 2.3.2"
gem 'activesupport' , " 2.3.2 "
require 'active_support'
require 'rubypants'
@ -6,7 +6,7 @@ module Helpers
module EscapeHelper
HTML_ESCAPE = { '&' = > '& ' , '>' = > '>' , '<' = > '<' , '"' = > '"' }
JSON_ESCAPE = { '&' = > '\u0026 ' , '>' = > '\u003E' , '<' = > '\u003C' }
# A utility method for escaping HTML tag characters.
# This method is also aliased as <tt>h</tt>.
#
@ -23,7 +23,7 @@ module Helpers
html . to_s . gsub ( / [ \ "><]|&(?!([a-zA-Z]+|( # \ d+));) / ) { | special | HTML_ESCAPE [ special ] }
end
alias h escape_once
# A utility method for escaping HTML entities in JSON strings.
# This method is also aliased as <tt>j</tt>.
#
@ -36,11 +36,11 @@ module Helpers
def json_escape ( s )
s . to_s . gsub ( / [&"><] / ) { | special | JSON_ESCAPE [ special ] }
end
alias j json_escape
end
include EscapeHelper
module ParamsHelper
def params
@params || = begin
@ -51,31 +51,31 @@ module Helpers
end
end
include ParamsHelper
module TagHelper
def content_tag ( name , content , html_options = { } )
%{ < #{ name } #{ html_attributes ( html_options ) } > #{ content } </ #{ name } > }
end
def tag ( name , html_options = { } )
%{ < #{ name } #{ html_attributes ( html_options ) } /> }
end
def image_tag ( src , html_options = { } )
tag ( :img , html_options . merge ( { :src = > src } ) )
end
def javascript_tag ( content = nil , html_options = { } )
content_tag ( :script , javascript_cdata_section ( content ) , html_options . merge ( :type = > " text/javascript " ) )
end
def link_to ( name , href , html_options = { } )
html_options = html_options . stringify_keys
confirm = html_options . delete ( " confirm " )
onclick = " if (!confirm(' #{ html_escape ( confirm ) } ')) return false; " if confirm
content_tag ( :a , name , html_options . merge ( :href = > href , :onclick = > onclick ) )
end
def link_to_function ( name , * args , & block )
html_options = { }
html_options = args . pop if args . last . is_a? Hash
@ -84,17 +84,17 @@ module Helpers
href = html_options [ :href ] || '#'
content_tag ( :a , name , html_options . merge ( :href = > href , :onclick = > onclick ) )
end
private
def cdata_section ( content )
" <![CDATA[ #{ content } ]]> "
end
def javascript_cdata_section ( content ) #:nodoc:
" \n // #{ cdata_section ( " \n #{ content } \n // " ) } \n "
end
def html_attributes ( options )
unless options . blank?
attrs = [ ]
@ -110,7 +110,7 @@ module Helpers
end
end
include TagHelper
def to_html_email ( address )
email = string_to_html ( address )
" <a href= \" #{ string_to_html ( 'mailto:' ) } #{ email } \" > #{ email } </a> "
@ -119,7 +119,7 @@ module Helpers
def string_to_html ( s )
s . strip . unpack ( " C* " ) . map { | ch | " & # " + ch . to_s + " ; " } . to_s
end
def show_part ( file )
data = ''
f = File . open ( Dir . pwd + " /source/ " + file )
@ -128,16 +128,16 @@ module Helpers
end
data
end
def shorten_words ( string , word_limit = 25 )
words = string . split ( / \ s / )
if words . size > = word_limit
words [ 0 , ( word_limit - 1 ) ] . join ( " " ) + '…'
else
else
string
end
end
def shorten ( string , char_limit = 55 )
chars = string . scan ( / .{1,1} / )
if chars . size > = char_limit
@ -146,20 +146,20 @@ module Helpers
" blah2 "
end
end
def absolute_url ( input , url )
input . gsub ( / (href|src)( \ s*= \ s*)(["'])( \/ .*?) \ 3 / ) { $1 + $2 + $3 + url + $4 + $3 }
end
def rp ( input )
RubyPants . new ( input ) . to_html
end
def style_amp ( input )
input . gsub ( " & " , " <span class='amp'>&</span> " )
end
module PartialsHelper
# A very hackish way to handle partials. We'll go with it till it breaks...
def include ( partial_name )
file_ext = partial_name [ ( partial_name . index ( '.' ) + 1 ) .. partial_name . length ]
@ -176,15 +176,15 @@ module Helpers
end
end
end
include PartialsHelper
end
class String
def titlecase
small_words = %w( a an and as at but by en for if in of on or the to v v. via vs vs. )
x = split ( " " ) . map do | word |
# note: word could contain non-word characters!
# downcase all small_words, capitalize the rest
@ -197,11 +197,11 @@ class String
# small words after colons are capitalized
x . join ( " " ) . gsub ( / : \ s?( \ W* #{ small_words . join ( " | " ) } \ W*) \ s / ) { " : #{ $1 . smart_capitalize } " }
end
def titlecase!
replace ( titlecase )
end
def smart_capitalize
# ignore any leading crazy characters and capitalize the first real character
if self =~ / ^['" \ ( \ [']*([a-z]) /
@ -212,7 +212,7 @@ class String
end
self
end
def smart_capitalize!
replace ( smart_capitalize )
end