Sha256: 7f5fcc69b272df0f556387dbb6f05dab4ffdfa983979e75ef42f579aa99e46e0

Contents?: true

Size: 970 Bytes

Versions: 7

Compression:

Stored size: 970 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$
#++
  # 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

7 entries across 7 versions & 3 rubygems

Version Path
ypdf-writer-1.3.5 lib/pdf/writer/ohash.rb
ypdf-writer-1.3.3 lib/pdf/writer/ohash.rb
ypdf-writer-1.3.2 lib/pdf/writer/ohash.rb
metaskills-pdf-writer-1.2.2 lib/pdf/writer/ohash.rb
metaskills-pdf-writer-1.2.3 lib/pdf/writer/ohash.rb
eventioz-pdf-writer-1.2.4 lib/pdf/writer/ohash.rb
eventioz-pdf-writer-1.0 lib/pdf/writer/ohash.rb