Responding
Kind of a Struct implementation, but with a nested structure.
Installation
Add this line to your application's Gemfile:
gem 'responding'
And then execute:
$ bundle
Or install it yourself as:
$ gem install responding
Usage
Just define your class:
Response = Responding.new(:id, :status => [:ok?, :message])
response = Response.new(:id => 2, :status => {:ok? => true})
response.id
response.status.ok?
response.status.message
Every cache-invalidations occur only on creation of the dynamic class, after
this is done, instanciation is safe for your performance.
Performance
There is a benchmark-script, you can run it like this:
bundle exec ruby spec/benchmark.rb
Contributing
- Fork it
- 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 new Pull Request