Sha256: b90f72dd5fcf0c2707f9c549bde6e229734b7260aaca0591a90464ac49c116f2

Contents?: true

Size: 1.54 KB

Versions: 1

Compression:

Stored size: 1.54 KB

Contents

dir = "#{File.dirname(__FILE__)}/random_data"

require "#{dir}/array_randomizer"
require "#{dir}/booleans"
require "#{dir}/contact_info"
require "#{dir}/dates"
require "#{dir}/locations"
require "#{dir}/names"
require "#{dir}/numbers"
require "#{dir}/text"
require "#{dir}/papers"
require "#{dir}/markov"
require "#{dir}/grammar"
require "#{dir}/version"

class Random
  extend RandomData::Booleans
  extend RandomData::ContactInfo
  extend RandomData::Dates
  extend RandomData::Grammar
  extend RandomData::Locations
  extend RandomData::Names
  extend RandomData::Numbers
  extend RandomData::Text
  extend RandomData::Papers

  # 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"
  
  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
  
  private
  
  def self.find_path(filename)
    $:.each do |path|
      new_path = File.join(path,filename)
      return new_path if File.exist?(new_path)
    end    
    return nil
  end
  
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
malvestuto_random_data-1.5.1 lib/random_data.rb