Refactor
:my
=>
'code'
Codes
Refactorings
Popular
Best
Submit
Spam
Account
Logout
Login
JavaScript doesn't seem to be activated, expect things to be ugly and sloppy!
More Jobs
Recent
ActiveRecord object custom pagination
Think this needs a loop
sort_by_multiple
Prepare links - friendly URLs
Rails Active Record Time Summary
Experimental Prime Number Generator
Pythonify my code
DVD Directory Archiver
Raytracer in haskell
Cryptography with MD5
Popular
sort_by_multiple
Think this needs a loop
Prepare links - friendly URLs
Cryptography with MD5
Rails Active Record Time Summary
Raytracer in haskell
DVD Directory Archiver
Pythonify my code
Experimental Prime Number Generator
ActiveRecord object custom pagination
Pastable version of
fragment cache
<div style="overflow:auto;border:solid 1px #ccc;background:#000;color:#F8F8F8"> <div class="section"> <pre style="float:left;margin:0 10px;border-right:0;color:#666;">1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65</pre> <pre class="sunburst"><span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">#</span> i use this method instead of "render"</span> <span style="color:#89BDFF;">render_from_cache_or_render</span>(<span style="color:#3387CC;"><span style="color:#3387CC;">:</span>cache_key</span> =>”cache key”, <span style="color:#3387CC;"><span style="color:#3387CC;">:</span>cache_expire_after</span> => <span style="color:#9B859D;">ConstantHelper</span>::<span style="color:#89BDFF;">TAG_CLOUD_EXPIRED_IN</span>, <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">#</span> minute</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">#</span> implementation</span> <span style="color:#E28964;">def</span> <span style="color:#89BDFF;">render_from_cache_or_render</span>(<span style="color:#3E87E3;">p_args</span>) <span style="color:#E28964;">return</span> <span style="color:#89BDFF;">render</span>(p_args) <span style="color:#E28964;">if</span> <span style="color:#3387CC;">true</span> <span style="color:#E28964;">==</span> p_args[<span style="color:#3387CC;"><span style="color:#3387CC;">:</span>cache_off</span>] <span style="color:#AEAEAE;font-style:italic;"> <span style="color:#AEAEAE;font-style:italic;">#</span> check from cache</span> cache_key <span style="color:#E28964;">=</span> p_args[<span style="color:#3387CC;"><span style="color:#3387CC;">:</span>cache_key</span>] cached_content <span style="color:#E28964;">=</span> <span style="color:#9B859D;">CacheService</span>.<span style="color:#89BDFF;">get_cache</span>(cache_key) <span style="color:#E28964;">if</span> <span style="color:#E28964;">not</span> cached_content.<span style="color:#89BDFF;">nil?</span> <span style="color:#E28964;">and</span> <span style="color:#E28964;">not</span> cached_content.<span style="color:#89BDFF;">empty?</span> <span style="color:#E28964;">return</span> cached_content <span style="color:#E28964;">else</span> content <span style="color:#E28964;">=</span> <span style="color:#89BDFF;">render</span>(p_args) <span style="color:#AEAEAE;font-style:italic;"> <span style="color:#AEAEAE;font-style:italic;">#</span> cache expire time if defined</span> cache_expire_time_in_minutes <span style="color:#E28964;">=</span> p_args[<span style="color:#3387CC;"><span style="color:#3387CC;">:</span>cache_expire_after</span>] <span style="color:#E28964;">||</span> <span style="color:#3387CC;">60</span> <span style="color:#9B859D;">CacheService</span>.<span style="color:#89BDFF;">add_cache</span>(cache_key, cache_expire_time_in_minutes, content) <span style="color:#E28964;">return</span> content <span style="color:#E28964;">end</span> <span style="color:#E28964;">end</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">#</span> complete source code of cache service</span> <span style="color:#E28964;">module</span> <span style="text-decoration:underline;">Cache</span> <span style="color:#E28964;">class</span> <span style="text-decoration:underline;">Item</span> <span style="color:#E28964;">attr_accessor</span> <span style="color:#3387CC;"><span style="color:#3387CC;">:</span>key</span>, <span style="color:#3387CC;"><span style="color:#3387CC;">:</span>expire_time</span>, <span style="color:#3387CC;"><span style="color:#3387CC;">:</span>content</span>, <span style="color:#3387CC;"><span style="color:#3387CC;">:</span>created_on</span> <span style="color:#E28964;">def</span> <span style="color:#89BDFF;">initialize</span>(<span style="color:#3E87E3;">p_key<span style="color:#3E87E3;">,</span> p_expire_time<span style="color:#3E87E3;">,</span> p_content</span>) <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>key</span> <span style="color:#E28964;">=</span> p_key <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>expire_time</span> <span style="color:#E28964;">=</span> p_expire_time <span style="color:#E28964;">*</span> <span style="color:#3387CC;">60</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">#</span> in minutes</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>content</span> <span style="color:#E28964;">=</span> p_content <span style="color:#3E87E3;"><span style="color:#3E87E3;">@</span>created_on</span> <span style="color:#E28964;">=</span> <span style="color:#9B859D;">Time</span>.<span style="color:#89BDFF;">now</span> <span style="color:#E28964;">end</span> <span style="color:#E28964;">end</span> <span style="color:#E28964;">end</span> <span style="color:#E28964;">class</span> <span style="text-decoration:underline;">CacheService</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">@@</span>CACHES</span> <span style="color:#E28964;">=</span> {} <span style="color:#3E87E3;"><span style="color:#3E87E3;">@@</span>CACHE_EXPIRE_TIMES</span> <span style="color:#E28964;">=</span> {} <span style="color:#E28964;">def</span> <span style="color:#89BDFF;">self.add_cache</span>(<span style="color:#3E87E3;">p_key<span style="color:#3E87E3;">,</span> p_expire_time<span style="color:#3E87E3;">,</span> p_content</span>) cache_item <span style="color:#E28964;">=</span> <span style="color:#9B859D;">Cache</span>::<span style="color:#89BDFF;">Item</span>.<span style="color:#89BDFF;">new</span>(p_key, p_expire_time, p_content) <span style="color:#3E87E3;"><span style="color:#3E87E3;">@@</span>CACHES</span>[p_key.<span style="color:#89BDFF;">to_sym</span>] <span style="color:#E28964;">=</span> cache_item <span style="color:#E28964;">end</span> <span style="color:#E28964;">def</span> <span style="color:#89BDFF;">self.get_cache</span>(<span style="color:#3E87E3;">p_key</span>) <span style="color:#AEAEAE;font-style:italic;"> <span style="color:#AEAEAE;font-style:italic;">#</span> load content from cache</span> cached_content <span style="color:#E28964;">=</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">@@</span>CACHES</span>[p_key.<span style="color:#89BDFF;">to_sym</span>] <span style="color:#E28964;">return</span> <span style="color:#3387CC;">nil</span> <span style="color:#E28964;">if</span> cached_content.<span style="color:#89BDFF;">nil?</span> <span style="color:#AEAEAE;font-style:italic;"> <span style="color:#AEAEAE;font-style:italic;">#</span> verify cache validity</span> <span style="color:#E28964;">return</span> cached_content.<span style="color:#89BDFF;">content</span> <span style="color:#E28964;">if</span> <span style="color:#E28964;">not</span> <span style="color:#89BDFF;">expired?</span>(cached_content) <span style="color:#E28964;">return</span> <span style="color:#3387CC;">nil</span> <span style="color:#E28964;">end</span> <span style="color:#E28964;">private</span> <span style="color:#E28964;">def</span> <span style="color:#89BDFF;">self.expired?</span>(<span style="color:#3E87E3;">p_cache</span>) <span style="color:#AEAEAE;font-style:italic;"> <span style="color:#AEAEAE;font-style:italic;">#</span> find time difference</span> time_difference <span style="color:#E28964;">=</span> <span style="color:#9B859D;">Time</span>.<span style="color:#89BDFF;">now</span> <span style="color:#E28964;">-</span> p_cache.<span style="color:#89BDFF;">created_on</span> <span style="color:#E28964;">return</span> <span style="color:#3387CC;">true</span> <span style="color:#E28964;">if</span> time_difference <span style="color:#E28964;">></span> p_cache.<span style="color:#89BDFF;">expire_time</span> <span style="color:#E28964;">end</span> <span style="color:#E28964;">end</span> </pre> </div> </div> <a href="http://refactormycode.com/codes/160-fragment-cache" style="color:#fff" title="As seen on RefactorMyCode.com"><img alt="Small_logo" src="http://refactormycode.com/images/small_logo.gif" style="border:0" /></a>