LuckyCache
Cache content within your Lucky application.
Installation
-
Add the dependency to your
shard.yml:dependencies: lucky_cache: github: luckyframework/lucky_cache
-
Run
shards install
Adapters
LuckyCache comes with a built-in MemoryStore, but if you need extneral storage, check out one of these adapters
Usage
require "lucky_cache" LuckyCache.configure do |settings| settings.storage = LuckyCache::MemoryStore.new settings.default_duration = 5.minutes end class SomeObject include LuckyCache::Cachable end cache = LuckyCache.settings.storage some_object = cache.fetch("some_key", as: SomeObject) do SomeObject.new end
Page fragment cache
You can cache portions of your page by including the LuckyCache::HtmlHelpers module
in your Page class, and use the cache() helper method.
class Posts::ShowPage < MainLayout include LuckyCache::HtmlHelpers needs post : Post def content cache("post:#{post.id}:comments", expires_in: 1.hour) do post.comments.each do |comment| div comment.text end end end end
Development
Contributing
- Fork it (https://github.com/luckyframework/lucky_cache/fork)
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request
Contributors
- Jeremy Woertink - maintainer
Thanks & attributions
- Initial structure and some code was pulled from the original LuckyCache by @matthewmcgarvey.
- Lots of inspiration on Cache store was from @mamantoha