= facets doc/CHANGES

 1.8.54
  * added reqiure to ostruct.rb test
  * fix to command.rb's initializer
  * Fixed all bug reports from rubyforge tracker *except rdoc issue
  ** fixed bug with times.rb beginning_of_year and beginning_of_month
  ** replaced pqueue and heap with new working class (thanks to Olivier Renaud)
  ** fixed bug in ormsupport.rb (this will be moved out of facets in next release)
  ** added empty? to dictionary (removed old subclass of Hash)
  * significant improvements to command.rb thanks to Tyler Rick
  * added tests to elementwise and tap
  * fixed test for elementwise and op_tilde_self
  * added enumerable/map_send
  * added thread_map and thread_map_send thanks to greg
  * added operator "~@" for enumerable/elementwise
  * added more/consoleutils.rb
  * added string/cleave
  * added capitalize_all thanks to Richard Laugesen
  * cartesian_product is an alias of enumerable/cart
  * added array pad thanks to Richard Laugesen
  * added kernel/tap
  * fixed test/unit load issues
  * converted facet/ requires to facets/core or facets/more as needed
  * further improvements to arguments.rb (looking good!)
  * improved symbol/self/generate
  * bug fix kernel/autoreload arguments needed to be in opposite order
  * add to_xoxo
  * removed bad character codes in multiplier.rb
  * used yaml to allow json.rb to work for all object in general
  * improvements to functor (note: is to_a and to_proc okay?)
  * add test to string/bytes.rb
  * bug fix to nilclass/op_cmp
  * fixed enumerable/op_pow to use enumerable/cart
  * added array/op_div
  * adjustments to xmlbuilder and htmlbuilder dur to buildingblock changes
  * improved buildingblock.rb
  * simplified interface of arguments.rb (still a little more to do)
  * improvements/simplifications to Dir.multiglob
  * added new authors to list
  * fixed misspelling of behavior.rb (was bahvior.rb)
  * removed #own from base list in facets.rb (really need a standard for "singleton class")
  * minor adjustments to uploadutils
  * fixed bug in aspects.rb that would not handle args of wrapped method
  * Symbol#to_s optimization, had to remove freeze
  * updates to fileutils/stage (stage worth keeping?)
  * update to credits
  * fix bug in kernel/ask, returns more than one character
  * cleanup of enumerbale/graph (no effective change)
  * new super fast enumerable/cart by Thomas Hafner (replaces #cross)
  * improved multiglob rountines (accept '+' and '-' prefixes)
  * No longer will track project file via scm until it settles
  * fixed bug in attr_tester, thanks Dov!
  * added weekdays to times.rb thanks to Ryan Platte and Dave Hoover
  * improvements to dictionary.rb (no longer a subclass of Hash) thanks Jan!
  * re-replace openhash with openobject
  * improvements to ann.rb and ann_attr.rb. works, yea!
  * fixed bug in string/singular.rb
  * changed enumerable/cross into enumerable/cart and cartesian_product
  * openobject returns (openhash was a bad name, thanks george)
  * moved enumerable/cross to enumerable/cart (cartesian_product)
 1.8
  * added buildingblock.rb, replaced builderobject.rb
  * adjust require for "yored" files
  * HtmlBuilder and XMLBuilder aer now based on BuildingBlock
  * bug fix for command.rb
  * minor improvements to basic object (object_self to access kernel methods)
  * ostuct adjustment, use #instance_delegate to get underneth the open access
  * module/include_as is now based on module/namespace (thanks Pit!)
  * minor adjustments to methods for (class<<self;self;end)
  * fixed enumerable/partition_by
  * further updates to project info file (need to stop versioning this)
  * deprecated (yored) builderobject.rb (poor implementation)
  * added hash/insert; like store but only if key isn't already present
  * added module/include_and_extend
  * facets.rb now references facets/sys.rb
  * added facets/automatic -- very cool, albiet expiremental way to load core methods automatically!
  * added File::mulitglob_sum; accumulates file patterns, and accepts '+' and '-' prefixes
  * added module/module_method; like module_function but makes method public
  * added module/include_function_module; attempts to properly include one function_module into another
  * kernel/yaml convenience method for YAML::load
  * added kernel/supress; supress errors while executing a block (nice DHH!)
  * added symbol/chomp, like string#chomp
  * added proc/to_h; converts an assignment proc into a hash
  * proc/bind; bind a proc to an object, returning a method
  * added module/prepend; provides dyanamic method wraps for modules, and static wraps for classes
  * added module/new; use a module as if it were a class
  * added module/alias_accessor
  * renamed #superior to #super_at
  * kernel/instance_class; yet anouther meta_class name, but a more sensicle name this one
  * added kernel/populate; populates an object's inst. vars from a hash or assingment block
  * added kernel/daemonize; one last thanks to DHH!
  * added enumerable/injecting; like inject but automatically returns the memo from the block
  * added kernel/object_send, a true public-only send method
  * added kernel/silence_stream; output to null device; thanks DHH!
  * added kernel/instance_values, thanks DHH!
  * added Config:inspect for rbconfig
  * added hash/pairs_at (aking to values_at)
  * added _why's metaid methods (meta_class, meta_eval, etc.)
  * added kernel/enable_warnings to complement silence_warinings
  * added integer/to_roman
  * added logical operators for hash (and/or)
  * array/to_path convert ans array to a path string
  * array/index takes a block
  * added fileutils/compress; very simple convenience methods for archiving folders
  * added fileutils/stage adn staged, a means of transfering files accoring to preset rules
  * had to remove taskable.rb for now (implementation won't work as toplevel include)
  * added kernel/ask, simply command to get console input
  * moved deprecated #facet_require to yore lib
  * deprecated (yored) kernel/own, yet another term for the singleton class
  * renamed quaclass to qua_class
  * added populate.rb, mixin for classes that need on a basic initializer
  * added version_number.rb (a specialized tuple)
  * OpenObject = OpenHash (OpenObject will eventually be deprecated)
  * added uploadutils.rb
  * added Joel VanderWerf's great script.rb script
  * added Austin's minitar.rb --it's just too damn useful!
  * added htmlfilter.rb very nice html escape class
  * added dependency.rb, allwos method to have dependend execution (like rake tasks)
  * added arguments.rb this is for parsing console command arguments
  * add new version of annotations: ann.rb and ann_attr.rb
  * memoize should now work at toplevel
  * removed dataobject.rb (was never used)
  * minor doc change to instance_intercept.rb
  * doc change to methodfilter.rb (maybe deprecat in future)
  * deprecated (yored!) module/inject; what a silly method
  * added File::yaml? to roughly detect if a file is a yaml file
  * deprecated kernel/require_facet (no longer needed)
  * moved old module/namespace implementation to yore
  * adjust old annotation.rb (now in yore) to use openhash
  * moved plugin.rb to ratchets/library project
  * renamed openobject to openhash !!!
  * proper credit for multiton goes to Ara T. Howard!!!! Also improvements.
  * remove library.rb (move to ratchets/library project)
  * minor bug fix to httpaccess
  * updated autovivify.rb to use openhash
  * improvement to command.rb
  * imporved time/stamp
  * reimplemented proc/to_method for more sensible behavior
  * reimplemented module/namespace, very clever thanks to pit captain
  * added module_load and module_require, e.g. load into and require into
  * reimplemented instance_exec, should be much improved
  * doc updates to inflect.rb
  * updates to Hash op_add, reverse_merge, and rekey
  * each_slice is now just an alias via enumerator & fixes to partition_by
  * minor adjusment to multiglob
  * modified all.rb (not recommended!) to require facets/sys
  * modifications to project information file (should this be versioned?)
  * created yore lib to store deprecated features (good idea!)
  * modified PROJECT info file
  * added module class/module_load and _require
  * remove facet/ redirect lib from darcs repository
  * OpenObject is now OpenHash (OpenObject still exist for backcompat)
  * kernel/returning is a stub for kernel/with
  * added proc/update as alias for #call per Tim Pease use of Proc as Observable
  * added behavior.rb by Nobuyoshi Nakada (plan to improve)
  * rewrote taskable.rb using classes to represent tasks; it is much improved
  * openobject.rb doc updates
  * major update to functor which is now a subclass of Proc (should be faster)
  * improvements to dictionary.rb to go along with additions of first and last
  * small improvements to command.rb
  * removed uses of __class__ for object_class and solidified usaged of #as in basicobject.rb
  * deprecated ostruct shadow methods (i.e __table__) in favor of #instance methods
  * added test to module/alias_method_chain
  * imporvements to instance_exec thanks to Mauricio Fernandez
  * improvements to kernel/send_as
  * improvements to kernel/as
  * minor doc addition to kernel/as
  * fixed syntax in hash/op_add.rb
  * imporvements to hash/partition_by thanks to Gregory of Laurel
  * added Mauricio Fernandez to authors
  * added addtional work library lore
  * moved "calibre" project information files
  * moved a number of "in the works" libs to ToadCode project
  * removed predicate.rb, an expiremental logic system, and moved to ToadCode
  * Added plugin.rb, an indirect require mechinism, ie. a plugin system
  * remove one.rb and moved to ToadCode project, this was just silly/fun library
  * Added library.rb which is a library ledger system (used to be roll.rb)
  * added kernel/with which instance_eval's a block on with's subject
  * rekey is an improved version of normalize_keys (ie. the basis of symbolize_keys)
  * multiglob is like glob but handles a list of patterns
  * proper access to openstruct's underlying table
  * minor adjustment to taskable.rb
  * minor adjustment to #dresner docs
  * minor adjustment to #as
  * simple doc addition to setup.rb
  * doc fixes and losening toplevel constraint to Object in taskable
  * made OpenObject #update and #merge public; added to_hash
  * minor "public" fix to main_as_object
  * removed unorder_store and store_only; added first/last to dictionary
  * continued improvements to command.rb
    added some new callbacks such as option_missing;
    also handles method_missing properly now
  * minor adjustments to module::@+
  * added string/rewrite
  * test fixes to module/include_as
  * documentation fix for class_extension
  * minor edit to supermethod (also finish #superior removal)
  * cleanup kernel/set_with code
  * update kernel/metaclass can now take a block
  * added hash#+ and hash#- (op_add and op_sub)
  * added cache to enumerable/every
  * minor updates to facets.rb
  * removed kernel/superior (silly name)
  * minor modifications ot PROJECT file
  * [add] more/autovivify.rb expiremental lib.
  * [update] Minor fix to command.rb to not use Kernel methods as subcommands.
  * [update] Work on annotation.rb to improve support for :self.
  * [deprecate] enumerable/permute.rb (replaced by permutation) and minor test fix to linkedlist.rb
  * [added] linkedlist.rb (thanks Kirk Haines!)
  * [added] enumerable/sum (thanks to Gavin Kistner)
  * [added] array/each_combo and combos (Eunumerable.combinations will be deprecated eventually)
  * [rename] changed enumerable/permute to permutation
  * [update] annotation.rb, fixed :self key
  * [added] pathname/op_div
  * [deprecated] hash/each.rb
  * [removed] hash/each.rb, this variation of Hash#each is too "dangerous" in practice
  * [update] module/self/op_add.rb: fixed inclusion order
  * annotation.rb, return annotations of self when key is :self [updated]
  * module/self/op_add.rb and op_sub.rb - traits like features [added]
  * minor improvemtns to module/clone_using and integrate
  * command.rb: minor change to docs [update]
  * openobject.rb (added NilClass#to_openobject) [update]
  * enumerable/each_slice.rb [replace]
    Ruby already has #each_slice if you require 'enumerator'. And for 1.9,
    I believe, this will be present automatically. So Facets' each_slice 
    has been replaced with a simple redirection to require 'enumerator'.
    Ruby's version is slightly different in that it won't check arity if
    a slice count is not given. For this, use enumerable/each_by.
  * array/delete_at.rb [removed]
    Ruby's Array class already has a #delete_at method,
    although this is another method at odds with Hash.
    Use #delete_values_at instead.
  * moved File.bitbucket to File.null (but bitbucket was so "fun"! ;)
  * added nilclass/to_path
  * added kernel/load_local
  * added kernel/callee
  * added enumerable/eachn, integer/each and integer/of
  * re-added array/delete_values_at
  * added filetest/self/root
  * added cache.rb
  * moved Dir.bitbucket to File.bitbucket
  * removed task file in favor of sake based util/
  * added main_as_module
  * added doublemetaphone (Thanks Lawrence Philps!)
  * rewrote taskable.rb
  * minor doc fix to association.rb
  * added symbol/to_s which caches the result for speed up
  * additions and adjusments related to hash/delete_at
  * added Dir.bitbucket
  * update to array/op_fetch to include op_store
  * updated docs and util tasks
  * minor changes
  * added filesystem.rb
  * taskable should now work at the toplevel too
  * still working the organization as Reap/Sake change
  * started setting project tasks up for sake
  * updates to enumerable each_slice
  * updated names of meta files
  * updates to READMEs
  * added trace to command.rb
  * organizational changes
 1.7
  * fix to inifinty.rb
  * comment on cut.rb needed a quick fix
  * updated infinity
  * added tkxml.rb
  * allow tasks to to arguments (all dependent tasks must take same args)
  * update infinity.rb to conform more with common standards
  * error catch added to command.rb (thanks Jonas)
  * added singleton annotations
  * minor improvement to wrap_method and proc/compose
  * added more/infinity.rb
  * major improvement to String#singular and plural
  * update normalize_keys to take a proc instead of a "send" parameter
  * projectinfo backups change
  * added cuts implimentation
  * separated integer/op_mul from compose, op_mul now composes and Integer#of
  * wrap_method, no need to undef method before redefining it
  * move calibre files (will we do ever use?) to work/pore/meta
  * added work dir to repo
  * fix instance_interception test
  * doc cleanup
  * added hash/op_div and array/op_div to BASE.
  * remove kernel/called and fixed callee,__callee__ and __method__.
  * just about prefected OpenObject
  * keys_to_sym to symbolize_keys usage
  * remove explore dir, perhaps better to do without midstage
  * added to_a to OpenObject
  * minor touchup to opencascade
 1.6
  * PrivateAccess expiremental class
  * added reverse_merge  (from Active Support)
  * adjustments to stringify_keys, record normalize_keys
  * work on other Hash subclasses Dictionary, OpenCascade, and Hash#having_fallback features
  * added some core methods enumerable#divide, array and hash op_div, kernel/meta
  * deprecated generate_method_name and generate_instance_method_name
  * Hash methods keys_to_s and keys_to_sym to stringify_keys and symbolize_keys
  Both now depend on normalize_keys
  * rewrote openobject as a subclass of Hash with a method filter
  * rewrote annotation.rb and moved into more/
  * add meta docs to darcs
  * added Jan Molic's Debugger(Logger) to explore
  * calibre task (worth the effort?)
  * added Symbol::generate
  * remove generate_method_name methods
  ** removed kernel/generate_method_name
  ** removed moodule/generate_instance_method_name
  Neither were thread safe.
  * new implementation of openobject cont.
  * updated dictionary class
  1. created subclass AutoDictionary, now used by Dictionary.auto
  2. deprecated ::key_new and :value_new, use ::new.by_key and ::new.by_value instead.
  3. Retained ::alpha but changed ::auto_key to ::auto_alpha.
  * new implementation of openobject in Facets/EXPLORE
  * Added deep_clone (thanks Jan Molic)
  * project metadata work adjustments
  * minor update to tagiterator.rb
  * add _darcs expection to FileList
  * fix to nilclass#status (accept single parameter)
  * added Hash.auto (thanks Jan Molic)
  * remove blankslate alias to basicobject
  * added annotation and instance_intercept to Facets/EXPLORE
  * added Kernel#to_data
  * add Daniel Berger's Hash#to_stuct
  * moved ValueHolder in snapshot.rb to Snapshot::ValueHolder
  * minor bug fix to alias_method_chain
  * fix compatiblity with Reap
  * improved Proc#to_method and Kernel#instance_exec
  * added instance_exec (duh)
  * added object_clone and object_dup
  object_ methods are intended as non-overridable (although you cna if you must).
  * no Configuration alias for Settings
  * added facets/explore libs
  * added settings.rb from glue
  * openobject uses self[] instead of @table[]
  also update proj/infp to start 1.5 series
  * deprecate BaasicObject
 1.4.5
  * move ProjectInfo to proj/info
  * better arrangment of repository
  * Added nil#status, module#alias_method_chain and enumerable#cascade.
  nil#status - Allows a messgae to be passed through a failure chain.
  module#alias_method_chain - from rails this is clever idiom for
  module-based method wrapping. A limited solution, but since
  there's no standard solution as of yet, well support til then.
  enumerable#cascade - cascade a list of action on each element
  of an enumerable.
  * method missing in htmlbuilder effected by basic object fix
  * minor update to functor.rb
  * change WebAgent to Web
  * Removed hash/keys_to_iv b/c it is a poor name. Since the alternative of #keys_to_instance_variables conveys the wrong idea, decided to just get rid of this. Instead use the Rails compatibile hash/variablize_keys.
  * 1.4RC3
  * initial import
