README

Path: README
Last Update: Sat Sep 04 20:31:36 UTC 2004

URLS:

  - http://raa.ruby-lang.org/project/arrayfields/
  - http://www.codeforpeople.com/lib/ruby/arrayfields/
  - http://rubyforge.org/projects/arrayfields/

SYNOPSIS:

  allow keyword access to arrays:

    require 'arrayfields'

    fields = 'name', 'age'
    row = [ 'bob', 30 ]

    row.fields = fields

    row[ 'name' ]                #=> 'bob'
    row.indices 'name', 'age'    #=> [ 'bob', 30 ]

  assigning to un-named fields appends:

    stack = []
    stack.fields = %w(zero one)
    stack['zero'] = 'zero'
    stack['one'] = 'one'
    stack                        #=> [ 'zero', 'one' ]

  useful for database work:

    relation = pgconn.query sql
    relation.size                #=> 65536

    # yikes! do we really want to re-construct a hash for for each tuple when
    # we already have Arrays?

    fields = %w(ssn name position)
    table.each{|tuple| tuple.fields = fields}

    tuples[34578]['ssn']         #=> 574865032

LIST OF OVERRIDDEN METHODS:

  - Array#[]
  - Array#[]=
  - Array#at
  - Array#delete_at
  - Array#fill
  - Array#values_at
  - Array#indices
  - Array#indexes
  - Array#slice
  - Array#slice!

LIST OF NEW Array METHODS:

  - Array#fields=
  - Array#each_with_field

DOCS/USAGE/SAMPLE:

  - lib/arrayfields.rb
  - test/arrayfields.rb

AUTHOR:

  ara.t.howard@noaa.gov

HISTORY:

  3.4.0:
    - added FieldedArray[] ctor
    - added methods to make Arrays with fields set behave more closely to Hashes
      - each_pair
      - each_key
      - each_value
      - fetch
      - has_key?
      - member?
      - key?
      - has_value?
      - value?
      - keys?
      - store
      - values

  3.3.0:
    - added gemspec file - thnx Assaph Mehr
    - added FieldedArray proxy class which minimizes modifications to class
      Array and allow ArrayFields to work (potientially) other arraylike object.
      thnks Sean O'Dell
    - added ArrayFields#to_hash method - this seems like an obvious one to add!
    - remedied bug where using append feature of assigning with unknow field
      appedended but did not append to acutal fields
    - added samples
    - created rubyforge accnt @ http://rubyforge.org/projects/arrayfields/

  3.2.0:
    - precedence fix in many methods - thnx. nobu
    - test for #slice! were not being run - corrected
    - added test for appeding via "a['new_field'] = 42"

  3.1.0:
    - added FieldSet class to reduce ram - thnx. Kirk Haines for profiliing
      memory and prompting this change

    - interface changed every so slightly so

        a.fields = 'a', 'b', 'c'

      is not allowed.  use

        a.fields = %w(a b c)

      or

        a.fields = ['a', 'b', 'c']

  3.0.0:
    - added unit tests

[Validate]