I always seem to struggle refactoring my code. I can look at any other code and know exactly what is going on, but when it comes to cleaning up my code, I get writers block. The following code works, but I know if can be done much nicer, and with few lines of code. I just wanted to wrap a memcache client to use one server for testing and another for dev/prod or just fetch the value if it cannot connect to the server.Any tips on refactoring, etc. are much appreciated. require 'dalli'class Cache    def self.fetch(key, ttl, &block)        if memcache            memcache.fetch(key, ttl, &block)        else            block.call        end    end    def self.memcache        begin        if(ENV['RACK_ENV'] == :production or ENV['RACK_ENV'] == :development)            @memcache ||= Dalli::Client.new('cache.amazonaws.com:11211')            else            @memcache ||= Dalli::Client.new('localhost:11211')          end        rescue Exception => e            false        end    endend
Using Dalli to connect to memcached
ruby;cache