def unify(field, pattern, value = nil)
      pattern = Regexp.new(pattern) unless pattern.is_a?(Regexp)

      block = if block_given?
        Proc.new
      else
        Proc.new { |e| e[field] = value }
      end

      each_entry do |entry|
        if entry.field?(field) && entry[field].to_s =~ pattern
          block.call(entry)
        end
      end

      self
    end
def unify(field, pattern, value = nil)
      pattern = Regexp.new(pattern) unless pattern.is_a?(Regexp)

      block = if block_given?
        Proc.new
      else
        Proc.new { |e| e[field] = value }
      end

      each_entry do |entry|
        if entry.field?(field) && entry[field].to_s =~ pattern
          block.call(entry)
        end
      end

      self
    end
call-seq:
   b.unify :publisher, /o'?reilly/i, "O'Reilly"
   #=> Unifies the publisher name "O'Reilly" in the bibliography

 Sets all fields matching the passed-in pattern to the supplied value.
 If a block is given, each matching entry will be passed to the block
 instead. Returns the bibliography.