class Fusuma::Plugin::Events::Records::IndexRecord
have index
Vector Record
def exist_on_conf?(index = @index)
-
searcher(Config::Searcher) --
def exist_on_conf?(index = @index) Config.search(index) end
def initialize(index:, position: :body, trigger: :oneshot, args: {})
-
trigger(Symbol) -- [:oneshot, :repeat] -
position(Symbol) -- [:prefix, :body, :surfix] -
index(Config::Index) --
def initialize(index:, position: :body, trigger: :oneshot, args: {}) super() @index = index @position = position @trigger = trigger @args = args end
def mergable?
def mergable? @position == :body end
def merge(records:, index: @index)
-
(NilClass)- when merge is not succeeded -
(IndexRecord)- when merge is succeeded
Parameters:
-
records(Array) --
def merge(records:, index: @index) # FIXME: cache raise "position is NOT body: #{self}" unless mergable? if records.empty? if Config.find_execute_key(index) @index = index return self end return nil end record = records.shift new_index = case record.position when :surfix Config::Index.new([*index.keys, *record.index.keys]) else raise "invalid index position: #{record}" end return unless exist_on_conf?(new_index) merge(records: records, index: new_index) end
def trigger_priority
-
(Integer)-
def trigger_priority case @trigger when :oneshot 10 when :repeat 100 else 1000 end end
def type
def type :index end