Sha256: 27996939aadfb329a3f6316a20370e71e9466aec0925547070b68661bad35049

Contents?: true

Size: 771 Bytes

Versions: 2

Compression:

Stored size: 771 Bytes

Contents

require "active_support/concern"

require_relative "caching"
require_relative "configuration"

module ActiveCachedResource
  module Model
    extend ActiveSupport::Concern

    included do
      class << self
        attr_accessor :cached_resource

        def cached_resource(options = {})
          @cached_resource || setup_cached_resource!(options)
        end

        def setup_cached_resource!(options)
          @cached_resource = ActiveCachedResource::Configuration.new(self, options)
          include ActiveCachedResource::Caching
          @cached_resource
        end
      end
    end

    module ClassMethods
      def inherited(child)
        child.cached_resource = cached_resource if defined?(@cached_resource)
        super
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
active_cached_resource-0.1.0 lib/active_cached_resource/model.rb
active_cached_resource-0.0.1.pre lib/active_cached_resource/model.rb