= classy-adornments More functional versions of the attr, attr\_reader and attr\_writer methods. I often find myself repeating these across projects so I've extracted them into a gem. Inspired by 'Chapter 2 - Designing Beautiful APIs' in the {'Ruby Best Practices' book}[http://rubybestpractices.com/]. == Simple adornment Provides a single method interface to instance variables. Methods calls without an argument return the attribute value. Method calls with an argument set corresponding instance variable to this value. class Person include ClassyAdornments adorn :partner end developer = Person.new developer.partner #=> nil developer.partner "Sophie" developer.partner #=> "Sophie" developer.instance_variable_get("@partner") #=> The instance variable also set developer.partner = "Sophie" #=> Method variable= also usable == Array adornment Provides an adornment using an array as a base. Method calls with an argument append the argument to the array. Empty method calls return the array of values. class Relationship include ClassyAdornments adorn :dates, :array => true adorn :fights, :array => true end romance = Relationship.new romance.dates #=> [] Initialised with empty array romance.dates(:wings) #=> Value appended to array romance.dates #=> [:wings] romance.dates([:drive_thru,:tv_night]) #=> Array values also added romance.dates #=> [:wings,:drive_thru,:tv_night] romance.fights :dates, :guy_friend_tim #=> Multi-arguments appended also romance.fights #=> [:dates, :guy_friend_tim] = Copyright Copyright (c) 2011 Michael Barton. See LICENSE.txt for further details.