Module: CachingMatcher
- Defined in:
- lib/caching_matcher.rb,
lib/caching_matcher/caching_matcher.rb
Defined Under Namespace
Classes: BeCachedMatcher, BeExpiredMatcher, MatcherBase
Constant Summary collapse
- LIBPATH =
:stopdoc:
::File.(::File.dirname(__FILE__)) + ::File::SEPARATOR
- PATH =
::File.dirname(LIBPATH) + ::File::SEPARATOR
Class Method Summary collapse
-
.libpath(*args, &block) ⇒ Object
Returns the library path for the module.
-
.path(*args, &block) ⇒ Object
Returns the lpath for the module.
-
.require_all_libs_relative_to(fname, dir = nil) ⇒ Object
Utility method used to require all files ending in .rb that lie in the directory below this file that has the same name as the filename passed in.
-
.version ⇒ Object
Returns the version string for the library.
Instance Method Summary collapse
- #be_cached(controller, url_options) ⇒ Object
- #be_expired(controller, url_options) ⇒ Object
- #clear_cache(controller, url_options) ⇒ Object
- #prime_cache(controller, url_options) ⇒ Object
Class Method Details
.libpath(*args, &block) ⇒ Object
Returns the library path for the module. If any arguments are given, they will be joined to the end of the libray path using File.join.
19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/caching_matcher.rb', line 19 def self.libpath( *args, &block ) rv = args.empty? ? LIBPATH : ::File.join(LIBPATH, args.flatten) if block begin $LOAD_PATH.unshift LIBPATH rv = block.call ensure $LOAD_PATH.shift end end return rv end |
.path(*args, &block) ⇒ Object
Returns the lpath for the module. If any arguments are given, they will be joined to the end of the path using File.join.
36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/caching_matcher.rb', line 36 def self.path( *args, &block ) rv = args.empty? ? PATH : ::File.join(PATH, args.flatten) if block begin $LOAD_PATH.unshift PATH rv = block.call ensure $LOAD_PATH.shift end end return rv end |
.require_all_libs_relative_to(fname, dir = nil) ⇒ Object
Utility method used to require all files ending in .rb that lie in the directory below this file that has the same name as the filename passed in. Optionally, a specific directory name can be passed in such that the filename does not have to be equivalent to the directory.
54 55 56 57 58 59 60 |
# File 'lib/caching_matcher.rb', line 54 def self.require_all_libs_relative_to( fname, dir = nil ) dir ||= ::File.basename(fname, '.*') search_me = ::File.( ::File.join(::File.dirname(fname), dir, '**', '*.rb')) Dir.glob(search_me).sort.each {|rb| require rb} end |
.version ⇒ Object
Returns the version string for the library.
11 12 13 |
# File 'lib/caching_matcher.rb', line 11 def self.version @version ||= File.read(path('version.txt')).strip end |
Instance Method Details
#be_cached(controller, url_options) ⇒ Object
69 70 71 |
# File 'lib/caching_matcher/caching_matcher.rb', line 69 def be_cached(controller,) BeCachedMatcher.new(controller,) end |
#be_expired(controller, url_options) ⇒ Object
95 96 97 |
# File 'lib/caching_matcher/caching_matcher.rb', line 95 def be_expired(controller,) BeExpiredMatcher.new(controller,) end |
#clear_cache(controller, url_options) ⇒ Object
42 43 44 45 |
# File 'lib/caching_matcher/caching_matcher.rb', line 42 def clear_cache(controller, ) mb = MatcherBase.new(controller, ) ActionController::Base.cache_store.delete(mb.cache_key) end |
#prime_cache(controller, url_options) ⇒ Object
37 38 39 40 |
# File 'lib/caching_matcher/caching_matcher.rb', line 37 def prime_cache(controller, ) mb = MatcherBase.new(controller, ) ActionController::Base.cache_store.write(mb.cache_key, "Some data") end |