Sha256: 5af6a38846ccc0249af7e3d6dd8083d26b747ee056b236e40ae604d24de1c56d

Contents?: true

Size: 1.72 KB

Versions: 1

Compression:

Stored size: 1.72 KB

Contents

NAME
  fattr.rb

INSTALL
  gem install fattrs

URIS
  http://codeforpeople.com/lib/ruby
  http://rubyforge.org/projects/codeforpeople/
  http://codeforpeople.rubyforge.org/svn/

SYNOPSIS
  fattr.rb is a "fatter attr" for ruby.  fattr.rb supercedes attributes.rb as
  that library, even though it added only one method to the global namespace,
  collided too frequently with user code - in particular rails' code.

  the implementation of fattr.rb borrows many of the best ideas from the
  metakoans.rb ruby quiz

    http://www.rubyquiz.com/quiz67.html

  in particular the solutions of Christian Neukirchen and Florian Gross along
  with concepts from the original traits.rb lib

  key features provided by fattrs are

    - ability to specify default values for attrs and definition time.  values
      can be literal objects or blocks, which are evaluated in the context of
      self to initialize the variable

    - classes remember which fattrs they've defined and this information is
     available to client code

    - a whole suite of methods is defined by calls to #fattrs including
     getter, setter, query (var?) and banger (var! - which forces
     re-initialization from the default value/block)

    - ability to define multiple fattrs at once using key => value pairs

    - fast lookup of whether or not a class has defined a certain fattr

    - fattrs can be defined on objects on a per singleton basis

    - getters acts as setters if an argument is given to them

    - block caching, calling an fattr with a block sets the instance
      variable to that block

  all this in < 100 lines of code

HISTORY
  5.0.0:
    port from attributes.rb retaining all the same features of that version of
    attributes.rb

SAMPLES
  @samples

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
fattr-1.0.1 README.tmpl