# ChangeLog for dev-ruby/columnize
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/dev-ruby/columnize/ChangeLog,v 1.10 2010/01/24 16:44:17 flameeyes Exp $

  24 Jan 2010; Diego E. Pettenò <flameeyes@gentoo.org>
  columnize-0.3.1-r1.ebuild:
  Add ruby19 and jruby support.

  04 Jan 2010; Christian Faulhammer <fauli@gentoo.org>
  columnize-0.3.1-r1.ebuild:
  Transfer Prefix keywords

*columnize-0.3.1-r1 (22 Dec 2009)

  22 Dec 2009; Hans de Graaff <graaff@gentoo.org>
  +columnize-0.3.1-r1.ebuild:
  Convert to use ruby-fakegem.

  22 Aug 2009; Hans de Graaff <graaff@gentoo.org> -columnize-0.3.0.ebuild:
  Remove old version.

*columnize-0.3.1 (01 Aug 2009)

  01 Aug 2009; Hans de Graaff <graaff@gentoo.org> +columnize-0.3.1.ebuild:
  Version bump: optional lineprefix and Ruby 1.9 fixes.

  18 Jun 2009; Hans de Graaff <graaff@gentoo.org> -columnize-0.2.ebuild,
  -columnize-0.2.1.ebuild:
  Remove old versions.

  20 Mar 2009; Joseph Jezak <josejx@gentoo.org> columnize-0.3.0.ebuild:
  Marked ~ppc for bug #252815.

*columnize-0.3.0 (04 Mar 2009)

  04 Mar 2009; Hans de Graaff <graaff@gentoo.org> +columnize-0.3.0.ebuild:
  Version bump: Fix bad bug in arranging horizontally

*columnize-0.2.1 (02 Jan 2009)

  02 Jan 2009; Hans de Graaff <graaff@gentoo.org> +columnize-0.2.1.ebuild:
  Version bump: Add ability to run columns horizontally

*columnize-0.2 (28 Dec 2008)

  28 Dec 2008; Hans de Graaff <graaff@gentoo.org> +metadata.xml,
  +columnize-0.2.ebuild:
  Initial import. New dependency of dev-ruby/ruby-debug.

