On Feb 5, 2010, at 9:33 AM, Wood Yee wrote:

> Hi! TOTAL noob question here but that's what I am. I'm trying to create
> a program where I type the area code, hit enter, and see it's state. I
> have a list of codes per state and it's rather large. How's the best way
> to do this? I don't want to use a database (MySQL) for this if that's
> possible. I've tried using if statements and hashes but didn't know if
> there's a better way. I've searched for a gem that's already written but
> didn't have any luck and I've googled to see if there's source code for
> this already but couldn't find anything. Any ideas? Thanks!

There are lots of ways to do this.  Maybe this script will give you
some ideas. This uses Ruby's ability to embed data at the end of
the script but you could also store the data in an external file. 

$ cat areacode.rb
BEGIN {
  @info = {}
  DATA.each_line do |x|
    code, state = x.split
    @info[code] = state
  end
  @state = Hash.new { |h,k| @info[k.to_s] }
}

[203,914,213].each { |c|
  puts "area code #{c} is in #{@state[c]}"
}

# Put your area code data below
__END__
203 CT
860 CT
914 NY
213 CA
$ ruby areacode.rb
area code 203 is in CT
area code 914 is in NY
area code 213 is in CA