document.write('<link rel="stylesheet" href="http://gist.github.com/stylesheets/gist/embed.css"/>')





document.write('<div id=\"gist-208457\" class=\"gist\">\n  \n  \n    \n            \n\n      <div class=\"gist-file\">\n        <div class=\"gist-data gist-syntax\">\n          \n          \n          \n            <div class=\"gist-highlight\"><pre><div class=\"line\" id=\"LC1\"><span class=\"n\">namespace<\/span> <span class=\"ss\">:rails<\/span> <span class=\"k\">do<\/span><\/div><div class=\"line\" id=\"LC2\">&nbsp;&nbsp;<span class=\"n\">desc<\/span> <span class=\"s2\">&quot;Fills Cache money&#39;s caches for all indexes of all models - rails version&quot;<\/span><\/div><div class=\"line\" id=\"LC3\">&nbsp;&nbsp;<span class=\"n\">task<\/span> <span class=\"ss\">:warmup_cache<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"ss\">:env<\/span> <span class=\"k\">do<\/span><\/div><div class=\"line\" id=\"LC4\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">logger<\/span> <span class=\"o\">=<\/span> <span class=\"no\">Logger<\/span><span class=\"o\">.<\/span><span class=\"n\">new<\/span><span class=\"p\">(<\/span><span class=\"no\">STDOUT<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC5\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"no\">ActiveRecord<\/span><span class=\"o\">::<\/span><span class=\"no\">Base<\/span><span class=\"o\">.<\/span><span class=\"n\">logger<\/span> <span class=\"o\">=<\/span> <span class=\"n\">logger<\/span><\/div><div class=\"line\" id=\"LC6\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"no\">Dir<\/span><span class=\"o\">.<\/span><span class=\"n\">glob<\/span><span class=\"p\">(<\/span><span class=\"no\">RAILS_ROOT<\/span> <span class=\"o\">+<\/span> <span class=\"s1\">&#39;/app/models/*.rb&#39;<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">each<\/span> <span class=\"p\">{<\/span> <span class=\"o\">|<\/span><span class=\"n\">file<\/span><span class=\"o\">|<\/span> <span class=\"nb\">require<\/span> <span class=\"n\">file<\/span> <span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC7\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">models<\/span> <span class=\"o\">=<\/span> <span class=\"no\">Object<\/span><span class=\"o\">.<\/span><span class=\"n\">subclasses_of<\/span><span class=\"p\">(<\/span><span class=\"no\">ActiveRecord<\/span><span class=\"o\">::<\/span><span class=\"no\">Base<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC8\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">models<\/span><span class=\"o\">.<\/span><span class=\"n\">each<\/span> <span class=\"k\">do<\/span> <span class=\"o\">|<\/span><span class=\"n\">klass<\/span><span class=\"o\">|<\/span><\/div><div class=\"line\" id=\"LC9\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">table_name<\/span> <span class=\"o\">=<\/span> <span class=\"n\">klass<\/span><span class=\"o\">.<\/span><span class=\"n\">name<\/span><span class=\"o\">.<\/span><span class=\"n\">to_s<\/span><span class=\"o\">.<\/span><span class=\"n\">tableize<\/span><\/div><div class=\"line\" id=\"LC10\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">klass<\/span><span class=\"o\">.<\/span><span class=\"n\">cache_config<\/span><span class=\"o\">.<\/span><span class=\"n\">indices<\/span><span class=\"o\">.<\/span><span class=\"n\">each<\/span> <span class=\"k\">do<\/span> <span class=\"o\">|<\/span><span class=\"n\">index<\/span><span class=\"o\">|<\/span><\/div><div class=\"line\" id=\"LC11\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">logger<\/span><span class=\"o\">.<\/span><span class=\"n\">info<\/span> <span class=\"s2\">&quot;Warming <\/span><span class=\"si\">#{<\/span><span class=\"n\">klass<\/span><span class=\"o\">.<\/span><span class=\"n\">name<\/span><span class=\"si\">}<\/span><span class=\"s2\"> for <\/span><span class=\"si\">#{<\/span><span class=\"n\">index<\/span><span class=\"o\">.<\/span><span class=\"n\">attributes<\/span><span class=\"si\">}<\/span><span class=\"s2\"> index&quot;<\/span><\/div><div class=\"line\" id=\"LC12\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">values<\/span> <span class=\"o\">=<\/span> <span class=\"no\">ActiveRecord<\/span><span class=\"o\">::<\/span><span class=\"no\">Base<\/span><span class=\"o\">.<\/span><span class=\"n\">connection<\/span><span class=\"o\">.<\/span><span class=\"n\">select_values<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;select <\/span><span class=\"si\">#{<\/span><span class=\"n\">index<\/span><span class=\"o\">.<\/span><span class=\"n\">attributes<\/span> <span class=\"o\">*<\/span> <span class=\"s1\">&#39;, &#39;<\/span><span class=\"si\">}<\/span><span class=\"s2\"> from `<\/span><span class=\"si\">#{<\/span><span class=\"n\">table_name<\/span><span class=\"si\">}<\/span><span class=\"s2\">`&quot;<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC13\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">values<\/span><span class=\"o\">.<\/span><span class=\"n\">reject!<\/span><span class=\"p\">{<\/span><span class=\"o\">|<\/span><span class=\"n\">val<\/span><span class=\"o\">|<\/span> <span class=\"n\">val<\/span><span class=\"o\">.<\/span><span class=\"n\">kind_of?<\/span><span class=\"p\">(<\/span><span class=\"nb\">Array<\/span><span class=\"p\">)<\/span> <span class=\"p\">?<\/span> <span class=\"n\">val<\/span><span class=\"o\">.<\/span><span class=\"n\">any?<\/span><span class=\"p\">{<\/span><span class=\"o\">|<\/span><span class=\"n\">subval<\/span><span class=\"o\">|<\/span> <span class=\"n\">subval<\/span><span class=\"o\">.<\/span><span class=\"n\">nil?<\/span><span class=\"p\">}<\/span> <span class=\"p\">:<\/span> <span class=\"n\">val<\/span><span class=\"o\">.<\/span><span class=\"n\">nil?<\/span> <span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC14\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">values<\/span><span class=\"o\">.<\/span><span class=\"n\">each<\/span> <span class=\"p\">{<\/span><span class=\"o\">|<\/span><span class=\"n\">val<\/span><span class=\"o\">|<\/span> <span class=\"n\">klass<\/span><span class=\"o\">.<\/span><span class=\"n\">send<\/span><span class=\"p\">(<\/span><span class=\"ss\">:&quot;find_by_<\/span><span class=\"si\">#{<\/span><span class=\"n\">index<\/span><span class=\"o\">.<\/span><span class=\"n\">attributes<\/span> <span class=\"o\">*<\/span> <span class=\"s1\">&#39;_and_&#39;<\/span><span class=\"si\">}<\/span><span class=\"ss\">&quot;<\/span><span class=\"p\">,<\/span> <span class=\"o\">*<\/span><span class=\"n\">val<\/span><span class=\"p\">)}<\/span><\/div><div class=\"line\" id=\"LC15\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">end<\/span><\/div><div class=\"line\" id=\"LC16\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">end<\/span><\/div><div class=\"line\" id=\"LC17\">&nbsp;&nbsp;<span class=\"k\">end<\/span><\/div><div class=\"line\" id=\"LC18\"><span class=\"k\">end<\/span><\/div><\/pre><\/div>\n          \n        <\/div>\n\n        <div class=\"gist-meta\">\n          <a href=\"http://gist.github.com/raw/208457/df50b147e2e6c6a7449df47fca81f3b90a39e01f/Rakefile.rb\" style=\"float:right;\">view raw<\/a>\n          <a href=\"http://gist.github.com/208457#file_rakefile.rb\" style=\"float:right;margin-right:10px;color:#666\">Rakefile.rb<\/a>\n          <a href=\"http://gist.github.com/208457\">This Gist<\/a> brought to you by <a href=\"http://github.com\">GitHub<\/a>.\n        <\/div>\n      <\/div>\n    \n  \n<\/div>\n')
