module Fictium::RSpec::Autocomplete::Action

Constants

ACTION_NAME

Public Class Methods

description_attributes(action, description) click to toggle source
# File lib/fictium/rspec/autocomplete/action.rb, line 8
def description_attributes(action, description)
  name = find_action_name(description)&.downcase
  find_summary(action, name)
end

Private Class Methods

descriptors() click to toggle source
# File lib/fictium/rspec/autocomplete/action.rb, line 25
def descriptors
  @descriptors ||= Fictium.configuration.default_action_descriptors || {}
end
find_action_name(description) click to toggle source
# File lib/fictium/rspec/autocomplete/action.rb, line 29
def find_action_name(description)
  match = description.match(ACTION_NAME)
  match.presence && match[1]
end
find_summary(action, name) click to toggle source
# File lib/fictium/rspec/autocomplete/action.rb, line 15
def find_summary(action, name)
  return if name.blank?

  key = :"default_summary_for_#{name}"
  summary_method = descriptors[key] || Fictium.configuration.unknown_action_descriptor
  one_argument = summary_method.arity == 1
  action.summary =
    one_argument ? summary_method.call(action) : summary_method.call(action, name)
end