Class: Socrates::SampleStates::AskForBirthDate

Inherits:
Object
  • Object
show all
Includes:
Core::State
Defined in:
lib/socrates/sample_states.rb

Instance Attribute Summary

Attributes included from Core::State

#context, #data

Instance Method Summary collapse

Methods included from Core::State

#end_conversation, #initialize, #next_state_action, #next_state_id, #repeat_action, #respond, #send_message, #transition_to

Instance Method Details

#askObject



80
81
82
# File 'lib/socrates/sample_states.rb', line 80

def ask
  respond message: "Hi #{first_name}! What's your birth date (e.g. MM/DD/YYYY)?"
end

#listen(message) ⇒ Object



84
85
86
87
88
89
90
91
92
93
94
# File 'lib/socrates/sample_states.rb', line 84

def listen(message)
  begin
    birth_date = Date.strptime(message, "%m/%d/%Y")
  rescue ArgumentError
    respond message: "Whoops, I didn't understand that. What's your birth date (e.g. MM/DD/YYYY)?"
    repeat_action
    return
  end

  transition_to :calculate_age, data: { birth_date: birth_date }
end