From: nobuyoshi nakada Date: 2005-11-02T11:42:23+09:00 Subject: Re: How can I avoid this boring code? Hi, At Wed, 2 Nov 2005 11:17:08 +0900, Sam Kong wrote in [ruby-talk:163688]: > require 'dbi' > Person = Struct.new(:person_id, :last_name, :first_name, :home_phone, :work_phone, :address, :city, :state, :zip) class Person def self.load_fields(row) members.collect {|n| row.by_field(n)} end # may be preferable. def self.load(row) new(*load_fields(row)) end def initialize(*args) if args.size == 1 and DBI::Row === (row = args[0]) args = self.class.load_fields(row) end super(*args) end end I'm uncertain if DBI may have more convenient method. -- Nobu Nakada