Class: Textus::Protocol::Handlers::Ops::BulkPlanner
- Inherits:
-
Object
- Object
- Textus::Protocol::Handlers::Ops::BulkPlanner
- Defined in:
- lib/textus/protocol/handlers/ops/bulk_planner.rb
Defined Under Namespace
Classes: Plan
Instance Method Summary collapse
Instance Method Details
#plan_delete(prefix:, ctx:) ⇒ Object
26 27 28 29 30 31 32 33 |
# File 'lib/textus/protocol/handlers/ops/bulk_planner.rb', line 26 def plan_delete(prefix:, ctx:) raise Textus::UsageError.new("prefix required") unless prefix && !prefix.empty? leaves = ctx.list(prefix:) warnings = leaves.empty? ? ["no keys under #{prefix}"] : [] steps = leaves.map { |row| { "op" => "delete", "key" => row["key"] } } Plan.new(steps:, warnings:) end |
#plan_mv(from_prefix:, to_prefix:, ctx:) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/textus/protocol/handlers/ops/bulk_planner.rb', line 12 def plan_mv(from_prefix:, to_prefix:, ctx:) raise Textus::UsageError.new("from_prefix and to_prefix required") unless from_prefix && to_prefix leaves = ctx.list(prefix: from_prefix) raise Textus::UsageError.new("from_prefix is a leaf — use mv") if leaves.any? { |r| r["key"] == from_prefix } warnings = leaves.empty? ? ["no keys under #{from_prefix}"] : [] steps = leaves.map do |row| tail = row["key"].delete_prefix("#{from_prefix}.") { "op" => "mv", "from" => row["key"], "to" => "#{to_prefix}.#{tail}" } end Plan.new(steps:, warnings:) end |