Sha256: 0d85af22fe7518636f5e38ad5f14c4a31e737bda94e2a88a976a4136938cf2d9

Contents?: true

Size: 977 Bytes

Versions: 3

Compression:

Stored size: 977 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 permission(&block)
      intents[StandardIntents::PERMISSION] = 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

3 entries across 3 versions & 1 rubygems

Version Path
google_assistant-1.0.0 lib/google_assistant/intent.rb
google_assistant-1.0.0.beta lib/google_assistant/intent.rb
google_assistant-0.2.0 lib/google_assistant/intent.rb