Sha256: 7cc7c745db2c2552fc3debf96380946ebce7f3f56a8cfb09fa266a8a7f42f4d6

Contents?: true

Size: 890 Bytes

Versions: 1

Compression:

Stored size: 890 Bytes

Contents

# frozen_string_literal: true

module GoogleAssistant
  class StandardIntents

    # Assistant fires MAIN intent for queries like [talk to $action].
    MAIN = "assistant.intent.action.MAIN"

    # Assistant fires TEXT intent when action issues ask intent.
    TEXT = "assistant.intent.action.TEXT"

    # Assistant fires PERMISSION intent when action invokes askForPermission.
    PERMISSION = "assistant.intent.action.PERMISSION"
  end

  class Intent
    attr_reader :intent_string

    def initialize(intent_string)
      @intent_string = intent_string
    end

    def main(&block)
      intents[StandardIntents::MAIN] = block
    end

    def text(&block)
      intents[StandardIntents::TEXT] = block
    end

    def call
      block = intents[intent_string]
      return if block.nil?

      block.call
    end

    private

    def intents
      @_intents ||= {}
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
google_assistant-0.1.0 lib/google_assistant/intent.rb