exercism/ruby/bob/bob.rb

55 lines
838 B
Ruby
Raw Normal View History

2018-10-15 23:12:01 -04:00
# class Bob
2018-09-19 11:01:30 -04:00
class Bob
def self.hey(remark)
2018-10-15 23:12:01 -04:00
response = Response.new(remark)
if silence?(remark)
response.silence
elsif shout?(remark)
response.shouted_at
elsif question?(remark)
response.question
2018-09-19 11:01:30 -04:00
else
2018-10-15 23:12:01 -04:00
response.default
2018-09-19 11:01:30 -04:00
end
end
2018-10-15 23:12:01 -04:00
def self.silence?(remark)
remark.strip.empty?
end
def self.shout?(remark)
remark.upcase == remark && remark =~ /[A-Za-z]+/
end
def self.question?(remark)
remark.strip.end_with?('?')
end
end
# Response
class Response
def initialize(remark)
@remark = remark.strip
end
def silence
'Fine. Be that way!'
end
def shouted_at
if @remark.end_with?('?')
"Calm down, I know what I'm doing!"
else
'Whoa, chill out!'
end
end
def question
'Sure.'
end
def default
'Whatever.'
end
2018-09-19 11:01:30 -04:00
end