Sha256: 4e2df15261908d21d50c91c4656f6301824d235d6e6a8d9c043b5f2863484949

Contents?: true

Size: 670 Bytes

Versions: 3

Compression:

Stored size: 670 Bytes

Contents

# frozen_string_literal: true

module GoogleAssistant
  class Argument
    attr_reader :name, :raw_text, :text_value

    def self.from(opts)
      case opts["name"]
      when "permission_granted"
        PermissionArgument.new(opts)
      when "text"
        TextArgument.new(opts)
      else
        Argument.new(opts)
      end
    end

    def initialize(opts)
      @name = opts["name"]
      @raw_text = opts["raw_text"]
      @text_value = opts["text_value"]
    end
  end

  class TextArgument < Argument
    alias_method :value, :text_value
  end

  class PermissionArgument < Argument

    def permission_granted?
      text_value == "true"
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

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