Class: ApplicationAction

Inherits:
Object
  • Object
show all
Defined in:
lib/generators/ask/install/templates/application_action.rb

Overview

Base class for your application's actions.

Subclass this to define actions — operations callable from any channel (web, Slack, voice) by name:

module Chats
class Create < ApplicationAction
  def call
    chat = context.channel.start_new_chat!
    Ask::Actions::Result.ok(message: "Chat created", data: { chat: chat })
  end
end
end

Then dispatch from anywhere:

Ask::Actions.dispatch(action: "chats.create", context: context, params: {})

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(context:, params: {}) ⇒ ApplicationAction

Returns a new instance of ApplicationAction.



25
26
27
28
# File 'lib/generators/ask/install/templates/application_action.rb', line 25

def initialize(context:, params: {})
  @context = context
  @params = params
end

Class Method Details

.call(context:, params: {}) ⇒ Object



21
22
23
# File 'lib/generators/ask/install/templates/application_action.rb', line 21

def self.call(context:, params: {})
  new(context: context, params: params).call
end