Skip to content

Instantly share code, notes, and snippets.

@trevmex
Created October 1, 2010 17:12
Show Gist options
  • Select an option

  • Save trevmex/606512 to your computer and use it in GitHub Desktop.

Select an option

Save trevmex/606512 to your computer and use it in GitHub Desktop.
require 'ostruct'
players = Array.new
def new_player(roster, options)
player = OpenStruct.new
player.name = options[:name]
player.sex = options[:sex]
roster.push(player)
end
new_player(players, {:name => "Kirby", :sex => :male})
new_player(players, {:name => "Trevor", :sex => :male})
new_player(players, {:name => "David", :sex => :male})
new_player(players, {:name => "Lindsay", :sex => :female})
players
def players.valid_roster?
male_counter = 0
self.each do |player|
if player.sex == :male
male_counter = male_counter + 1
if male_counter > 2
return false
end
else # player.sex == :female
male_counter = 0
end
end
true
end
players.valid_roster? # should be false
def players.fix_gender_order
unless self.valid_roster?
males = Array.new
females = Array.new
self.each do |player|
if player.sex == :male
males.push(player)
else # player.sex == :female
females.push(player)
end
end
new_roster = Array.new
#... This is as far as we got.
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment