Module: Textus::Action

Defined in:
lib/textus/action/get.rb,
lib/textus/action/put.rb,
lib/textus/action/uid.rb,
lib/textus/action/base.rb,
lib/textus/action/boot.rb,
lib/textus/action/deps.rb,
lib/textus/action/jobs.rb,
lib/textus/action/list.rb,
lib/textus/action/audit.rb,
lib/textus/action/blame.rb,
lib/textus/action/drain.rb,
lib/textus/action/pulse.rb,
lib/textus/action/rdeps.rb,
lib/textus/action/where.rb,
lib/textus/action/accept.rb,
lib/textus/action/doctor.rb,
lib/textus/action/key_mv.rb,
lib/textus/action/reject.rb,
lib/textus/action/data_mv.rb,
lib/textus/action/enqueue.rb,
lib/textus/action/propose.rb,
lib/textus/action/published.rb,
lib/textus/action/rule_lint.rb,
lib/textus/action/rule_list.rb,
lib/textus/action/key_delete.rb,
lib/textus/action/write_verb.rb,
lib/textus/action/rule_explain.rb,
lib/textus/action/key_mv_prefix.rb,
lib/textus/action/pulse/scanner.rb,
lib/textus/action/schema_envelope.rb,
lib/textus/action/key_delete_prefix.rb

Defined Under Namespace

Classes: Accept, Audit, Base, Blame, Boot, DataMv, Deps, Doctor, Drain, Enqueue, Get, Jobs, KeyDelete, KeyDeletePrefix, KeyMv, KeyMvPrefix, List, Propose, Published, Pulse, Put, Rdeps, Reject, RuleExplain, RuleLint, RuleList, SchemaEnvelope, Uid, Where, WriteVerb

Constant Summary collapse

VERBS =

Verb symbol → Action class mapping. Replaces Textus::Dispatcher::VERBS.

{
  put: Textus::Action::Put,
  propose: Textus::Action::Propose,
  key_delete: Textus::Action::KeyDelete,
  key_mv: Textus::Action::KeyMv,
  accept: Textus::Action::Accept,
  reject: Textus::Action::Reject,
  enqueue: Textus::Action::Enqueue,
  get: Textus::Action::Get,
  list: Textus::Action::List,
  where: Textus::Action::Where,
  uid: Textus::Action::Uid,
  blame: Textus::Action::Blame,
  audit: Textus::Action::Audit,
  # materialize, refresh, sweep are Worker-only — not in VERBS
  deps: Textus::Action::Deps,
  rdeps: Textus::Action::Rdeps,
  pulse: Textus::Action::Pulse,
  rule_explain: Textus::Action::RuleExplain,
  rule_list: Textus::Action::RuleList,
  published: Textus::Action::Published,
  schema_show: Textus::Action::SchemaEnvelope,
  doctor: Textus::Action::Doctor,
  boot: Textus::Action::Boot,
  jobs: Textus::Action::Jobs,
  data_mv: Textus::Action::DataMv,
  key_mv_prefix: Textus::Action::KeyMvPrefix,
  key_delete_prefix: Textus::Action::KeyDeletePrefix,
  drain: Textus::Action::Drain,
  rule_lint: Textus::Action::RuleLint,
}.freeze

Class Method Summary collapse

Class Method Details

.fetch(type) ⇒ Object

Raises:



13
14
15
16
17
18
19
20
# File 'lib/textus/action/base.rb', line 13

def self.fetch(type)
  return @registry[type] if @registry[type]

  match = @registry.values.find { |k| k.const_defined?(:TYPE, false) && type == k::TYPE }
  raise Textus::UsageError.new("unknown action type: #{type}") unless match

  @registry[type] = match
end

.register(klass) ⇒ Object



9
10
11
# File 'lib/textus/action/base.rb', line 9

def self.register(klass)
  @registry[klass.name.gsub("::", "/").downcase] = klass
end

.registryObject



7
# File 'lib/textus/action/base.rb', line 7

def self.registry = @registry