Class: Textus::Action::KeyDeletePrefix
- Defined in:
- lib/textus/action/key_delete_prefix.rb
Class Method Summary collapse
Methods inherited from Base
Methods included from Contract::DSL
#arg, #cli, #cli_stdin, #contract, #contract?, #summary, #surfaces, #verb, #view
Class Method Details
.call(container:, call:, prefix:, dry_run: false) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/textus/action/key_delete_prefix.rb', line 17 def self.call(container:, call:, prefix:, dry_run: false) return Failure(code: :usage_error, message: "prefix required") if prefix.nil? || prefix.empty? leaves = Textus::Action::List.leaf_keys(container: container, prefix: prefix) warnings = leaves.empty? ? ["no keys under #{prefix}"] : [] steps = leaves.map { |key| { "op" => "delete", "key" => key } } plan = Textus::Store::Jobs::Plan.new(steps: steps, warnings: warnings) return Success(plan) if dry_run steps.each do |step| Value::Result.unwrap(Textus::Action::KeyDelete.call(container: container, call: call, key: step["key"])) end Success(plan) end |