All Projects β†’ yegor256 β†’ tacky

yegor256 / tacky

Licence: MIT license
Primitive Object Memoization for Ruby

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to tacky

Zache
Zero-footprint Ruby In-Memory Thread-Safe Cache
Stars: ✭ 30 (+114.29%)
Mutual labels:  ruby-gem, cache
async-memo-ize
πŸ›  Memoize utility for async/await syntax and promises. It supports cache in memory or via Redis
Stars: ✭ 16 (+14.29%)
Mutual labels:  memoization, cache
bash-cache
Transparent caching layer for bash functions; particularly useful for functions invoked as part of your prompt.
Stars: ✭ 45 (+221.43%)
Mutual labels:  memoization, cache
Cachier
Persistent, stale-free, local and cross-machine caching for Python functions.
Stars: ✭ 359 (+2464.29%)
Mutual labels:  memoization, cache
Python Memoization
A powerful caching library for Python, with TTL support and multiple algorithm options.
Stars: ✭ 109 (+678.57%)
Mutual labels:  memoization, cache
Cached
Rust cache structures and easy function memoization
Stars: ✭ 530 (+3685.71%)
Mutual labels:  memoization, cache
cacheme-go
πŸš€ Schema based, typed Redis caching/memoize framework for Go
Stars: ✭ 19 (+35.71%)
Mutual labels:  memoization, cache
invokable
Objects are functions! Treat any Object or Class as a Proc (like Enumerable but for Procs).
Stars: ✭ 40 (+185.71%)
Mutual labels:  ruby-gem, memoization
memo wise
The wise choice for Ruby memoization
Stars: ✭ 486 (+3371.43%)
Mutual labels:  ruby-gem, memoization
composer-velocita
Velocita - Composer plugin for transparent caching
Stars: ✭ 26 (+85.71%)
Mutual labels:  cache
codeship-ruby
[deprecated] Easily interact with Codeship
Stars: ✭ 13 (-7.14%)
Mutual labels:  ruby-gem
echo-mw
η»ŸδΈ€η§»εˆ°hb-go/echo-web ☞
Stars: ✭ 17 (+21.43%)
Mutual labels:  cache
node-cache-manager-ioredis
Redis store for node-cache-manager using IORedis.
Stars: ✭ 47 (+235.71%)
Mutual labels:  cache
netlify-plugin-cache
⚑ Generic plugin for caching any files and/or folders between Netlify builds
Stars: ✭ 19 (+35.71%)
Mutual labels:  cache
glimmer-dsl-swt
Glimmer DSL for SWT (JRuby Desktop Development GUI Framework)
Stars: ✭ 53 (+278.57%)
Mutual labels:  ruby-gem
calendarium-romanum
liturgical calendar library (Roman Catholic, post-Vatican II)
Stars: ✭ 37 (+164.29%)
Mutual labels:  ruby-gem
kitchen-pester
A Test Kitchen driver to execute Pester as a verifier
Stars: ✭ 29 (+107.14%)
Mutual labels:  ruby-gem
storage-box
Intuitive and easy-to-use storage box.
Stars: ✭ 26 (+85.71%)
Mutual labels:  cache
tiny-cache
Cache WordPress post content, template part, translations and nav menu output in persistent object cache
Stars: ✭ 26 (+85.71%)
Mutual labels:  cache
cvss-suite
CvssSuite - This Ruby gem helps you to process the vector of the Common Vulnerability Scoring System.
Stars: ✭ 18 (+28.57%)
Mutual labels:  ruby-gem

EO principles respected here DevOps By Rultor.com We recommend RubyMine

Build Status Build status Gem Version Maintainability Yard Docs

Hits-of-Code License

First, install it:

$ gem install tacky

Then, use it like this:

require 'tacky'
obj = Tacky.new(obj)

That's it, all method calls will be cached. This means that only the first call of any method will actually reach your object. All consecutive calls will be intercepted by the Tacky decorator, which will return previously calculated values. The decorator keeps all values in its internal Hash.

If you want all methods of everything your methods return be cached too, you need to use "deep" caching (it's true by default):

obj = Tacky.new(obj, deep: true)

Keep in mind that Tacky is thread-safe.

How to contribute

Read these guidelines. Make sure you build is green before you contribute your pull request. You will need to have Ruby 2.3+ and Bundler installed. Then:

$ bundle update
$ bundle exec rake

If it's clean and you don't see any error messages, submit your pull request.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].