Skip to content

Instantly share code, notes, and snippets.

@cia-rana
Created May 29, 2017 18:59
Show Gist options
  • Save cia-rana/9daebfbfd6e1e588ae78375f4700f006 to your computer and use it in GitHub Desktop.
Save cia-rana/9daebfbfd6e1e588ae78375f4700f006 to your computer and use it in GitHub Desktop.
「文化祭で人数と来ている方々を記録するコード」のリファクタリング
# http://qiita.com/Thenagao72/items/312b9eb9c78329825502
class Person
attr_accessor :name, :occupation
end
class Questionnaire
def initialize
@people = []
@occupation_table = { 1 => "校内生",
2 => "保護者",
3 => "受験生",
4 => "受験生の保護者",
5 => "その他" }
@occupation_table.default = "その他"
end
def input
person = Person.new
puts "名前を入力してください"
person.name = gets.chomp
puts "あなたは次のうち、どのような方ですか?(数字で入力してください)"
@occupation_table.each do |key, value|
puts "[#{key}]#{value}"
end
person.occupation = @occupation_table[gets.to_i]
@people << person
puts "入力ありがとうございました"
end
def show_all_people
puts "-------------------------"
puts "| No | 名前 | 層 |"
puts "-------------------------"
@people.each.with_index(1) do |person, index|
puts "| %d | %s | %s |" % [index, person.name, person.occupation]
end
puts "-------------------------"
puts "#{@people.size}名来場者が来ました"
end
end
questionnaire = Questionnaire.new
loop do
puts "あなたは初めてこれを入力しますか?(数字で入力してください)"
puts "[1]初めて入力"
puts "[2]もう入力した"
case gets.to_i
when 1
puts "入力に移ります"
questionnaire.input
when 2
puts "ご利用ありがとうございました"
when 72
questionnaire.show_all_people
when 404
puts "記録を終了します"
# ここでquestionnaireの値をCSVなどに保存すると後で何かの役に立つかも...
else
puts "無効な数値です"
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment