def find(command, options = {}, &block)
      case command
      when Integer
        record(command)
      when Array
        command.map { |i| record(i) }
      when :all
        find_all(options, &block)
      when :first
        find_first(options)
      end
    end
def find(command, options = {}, &block)
      case command
      when Integer
        record(command)
      when Array
        command.map { |i| record(i) }
      when :all
        find_all(options, &block)
      when :first
        find_first(options)
      end
    end
Find records using a simple ActiveRecord-like syntax.

 Examples:
   table = DBF::Table.new 'mydata.dbf'

   # Find record number 5
   table.find(5)

   # Find all records for Keith Morrison
   table.find :all, first_name: "Keith", last_name: "Morrison"

   # Find first record
   table.find :first, first_name: "Keith"

 The <b>command</b> may be a record index, :all, or :first.
 <b>options</b> is optional and, if specified, should be a hash where the
 keys correspond to column names in the database.  The values will be
 matched exactly with the value in the database.  If you specify more
 than one key, all values must match in order for the record to be
 returned.  The equivalent SQL would be "WHERE key1 = 'value1'
 AND key2 = 'value2'".

 @param [Integer, Symbol] command
 @param [optional, Hash] options Hash of search parameters
 @yield [optional, DBF::Record, NilClass]