Posts Tagged ‘cachetastic’

Ruby Opals

Monday, June 23rd, 2008

At RubyConf a bunch of us sat around a few glasses of beer and had a ‘bitch’ session about the state of Ruby Gems, a system we all consider be rather sub-par. At that session Tracy Flynn, friend and colleague of yours truly, said we should do something about it. He suggested we write RubyOpals. Well, Tracy is putting his money where his mouth is, http://github.com/tflynn/rubyopals/tree/master. I can tell you that I for one, can’t wait for Ruby Opals! I’ve already forked the project and started contributing! As soon as the first version is ready for release, I can tell you that Mack, Cachetastic, Genosaurus, etc… will all be the first available as opals.

I highly encourage all of you out there to add this project to your ‘watch’ list on GitHub. And if you have the time, and want to help write something special, I highly encourage you to fork it and start contributing! Time to get out there and start making the Ruby world a much, much, much better place.

Cachetastic 1.7.0 Release

Wednesday, June 4th, 2008

The simple, yet extremely powerful, Ruby caching framework, Cachetastic has been upgraded to 1.7.0. The big new feature of this release is the Cachetastic::Cacheable module. Including this module allows any class to become a Cache.

class Person
include Cachetastic::Cacheable
end
Person.set_into_cache(:hi, "Hello There")
Person.get_from_cache(:hi) #=> "Hello There"

Under the covers this creates a Cachetastic::Caches::Base object and proxies requests to it. This is a very simple example and belies the richness of the Cachetastic library. 

http://cachetastic-api.mackframework.com/

Features:

  • Flexible configuration. All caches have can either have their own configurations, or they can inherit from a default configuration.
  • Easy to use Adapter API. Included adapters include, LocalMemory, Memcache, DRb, File, and more. With the Adapter API being so simple, it’s easy to build your own custom adapter.
  • Flexible logging. Each cache can have it’s own loggers, or they can use the default logger.
  • JIT caching. Through Ruby’s powerful block structure, you can pass a block to a ‘get’ call and have it run if the results from the get are either ‘nil’ or ‘empty’
  • Cachetastic::Cacheable module turns any Object into a cache. It allows for any instance of that Object to cache and uncache itself.
  • And much more!

Release 0.2.0.1

Friday, March 14th, 2008

As previously mentioned there was an issue in a Mack dependency, cachetastic. Mack 0.2.0 used cachetastic-1.3.1 which had a require for the memcache-client gem.

If you didn’t have the gem installed you would get some not very nice messages. This require was fixed in cachetastic-1.4.1. Mack 0.2.0.1 uses the new version of cachetastic. There is no new functionality in 0.2.0.1, it’s simply the require fix.

Some really cool functionality is in the works for 0.3.0 of Mack, including everyone’s favorite, distributed routes. This, unfortunately, probably won’t be out till the end of next week.

$ sudo gem install mack

Like always, please allow time for the gem to propagate throughout the RubyForge mirrors.

Memcache issue with Mack 0.2.0

Friday, March 14th, 2008

If you get this error:

no such file to load -- memcache

The problem is mack-0.2.0 uses the cachetastic-1.3.1 gem, which has an errant require in the memcache adapter. There will be a patch forthcoming for Mack to use the lastest version of cachetastic which solves this issue.

Until that patch is out, the easiest thing to do is install the memcache-client gem, like such:

$ sudo gem install memcache-client

Release 0.0.6.2

Friday, February 29th, 2008

Please allow for mirror prorogation.  Thanks to Matt Todd for finding the first official Mack bug! Strangely enough, I actually welcome people finding bugs in Mack. It only serves to make it a better framework.

If you find a bug, please head on over to RubyForge and submit a ticket for it, and I’ll do my best to turn it around as quick as possible.

Changelog:

  • gem: thin 0.7.0
  • gem: cachetastic 1.3.1
  • Fixed 18487: #convert_security_of_methods ignores new_level param