class SatoriLikeDictionaryIntegratedEvents

satori like template integrated events base class

Public Class Methods

new() click to toggle source

initialize events

# File lib/satori_like_dictionary.rb, line 295
def initialize
  @satori_like_dictionary = SatoriLikeDictionary.new(self)
end

Public Instance Methods

OnChoiceSelect(request) click to toggle source

“_” compatible OnChoiceSelect @param [OpenStruct] request request hash @return [String|OpenStruct] result

# File lib/satori_like_dictionary.rb, line 302
def OnChoiceSelect(request)
  public_send(request.Reference0, request)
end

Private Instance Methods

aitalk(request) click to toggle source

call a “ai talk” entry @param [OpenStruct] request request hash @return [String|OpenStruct] result

# File lib/satori_like_dictionary.rb, line 351
def aitalk(request)
  @satori_like_dictionary.aitalk(request)
end
load_all_dictionary(directory, ext = 'txt') click to toggle source

load a file as satori like dictionary @param [String] directory path to dictionary @param [String] ext file extension filter

# File lib/satori_like_dictionary.rb, line 323
def load_all_dictionary(directory, ext = 'txt')
  @satori_like_dictionary.load_all(directory, ext)
end
load_file(file) click to toggle source

load all files in a directory as satori like dictionaries @param [String] file path to file

# File lib/satori_like_dictionary.rb, line 316
def load_file(file)
  @satori_like_dictionary.load(file)
end
parse_string(source) click to toggle source

parse and register satori like dictionary source @param [String] source satori like dictionary source

# File lib/satori_like_dictionary.rb, line 310
def parse_string(source)
  @satori_like_dictionary.parse(source)
end
talk(request, method = nil) click to toggle source

call a named entry @param [OpenStruct] request request hash @param [String] method from method name @return [String|OpenStruct] result

# File lib/satori_like_dictionary.rb, line 331
def talk(request, method = nil)
  unless method
    # detect caller method name (= request ID)
    if RUBY_ENGINE == 'opal'
      matched = caller[1].match(/\[as \$(.*?)\]/)
      unless matched
        matched = caller[1].match(/^\s*at \S*\$([^$]+?)\b/)
      end
      return unless matched
      method = matched[1]
    else
      method = caller_locations.first.label
    end
  end
  @satori_like_dictionary.talk(method, request)
end