Sha256: 89472935c35b81cfcd4039b70bd607edb496e02a25389ea858e13a833da17ff1

Contents?: true

Size: 1012 Bytes

Versions: 29

Compression:

Stored size: 1012 Bytes

Contents

#--
# PDF::Writer for Ruby.
#   http://rubyforge.org/projects/ruby-pdf/
#   Copyright 2003 - 2005 Austin Ziegler.
#
#   Licensed under a MIT-style licence. See LICENCE in the main distribution
#   for full licensing information.
#
# $Id: ohash.rb 50 2005-05-16 03:59:21Z austin $
#++
  # Based on [ruby-talk:20551]. Updated to (hopefully) be 1.8 friendly.
class PDF::Writer::OHash < Hash
  alias_method :store, :[]=
  alias_method :each_pair, :each

  def initialize(*args)
    @keys = []
    super
  end

  def []=(key, val)
    @keys << key unless has_key?(key)
    super
  end

  def delete(key)
    @keys.delete(key) if has_key?(key)
    super
  end

  def each
    @keys.each { |k| yield k, self[k] }
  end

  def each_key
    @keys.each { |k| yield k }
  end

  def each_value
    @keys.each { |k| yield self[k] }
  end

  def first
    self[@keys[0]]
  end

  def last
    self[@keys[-1]]
  end

  def first?(item)
    self[@keys[0]] == item
  end

  def last?(item)
    self[@keys[-1]] == item
  end
end

Version data entries

29 entries across 29 versions & 4 rubygems

Version Path
rhodes-7.6.0 lib/extensions/pdf-writer/pdf/writer/ohash.rb
rhodes-7.5.1 lib/extensions/pdf-writer/pdf/writer/ohash.rb
rhodes-7.4.1 lib/extensions/pdf-writer/pdf/writer/ohash.rb
rhodes-7.1.17 lib/extensions/pdf-writer/pdf/writer/ohash.rb
rhodes-6.2.0 lib/extensions/pdf-writer/pdf/writer/ohash.rb
rhodes-6.0.11 lib/extensions/pdf-writer/pdf/writer/ohash.rb
rhodes-5.5.18 lib/extensions/pdf-writer/pdf/writer/ohash.rb
rhodes-5.5.17 lib/extensions/pdf-writer/pdf/writer/ohash.rb
rhodes-5.5.15 lib/extensions/pdf-writer/pdf/writer/ohash.rb
rhodes-5.5.0.22 lib/extensions/pdf-writer/pdf/writer/ohash.rb
rhodes-5.5.2 lib/extensions/pdf-writer/pdf/writer/ohash.rb
rhodes-5.5.0.7 lib/extensions/pdf-writer/pdf/writer/ohash.rb
rhodes-5.5.0.3 lib/extensions/pdf-writer/pdf/writer/ohash.rb
rhodes-5.5.0 lib/extensions/pdf-writer/pdf/writer/ohash.rb
tauplatform-1.0.3 lib/extensions/pdf-writer/pdf/writer/ohash.rb
tauplatform-1.0.2 lib/extensions/pdf-writer/pdf/writer/ohash.rb
tauplatform-1.0.1 lib/extensions/pdf-writer/pdf/writer/ohash.rb
rhodes-3.5.1.12 lib/extensions/pdf-writer/pdf/writer/ohash.rb
rhodes-3.3.5 lib/extensions/pdf-writer/pdf/writer/ohash.rb
rhodes-3.4.2 lib/extensions/pdf-writer/pdf/writer/ohash.rb