# class Bob class Bob def self.hey(remark) response = Response.new(remark) if silence?(remark) response.silence elsif shout?(remark) response.shouted_at elsif question?(remark) response.question else response.default end end 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 end