Created
May 29, 2017 18:59
-
-
Save cia-rana/9daebfbfd6e1e588ae78375f4700f006 to your computer and use it in GitHub Desktop.
「文化祭で人数と来ている方々を記録するコード」のリファクタリング
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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