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("43\n");
document.write("44\n");
document.write("45\n");
document.write("46\n");
document.write("47\n");
document.write("48\n");
document.write("49\n");
document.write("50\n");
document.write("51\n");
document.write("52\n");
document.write("53\n");
document.write("54\n");
document.write("55\n");
document.write("56\n");
document.write("57\n");
document.write("58\n");
document.write("59\n");
document.write("60\n");
document.write("61\n");
document.write("62\n");
document.write("63\n");
document.write("64\n");
document.write("65\n");
document.write("66\n");
document.write("67\n");
document.write("68\n");
document.write("69\n");
document.write("70\n");
document.write("71\n");
document.write("72\n");
document.write("73\n");
document.write("74\n");
document.write("75\n");
document.write("76\n");
document.write("77\n");
document.write("78\n");
document.write("79\n");
document.write("80\n");
document.write("81\n");
document.write("82\n");
document.write("83\n");
document.write("84\n");
document.write("85\n");
document.write("86\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_model\'><span class=\'meta meta_class meta_class_ruby\'><span class=\'keyword keyword_control keyword_control_class keyword_control_class_ruby\'>class<\/span> <span class=\'entity entity_name entity_name_type entity_name_type_class entity_name_type_class_ruby\'>Ctl<span class=\'entity entity_other entity_other_inherited-class entity_other_inherited-class_ruby\'> &lt; ActiveRecord::Base<\/span><\/span><\/span>\n");
document.write(" <span class=\'meta meta_require meta_require_ruby\'><span class=\'keyword keyword_other keyword_other_special-method keyword_other_special-method_ruby\'>require<\/span> <span class=\'string string_quoted string_quoted_single string_quoted_single_ruby\'>\'pp\'<\/span><\/span>\n");
document.write(" <span class=\'meta meta_require meta_require_ruby\'><span class=\'keyword keyword_other keyword_other_special-method keyword_other_special-method_ruby\'>require<\/span> <span class=\'string string_quoted string_quoted_single string_quoted_single_ruby\'>\'digest/md5\'<\/span><\/span>\n");
document.write("\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\'>save<\/span>(<span class=\'variable variable_parameter variable_parameter_function variable_parameter_function_ruby\'>validate <span class=\'keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby\'>=<\/span> <span class=\'constant constant_language constant_language_ruby\'>true<\/span><\/span>)<\/span>\n");
document.write("   <span class=\'variable variable_other variable_other_readwrite variable_other_readwrite_class variable_other_readwrite_class_ruby\'>@@ctls<\/span> <span class=\'keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_augmented keyword_operator_assignment_augmented_ruby\'>&lt;&lt;<\/span> <span class=\'variable variable_language variable_language_ruby\'>self<\/span>\n");
document.write("   <span class=\'support support_function support_function_activerecord support_function_activerecord_rails\'>validate<\/span> <span class=\'keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_ruby\'>?<\/span> valid? : <span class=\'constant constant_language constant_language_ruby\'>true<\/span>\n");
document.write("<\/span><span class=\'keyword keyword_control keyword_control_ruby\'>end<\/span>\n");
document.write("\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\'>self.count<\/span>(<span class=\'variable variable_parameter variable_parameter_function variable_parameter_function_ruby\'><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=\'constant constant_numeric constant_numeric_ruby\'>0<\/span>)\n");
document.write("<span class=\'keyword keyword_control keyword_control_ruby\'>end<\/span>\n");
document.write("\n");
document.write("<span class=\'meta meta_function meta_function_method meta_function_method_without-arguments meta_function_method_without-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\'>self.columns<\/span><\/span>\n");
document.write("    <span class=\'variable variable_other variable_other_readwrite variable_other_readwrite_instance variable_other_readwrite_instance_ruby\'>@columns<\/span> <span class=\'keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_augmented keyword_operator_assignment_augmented_ruby\'>||=<\/span> []\n");
document.write("    <span class=\'keyword keyword_control keyword_control_ruby\'>end<\/span>\n");
document.write("\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\'>self.column<\/span>(<span class=\'variable variable_parameter variable_parameter_function variable_parameter_function_ruby\'>name, sql_type <span class=\'keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby\'>=<\/span> <span class=\'constant constant_language constant_language_ruby\'>nil<\/span>, default <span class=\'keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby\'>=<\/span> <span class=\'constant constant_language constant_language_ruby\'>nil<\/span>, null <span class=\'keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby\'>=<\/span> <span class=\'constant constant_language constant_language_ruby\'>true<\/span><\/span>)<\/span>\n");
document.write("    columns <span class=\'keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_augmented keyword_operator_assignment_augmented_ruby\'>&lt;&lt;<\/span> <span class=\'support support_class support_class_ruby\'>ActiveRecord<\/span>::<span class=\'support support_class support_class_ruby\'>ConnectionAdapters<\/span>::<span class=\'support support_class support_class_ruby\'>Column<\/span>.<span class=\'keyword keyword_other keyword_other_special-method keyword_other_special-method_ruby\'>new<\/span>(name.to_s,\n");
document.write("                                default, sql_type.to_s, null)\n");
document.write("    <span class=\'keyword keyword_control keyword_control_ruby\'>end<\/span>\n");
document.write("\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\'>self.walk_ctl_dir<\/span>(<span class=\'variable variable_parameter variable_parameter_function variable_parameter_function_ruby\'>upperdir,basepath<\/span>)<\/span>\n");
document.write(" <span class=\'keyword keyword_control keyword_control_ruby\'>if<\/span> basepath <span class=\'keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_ruby\'>==<\/span> <span class=\'string string_quoted string_quoted_double string_quoted_double_ruby\'>&quot;&quot;<\/span>\n");
document.write("    cc <span class=\'keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby\'>=<\/span> <span class=\'support support_class support_class_ruby\'>Rails<\/span>::<span class=\'support support_class support_class_ruby\'>Configuration<\/span>.<span class=\'keyword keyword_other keyword_other_special-method keyword_other_special-method_ruby\'>new<\/span>\n");
document.write("    basedir <span class=\'keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby\'>=<\/span> cc.root_path <span class=\'keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby\'>+<\/span> <span class=\'string string_quoted string_quoted_double string_quoted_double_ruby\'>&quot;/app/controllers&quot;<\/span>\n");
document.write("    cc <span class=\'keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby\'>=<\/span> <span class=\'constant constant_language constant_language_ruby\'>nil<\/span>\n");
document.write("   <span class=\'keyword keyword_control keyword_control_ruby\'>else<\/span> \n");
document.write("    basedir <span class=\'keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby\'>=<\/span> basepath\n");
document.write("   <span class=\'keyword keyword_control keyword_control_ruby\'>end<\/span>\n");
document.write("\n");
document.write("   <span class=\'support support_class support_class_ruby\'>Dir<\/span>.foreach(basedir){|<span class=\'variable variable_other variable_other_block variable_other_block_ruby\'>filename<\/span>|\n");
document.write("     fullpath <span class=\'keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby\'>=<\/span> basedir <span class=\'keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby\'>+<\/span> <span class=\'string string_quoted string_quoted_single string_quoted_single_ruby\'>\'/\'<\/span> <span class=\'keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby\'>+<\/span> filename\n");
document.write("     <span class=\'keyword keyword_control keyword_control_ruby\'>if<\/span> <span class=\'support support_class support_class_ruby\'>File<\/span>.directory?(fullpath)\n");
document.write("        <span class=\'keyword keyword_control keyword_control_ruby\'>case<\/span> filename\n");
document.write("          <span class=\'keyword keyword_control keyword_control_ruby\'>when<\/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\'>when<\/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\'>else<\/span>\n");
document.write("           walk_ctl_dir(filename <span class=\'keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby\'>+<\/span> <span class=\'string string_quoted string_quoted_double string_quoted_double_ruby\'>&quot;/&quot;<\/span>,fullpath)\n");
document.write("           <span class=\'keyword keyword_control keyword_control_ruby\'>end<\/span>\n");
document.write("      <span class=\'keyword keyword_control keyword_control_ruby\'>else<\/span> \n");
document.write("        <span class=\'keyword keyword_control keyword_control_ruby\'>if<\/span> <span class=\'support support_class support_class_ruby\'>File<\/span>.extname(fullpath) <span class=\'keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_ruby\'>==<\/span> <span class=\'string string_quoted string_quoted_double string_quoted_double_ruby\'>&quot;.rb&quot;<\/span>\n");
document.write("           <span class=\'keyword keyword_control keyword_control_ruby\'>if<\/span> fullpath.include?(<span class=\'string string_quoted string_quoted_double string_quoted_double_ruby\'>&quot;_controller&quot;<\/span>)\n");
document.write("              c <span class=\'keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby\'>=<\/span> <span class=\'support support_class support_class_ruby\'>Ctl<\/span>.<span class=\'keyword keyword_other keyword_other_special-method keyword_other_special-method_ruby\'>new<\/span>\n");
document.write("              c.name <span class=\'keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby\'>=<\/span> filename.chomp(<span class=\'string string_quoted string_quoted_double string_quoted_double_ruby\'>&quot;_controller.rb&quot;<\/span>)\n");
document.write("              c.path <span class=\'keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby\'>=<\/span> fullpath\n");
document.write("              c.url <span class=\'keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby\'>=<\/span> upperdir <span class=\'keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby\'>+<\/span> c.name\n");
document.write("              c.date_created <span class=\'keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby\'>=<\/span> <span class=\'support support_class support_class_ruby\'>File<\/span>.ctime(fullpath)\n");
document.write("              c.date_modified <span class=\'keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby\'>=<\/span> <span class=\'support support_class support_class_ruby\'>File<\/span>.mtime(fullpath)\n");
document.write("              c.size <span class=\'keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby\'>=<\/span> <span class=\'support support_class support_class_ruby\'>File<\/span>.size(fullpath)\n");
document.write("              c.checksum <span class=\'keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby\'>=<\/span> <span class=\'support support_class support_class_ruby\'>Digest<\/span>::<span class=\'support support_class support_class_ruby\'>MD5<\/span>.hexdigest(<span class=\'support support_class support_class_ruby\'>File<\/span>.read(fullpath))\n");
document.write("              c.save\n");
document.write("              <span class=\'keyword keyword_control keyword_control_ruby\'>end<\/span> <span class=\'comment comment_line comment_line_number-sign comment_line_number-sign_ruby\'># if fullpath<\/span>\n");
document.write("           <span class=\'keyword keyword_control keyword_control_ruby\'>end<\/span> <span class=\'comment comment_line comment_line_number-sign comment_line_number-sign_ruby\'># if File.extname<\/span>\n");
document.write("         <span class=\'keyword keyword_control keyword_control_ruby\'>end<\/span> <span class=\'comment comment_line comment_line_number-sign comment_line_number-sign_ruby\'># else<\/span>\n");
document.write("        }\n");
document.write("     <span class=\'keyword keyword_control keyword_control_ruby\'>end<\/span>\n");
document.write("\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\'>self.find<\/span>(<span class=\'variable variable_parameter variable_parameter_function variable_parameter_function_ruby\'><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_ruby\'>if<\/span> args.first.to_s <span class=\'keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_ruby\'>==<\/span> <span class=\'string string_quoted string_quoted_double string_quoted_double_ruby\'>&quot;all&quot;<\/span>\n");
document.write("        <span class=\'keyword keyword_control keyword_control_pseudo-method keyword_control_pseudo-method_ruby\'>return<\/span> <span class=\'variable variable_other variable_other_readwrite variable_other_readwrite_class variable_other_readwrite_class_ruby\'>@@ctls<\/span>\n");
document.write("        <span class=\'keyword keyword_control keyword_control_ruby\'>end<\/span>\n");
document.write("    <span class=\'keyword keyword_control keyword_control_ruby\'>if<\/span> args.first.class <span class=\'keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_ruby\'>==<\/span> <span class=\'variable variable_other variable_other_constant variable_other_constant_ruby\'>Fixnum<\/span>\n");
document.write("       idx <span class=\'keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby\'>=<\/span> args.first\n");
document.write("       <span class=\'keyword keyword_control keyword_control_ruby\'>if<\/span> idx <span class=\'keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_ruby\'>&lt;<\/span> <span class=\'constant constant_numeric constant_numeric_ruby\'>0<\/span>\n");
document.write("          <span class=\'keyword keyword_control keyword_control_pseudo-method keyword_control_pseudo-method_ruby\'>return<\/span> <span class=\'constant constant_language constant_language_ruby\'>nil<\/span>\n");
document.write("          <span class=\'keyword keyword_control keyword_control_ruby\'>end<\/span>\n");
document.write("       <span class=\'keyword keyword_control keyword_control_ruby\'>if<\/span> idx <span class=\'keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_ruby\'>&gt;=<\/span> <span class=\'variable variable_other variable_other_readwrite variable_other_readwrite_class variable_other_readwrite_class_ruby\'>@@ctls<\/span>.size \n");
document.write("          <span class=\'keyword keyword_control keyword_control_pseudo-method keyword_control_pseudo-method_ruby\'>return<\/span> <span class=\'constant constant_language constant_language_ruby\'>nil<\/span>\n");
document.write("          <span class=\'keyword keyword_control keyword_control_ruby\'>end<\/span>\n");
document.write("       <span class=\'keyword keyword_control keyword_control_pseudo-method keyword_control_pseudo-method_ruby\'>return<\/span> <span class=\'variable variable_other variable_other_readwrite variable_other_readwrite_class variable_other_readwrite_class_ruby\'>@@ctls<\/span>[idx]\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("\n");
document.write("  column <span class=\'constant constant_other constant_other_symbol constant_other_symbol_ruby\'>:name<\/span>,          <span class=\'constant constant_other constant_other_symbol constant_other_symbol_ruby\'>:string<\/span>\n");
document.write("  column <span class=\'constant constant_other constant_other_symbol constant_other_symbol_ruby\'>:path<\/span>,          <span class=\'constant constant_other constant_other_symbol constant_other_symbol_ruby\'>:string<\/span>\n");
document.write("  column <span class=\'constant constant_other constant_other_symbol constant_other_symbol_ruby\'>:url<\/span>,           <span class=\'constant constant_other constant_other_symbol constant_other_symbol_ruby\'>:string<\/span>\n");
document.write("  column <span class=\'constant constant_other constant_other_symbol constant_other_symbol_ruby\'>:date_created<\/span>,  <span class=\'constant constant_other constant_other_symbol constant_other_symbol_ruby\'>:datetime<\/span>\n");
document.write("  column <span class=\'constant constant_other constant_other_symbol constant_other_symbol_ruby\'>:date_modified<\/span>, <span class=\'constant constant_other constant_other_symbol constant_other_symbol_ruby\'>:datetime<\/span>\n");
document.write("  column <span class=\'constant constant_other constant_other_symbol constant_other_symbol_ruby\'>:size<\/span>,          <span class=\'constant constant_other constant_other_symbol constant_other_symbol_ruby\'>:size<\/span>\n");
document.write("  column <span class=\'constant constant_other constant_other_symbol constant_other_symbol_ruby\'>:checksum<\/span>,      <span class=\'constant constant_other constant_other_symbol constant_other_symbol_ruby\'>:string<\/span>\n");
document.write("\n");
document.write("<span class=\'variable variable_other variable_other_readwrite variable_other_readwrite_class variable_other_readwrite_class_ruby\'>@@ctls<\/span> <span class=\'keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby\'>=<\/span> <span class=\'support support_class support_class_ruby\'>Array<\/span>.<span class=\'keyword keyword_other keyword_other_special-method keyword_other_special-method_ruby\'>new<\/span>\n");
document.write("walk_ctl_dir(<span class=\'string string_quoted string_quoted_double string_quoted_double_ruby\'>&quot;&quot;<\/span>,<span class=\'string string_quoted string_quoted_double string_quoted_double_ruby\'>&quot;&quot;<\/span>)\n");
document.write("\n");
document.write("<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/652328.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/652328\">Pastie #652328<\/a> linked directly from <a href=\"http://pastie.org/\">Pastie<\/a>.\n");
document.write("  <\/div><\/div>");
