document.write("<div class=\"pastie\">\n");
document.write("  <link href=\"http://pastie.org/stylesheets/embed.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n");
document.write("  <link href=\"http://pastie.org/stylesheets/clean.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n");
document.write("  \n");
document.write("\n");
document.write("  \n");
document.write("  \n");
document.write("\n");
document.write("\n");
document.write("\n");
document.write("\n");
document.write("\n");
document.write("\n");
document.write("\n");
document.write("	\n");
document.write("	<div class=\"allcode\">\n");
document.write("		<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n");
document.write("		<tr>\n");
document.write("			<td>\n");
document.write("				\n");
document.write("				<pre class=\"textmate-source-numbers\">1\n");
document.write("2\n");
document.write("3\n");
document.write("4\n");
document.write("5\n");
document.write("6\n");
document.write("7\n");
document.write("8\n");
document.write("9\n");
document.write("10\n");
document.write("11\n");
document.write("12\n");
document.write("13\n");
document.write("14\n");
document.write("15\n");
document.write("16\n");
document.write("17\n");
document.write("18\n");
document.write("19\n");
document.write("20\n");
document.write("21\n");
document.write("22\n");
document.write("23\n");
document.write("24\n");
document.write("25\n");
document.write("26\n");
document.write("27\n");
document.write("28\n");
document.write("29\n");
document.write("30\n");
document.write("31\n");
document.write("32\n");
document.write("33\n");
document.write("34\n");
document.write("35\n");
document.write("36\n");
document.write("37\n");
document.write("38\n");
document.write("39\n");
document.write("40\n");
document.write("41\n");
document.write("42\n");
document.write("<\/pre>\n");
document.write("			<\/td>\n");
document.write("		<td>\n");
document.write("		<pre class=\"textmate-source\"><pre class=\"sunburst\"><span class=\'meta meta_rails meta_rails_helper\'><span class=\'meta meta_module meta_module_ruby\'><span class=\'keyword keyword_control keyword_control_module keyword_control_module_ruby\'>module<\/span> <span class=\'entity entity_name entity_name_type entity_name_type_module entity_name_type_module_ruby\'><span class=\'entity entity_other entity_other_inherited-class entity_other_inherited-class_module entity_other_inherited-class_module_first entity_other_inherited-class_module_first_ruby\'>ActionView::<\/span><span class=\'entity entity_other entity_other_inherited-class entity_other_inherited-class_module entity_other_inherited-class_module_second entity_other_inherited-class_module_second_ruby\'>Helpers::<\/span>TextHelper<\/span><\/span>\n");
document.write("  <span class=\'meta meta_function meta_function_method meta_function_method_with-arguments meta_function_method_with-arguments_ruby\'><span class=\'keyword keyword_control keyword_control_def keyword_control_def_ruby\'>def<\/span> <span class=\'entity entity_name entity_name_function entity_name_function_ruby\'>truncate<\/span>(<span class=\'variable variable_parameter variable_parameter_function variable_parameter_function_ruby\'>text, <span class=\'keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby\'>*<\/span>args<\/span>)<\/span>\n");
document.write("    <span class=\'keyword keyword_control keyword_control_pseudo-method keyword_control_pseudo-method_ruby\'>return<\/span> <span class=\'string string_quoted string_quoted_single string_quoted_single_ruby\'>\'\'<\/span> <span class=\'keyword keyword_control keyword_control_ruby\'>unless<\/span> text\n");
document.write("    options <span class=\'keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby\'>=<\/span> args.extract_options!\n");
document.write("\n");
document.write("<span class=\'comment comment_line comment_line_number-sign comment_line_number-sign_ruby\'>    # support either old or Rails 2.2 calling convention:<\/span>\n");
document.write("    <span class=\'keyword keyword_control keyword_control_ruby\'>unless<\/span> args.empty?\n");
document.write("      options[<span class=\'constant constant_other constant_other_symbol constant_other_symbol_ruby\'>:length<\/span>] <span class=\'keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby\'>=<\/span> args[<span class=\'constant constant_numeric constant_numeric_ruby\'>0<\/span>] <span class=\'keyword keyword_operator keyword_operator_logical keyword_operator_logical_ruby\'>||<\/span> <span class=\'constant constant_numeric constant_numeric_ruby\'>30<\/span>\n");
document.write("      options[<span class=\'constant constant_other constant_other_symbol constant_other_symbol_ruby\'>:omission<\/span>] <span class=\'keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby\'>=<\/span> args[<span class=\'constant constant_numeric constant_numeric_ruby\'>1<\/span>] <span class=\'keyword keyword_operator keyword_operator_logical keyword_operator_logical_ruby\'>||<\/span> <span class=\'string string_quoted string_quoted_double string_quoted_double_ruby\'>&quot;...&quot;<\/span>\n");
document.write("    <span class=\'keyword keyword_control keyword_control_ruby\'>end<\/span>\n");
document.write("    options.reverse_merge!(<span class=\'constant constant_other constant_other_symbol constant_other_symbol_ruby\'>:length<\/span> =&gt; <span class=\'constant constant_numeric constant_numeric_ruby\'>30<\/span>, <span class=\'constant constant_other constant_other_symbol constant_other_symbol_ruby\'>:omission<\/span> =&gt; <span class=\'string string_quoted string_quoted_double string_quoted_double_ruby\'>&quot;...&quot;<\/span>)\n");
document.write("\n");
document.write("<span class=\'comment comment_line comment_line_number-sign comment_line_number-sign_ruby\'>    # support any of:<\/span>\n");
document.write("<span class=\'comment comment_line comment_line_number-sign comment_line_number-sign_ruby\'>    #  * ruby 1.9 sane utf8 support<\/span>\n");
document.write("<span class=\'comment comment_line comment_line_number-sign comment_line_number-sign_ruby\'>    #  * rails 2.1 workaround for crappy ruby 1.8 utf8 support<\/span>\n");
document.write("<span class=\'comment comment_line comment_line_number-sign comment_line_number-sign_ruby\'>    #  * rails 2.2 workaround for crappy ruby 1.8 utf8 support<\/span>\n");
document.write("<span class=\'comment comment_line comment_line_number-sign comment_line_number-sign_ruby\'>    # hooray!<\/span>\n");
document.write("    chars <span class=\'keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby\'>=<\/span> <span class=\'keyword keyword_control keyword_control_ruby\'>if<\/span> text.<span class=\'support support_function support_function_actionpack support_function_actionpack_rails\'>respond_to<\/span>?(<span class=\'constant constant_other constant_other_symbol constant_other_symbol_ruby\'>:mb_chars<\/span>)\n");
document.write("      text.mb_chars\n");
document.write("    <span class=\'keyword keyword_control keyword_control_ruby\'>elsif<\/span> <span class=\'variable variable_other variable_other_constant variable_other_constant_ruby\'>RUBY_VERSION<\/span> <span class=\'keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_ruby\'>&lt;<\/span> <span class=\'string string_quoted string_quoted_single string_quoted_single_ruby\'>\'1.9\'<\/span>\n");
document.write("      text.chars\n");
document.write("    <span class=\'keyword keyword_control keyword_control_ruby\'>else<\/span>\n");
document.write("      text\n");
document.write("    <span class=\'keyword keyword_control keyword_control_ruby\'>end<\/span>\n");
document.write("\n");
document.write("    omission <span class=\'keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby\'>=<\/span> <span class=\'keyword keyword_control keyword_control_ruby\'>if<\/span> options[<span class=\'constant constant_other constant_other_symbol constant_other_symbol_ruby\'>:omission<\/span>].<span class=\'support support_function support_function_actionpack support_function_actionpack_rails\'>respond_to<\/span>?(<span class=\'constant constant_other constant_other_symbol constant_other_symbol_ruby\'>:mb_chars<\/span>)\n");
document.write("      options[<span class=\'constant constant_other constant_other_symbol constant_other_symbol_ruby\'>:omission<\/span>].mb_chars\n");
document.write("    <span class=\'keyword keyword_control keyword_control_ruby\'>elsif<\/span> <span class=\'variable variable_other variable_other_constant variable_other_constant_ruby\'>RUBY_VERSION<\/span> <span class=\'keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_ruby\'>&lt;<\/span> <span class=\'string string_quoted string_quoted_single string_quoted_single_ruby\'>\'1.9\'<\/span>\n");
document.write("      options[<span class=\'constant constant_other constant_other_symbol constant_other_symbol_ruby\'>:omission<\/span>].chars\n");
document.write("    <span class=\'keyword keyword_control keyword_control_ruby\'>else<\/span>\n");
document.write("      options[<span class=\'constant constant_other constant_other_symbol constant_other_symbol_ruby\'>:omission<\/span>]\n");
document.write("    <span class=\'keyword keyword_control keyword_control_ruby\'>end<\/span>\n");
document.write("\n");
document.write("    l <span class=\'keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby\'>=<\/span> options[<span class=\'constant constant_other constant_other_symbol constant_other_symbol_ruby\'>:length<\/span>] <span class=\'keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby\'>-<\/span> omission.length\n");
document.write("    <span class=\'keyword keyword_control keyword_control_ruby\'>if<\/span> chars.length <span class=\'keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_ruby\'>&gt;<\/span> options[<span class=\'constant constant_other constant_other_symbol constant_other_symbol_ruby\'>:length<\/span>]\n");
document.write("      result <span class=\'keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby\'>=<\/span> (chars[<span class=\'string string_regexp string_regexp_classic string_regexp_classic_ruby\'>/<\/span><span class=\'string string_regexp string_regexp_classic string_regexp_classic_ruby\'><span class=\'constant constant_character constant_character_escape constant_character_escape_ruby\'>\\A<\/span>.{<span class=\'source source_ruby source_ruby_embedded source_ruby_embedded_source\'>#{l}<\/span>}<span class=\'constant constant_character constant_character_escape constant_character_escape_ruby\'>\\w<\/span>*<span class=\'constant constant_character constant_character_escape constant_character_escape_ruby\'>\\;<\/span>?<\/span><span class=\'string string_regexp string_regexp_classic string_regexp_classic_ruby\'>/m<\/span>][<span class=\'string string_regexp string_regexp_classic string_regexp_classic_ruby\'>/<\/span><span class=\'string string_regexp string_regexp_classic string_regexp_classic_ruby\'>.*<span class=\'string string_regexp string_regexp_character-class string_regexp_character-class_ruby\'>[<span class=\'constant constant_character constant_character_escape constant_character_escape_ruby\'>\\w<\/span><span class=\'constant constant_character constant_character_escape constant_character_escape_ruby\'>\\;<\/span>]<\/span><\/span><span class=\'string string_regexp string_regexp_classic string_regexp_classic_ruby\'>/m<\/span>]).to_s\n");
document.write("      ((options[<span class=\'constant constant_other constant_other_symbol constant_other_symbol_ruby\'>:avoid_orphans<\/span>] <span class=\'keyword keyword_operator keyword_operator_logical keyword_operator_logical_ruby\'>&amp;&amp;<\/span> result <span class=\'keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_ruby\'>=~<\/span> <span class=\'string string_regexp string_regexp_classic string_regexp_classic_ruby\'>/<\/span><span class=\'string string_regexp string_regexp_classic string_regexp_classic_ruby\'><span class=\'constant constant_character constant_character_escape constant_character_escape_ruby\'>\\A<\/span><span class=\'string string_regexp string_regexp_group string_regexp_group_ruby\'>(.*?)<\/span><span class=\'constant constant_character constant_character_escape constant_character_escape_ruby\'>\\n<\/span>+<span class=\'constant constant_character constant_character_escape constant_character_escape_ruby\'>\\W<\/span>*<span class=\'constant constant_character constant_character_escape constant_character_escape_ruby\'>\\w<\/span>*<span class=\'constant constant_character constant_character_escape constant_character_escape_ruby\'>\\W<\/span>*<span class=\'constant constant_character constant_character_escape constant_character_escape_ruby\'>\\Z<\/span><\/span><span class=\'string string_regexp string_regexp_classic string_regexp_classic_ruby\'>/m<\/span>) <span class=\'keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_ruby\'>?<\/span> <span class=\'variable variable_other variable_other_readwrite variable_other_readwrite_global variable_other_readwrite_global_pre-defined variable_other_readwrite_global_pre-defined_ruby\'>$1<\/span> : result) <span class=\'keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby\'>+<\/span> options[<span class=\'constant constant_other constant_other_symbol constant_other_symbol_ruby\'>:omission<\/span>]\n");
document.write("    <span class=\'keyword keyword_control keyword_control_ruby\'>else<\/span>\n");
document.write("      text\n");
document.write("    <span class=\'keyword keyword_control keyword_control_ruby\'>end<\/span>\n");
document.write("  <span class=\'keyword keyword_control keyword_control_ruby\'>end<\/span>\n");
document.write("<\/span><span class=\'keyword keyword_control keyword_control_ruby\'>end<\/span>\n");
document.write("<\/pre><\/pre>\n");
document.write("		<\/td>\n");
document.write("		<\/tr>\n");
document.write("		<\/table>\n");
document.write("	\n");
document.write("	<\/div>\n");
document.write("\n");
document.write("\n");
document.write("  \n");
document.write("  \n");
document.write("  <div class=\"credit\">\n");
document.write("    <div class=\"buttons\">\n");
document.write("      <a href=\"http://pastie.org/pastes/963395.txt\">\n");
document.write("      <img src=\"http://pastie.org/images/view.png\" height=\"20\" width=\"67\" /><\/a>\n");
document.write("    <\/div>\n");
document.write("  \n");
document.write("    <a href=\"http://pastie.org/963395\">Pastie #963395<\/a> linked directly from <a href=\"http://pastie.org/\">Pastie<\/a>.\n");
document.write("  <\/div><\/div>");

