Class: Textus::Action::List

Inherits:
Base
  • Object
show all
Defined in:
lib/textus/action/list.rb

Class Method Summary collapse

Methods inherited from Base

inherited, proposal_from

Methods included from Contract::DSL

#arg, #cli, #cli_stdin, #contract, #contract?, #summary, #surfaces, #verb, #view

Class Method Details

.call(container:, call: nil, prefix: nil, lane: nil) ⇒ Object

rubocop:disable Lint/UnusedMethodArgument



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

def self.call(container:, call: nil, prefix: nil, lane: nil) # rubocop:disable Lint/UnusedMethodArgument
  manifest = container.manifest
  rows = manifest.resolver.enumerate(prefix: prefix)
  rows = rows.select { |row| row[:manifest_entry].lane == lane } if lane
  Success(rows.map { |row| { "key" => row[:key], "lane" => row[:manifest_entry].lane, "path" => row[:path] } })
end

.leaf_keys(container:, prefix: nil, lane: nil) ⇒ Object



22
23
24
25
# File 'lib/textus/action/list.rb', line 22

def self.leaf_keys(container:, prefix: nil, lane: nil)
  rows = Value::Result.unwrap(call(container: container, prefix: prefix, lane: lane))
  rows.map { |row| row.is_a?(Hash) ? (row["key"] || row[:key]) : row }
end