Sha256: 4060d7f9e883b52009d764f321d83e78f73d921e8d6e4ed88aec0b6a994a393d

Contents?: true

Size: 1.25 KB

Versions: 22

Compression:

Stored size: 1.25 KB

Contents

module CanTango
  module Cache
    class MonetaCache
      include Singleton

      attr_reader :options

      def configure_with options = {}
        @options ||= options
        @type ||= options[:type] || CanTango.config.cache.store.default_type
      end

      def load! key
        cache[key]
      end

      def save! key, rules
        cache.store key, rules
      end

      def delete key
        cache.delete key
      end

      def cache
        @cache ||= begin
                     moneta = eval(factory_statement)
                     moneta.clear
                     moneta
                   end
      end

      def factory_statement
        %{
          ::Moneta::Builder.build do
            #{run_adapter}
          end
        }
      end

      def run_adapter
        case type.to_sym
        when :yaml
          yaml_adapter
        else
          simple_adapter
        end
      end

      def yaml_adapter
        "run #{adapter}, #{options}"
      end

      def simple_adapter
        "run #{adapter}"
      end

      def type
        (@type == :yaml) ? :YAML : @type
      end

      def adapter
        require "moneta/adapters/#{type}"
        @adapter = "Moneta::Adapters::#{type.to_s.camelize}".constantize
      end
    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
cantango-0.9.4.7 lib/cantango/cache/moneta_cache.rb
cantango-0.9.4.6 lib/cantango/cache/moneta_cache.rb
cantango-0.9.4.5 lib/cantango/cache/moneta_cache.rb
cantango-0.9.4.3 lib/cantango/cache/moneta_cache.rb
cantango-0.9.4.2 lib/cantango/cache/moneta_cache.rb
cantango-0.9.4.1 lib/cantango/cache/moneta_cache.rb
cantango-0.9.4 lib/cantango/cache/moneta_cache.rb
cantango-0.9.3.2 lib/cantango/cache/moneta_cache.rb
cantango-0.8.9.5 lib/cantango/cache/moneta_cache.rb
cantango-0.8.9.4 lib/cantango/cache/moneta_cache.rb
cantango-0.8.9.3 lib/cantango/cache/moneta_cache.rb
cantango-0.8.9.2 lib/cantango/cache/moneta_cache.rb
cantango-0.8.9.1 lib/cantango/cache/moneta_cache.rb
cantango-0.8.9 lib/cantango/cache/moneta_cache.rb
cantango-0.8.8.1 lib/cantango/cache/moneta_cache.rb
cantango-0.8.8 lib/cantango/cache/moneta_cache.rb
cantango-0.8.7 lib/cantango/cache/moneta_cache.rb
cantango-0.8.6.2 lib/cantango/cache/moneta_cache.rb
cantango-0.8.6.1 lib/cantango/cache/moneta_cache.rb
cantango-0.8.6 lib/cantango/cache/moneta_cache.rb