Method: Random.method_missing

Defined in:
lib/random_data_despegar.rb

.method_missing(methodname) ⇒ Object

Looks for a file in the load path with the name methodname.dat, reads the lines from that file, then gives you a random line from that file. Raises an error if it can’t find the file. For example, given a file named “horse.dat” in your load path: >> Random.horse

> “Stallion”

>> Random.horse

> “Pony”

>> Random.horse

> “Mare”

>> Random.horse

> “Clydesdale”

>> Random.horse

> “Stallion”

>> Random.horse

> “Mare”



46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/random_data_despegar.rb', line 46

def self.method_missing(methodname)
  thing = "#{methodname}.dat"
  filename = find_path(thing)

  if filename.nil?
    super
  else
    array = []
    File.open(filename, 'r') { |f| array = f.read.split(/[\r\n]+/) }
    return array.rand
  end
end