Module: Commutator::Util::Fluent
- Extended by:
- ActiveSupport::Concern
- Included in:
- Options::DeleteItem, Options::GetItem, Options::PutItem, Options::Query, Options::Scan, Options::UpdateItem
- Defined in:
- lib/commutator/util/fluent.rb
Overview
This module provides fluent accessors and wrappers, which are probably just terms I made up.
Usage: class Person
include Commutator::Util::Fluent
fluent_accessor :first_name,
:last_name,
:pets
fluent_wrapper :pets
def initialize
@pets = []
end
end
When called with an argument a fluent accessor will set a value and return the instance again. This allows chaining.
Ex: person = Person.new.first_name(‘Seymour’).last_name(‘Busses’) # => <#Person @first_name=‘Seymour’, @last_name=‘Busses’>
When called without an argument a fluent accessor will return the value it has. person = Person.new.first_name(‘Seymour’) person.first_name # => ‘Seymour’
A fluent wrapper allows you to manipulate “complex” objects and continue to chain calls. Fluent wrappers start with a ‘with_` followed by the attribute name. Fluent wrapper passes the value into a block.
Ex: person = Person.new
.first_name('Hi')
.with_pets { |pets| pets << 'mittens' }
Defined Under Namespace
Modules: ClassMethods