Ruby Facets v1.8.0 Release Notes

Release Date: 2007-01-24 // over 17 years ago
  • ๐Ÿš€ The list of changes also includes intrim releases 1.7.46 September 8, 2006, 1.7.38 August 31, 2006, and 1.7.30 August 23, 2006.

    ๐Ÿ”„ Changes:

    • โž• Additions

      • Add facets/automatic.rb, very cool, albiet experimental, way to load core methods automatically!
      • added hash/insert; like store but only if key isn't already present
      • added module/include_and_extend
      • 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
      • 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
      • added kernel/ask, simply command to get console input
      • added populate.rb, mixin for classes that need on a basic initializer
      • added version_number.rb (a specialized tuple)
      • 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
      • added File::yaml? to roughly detect if a file is a yaml file
    • ๐Ÿ“‡ Renamed Features

      • Rename #superior to #super_at.
      • OpenObject = OpenHash (OpenObject will eventually be deprecated)
      • renamed quaclass to qua_class
      • renamed openobject to openhash !!!
    • ๐Ÿ—„ Deprecations

      • had to remove taskable.rb for now (implementation won't work as toplevel include)
      • deprecated (yored) kernel/own, yet another term for the singleton class
      • removed dataobject.rb (was never used)
      • deprecated (yored!) module/inject; what a silly method
      • deprecated kernel/require_facet (no longer needed)
    • ๐Ÿ› Bug Fixes

      • Fix enumerable/partition_by.
      • memoize should now work at toplevel
      • minor bug fix to httpaccess
    • General Enhancments

      • Add buildingblock.rb, replacing builderobject.rb.
      • HtmlBuilder and XMLBuilder aer now based on BuildingBlock
      • adjust require for "yored" files
      • 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)
      • facets.rb now references facets/sys.rb
      • adjust old annotation.rb (now in yore) to use openhash
    • Admin Adjustments

      • further updates to project info file (need to stop versioning this)
      • deprecated (yored) builderobject.rb (poor implementation)
      • moved deprecated #facet_require to yore lib
      • minor doc change to instance_intercept.rb
      • doc change to methodfilter.rb (maybe deprecat in future)
      • moved old module/namespace implementation to yore
    • Unsorted Changes

      • moved plugin.rb to ratchets/library project
      • proper credit for multiton goes to Ara T. Howard!!!! Also improvements.
      • remove library.rb (move to ratchets/library project)
      • 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
      • added trace to command.rb
      • organizational changes