Sha256: 65de227ddf741d6bf5d87ede652ab830da51676039a52d21b210c74652a40ab8

Contents?: true

Size: 816 Bytes

Versions: 5

Compression:

Stored size: 816 Bytes

Contents

require_relative './response_builder'
require_relative './card'

module Ralyxa
  class Handler
    def initialize(request, intent_proc)
      @request     = request
      @intent_proc = intent_proc
    end

    def handle
      instance_eval &@intent_proc
    end

    def respond(response_text, response_details = {}, response_builder = Ralyxa::ResponseBuilder)
      response_builder.build(response_details.merge(response_text: response_text))
    end

    def tell(response_text, response_details = {})
      respond(response_text, response_details.merge(end_session: true))
    end

    def card(title, body, image_url = nil, card_class = Ralyxa::Card)
      card_class.as_hash(title, body, image_url)
    end

    alias ask respond

    attr_reader :request
    private :request, :respond, :tell, :ask
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
ralyxa-1.3.0 lib/ralyxa/handler.rb
ralyxa-1.2.0 lib/ralyxa/handler.rb
ralyxa-1.1.1 lib/ralyxa/handler.rb
ralyxa-1.1.0 lib/ralyxa/handler.rb
ralyxa-1.0.0 lib/ralyxa/handler.rb