Sha256: 6bdc7d64ceb783ce16454bdc3d73aa339f564cd208e506854564c0609b2bf229

Contents?: true

Size: 885 Bytes

Versions: 18

Compression:

Stored size: 885 Bytes

Contents

# frozen_string_literal: true

class CmdletDao
  attr_reader :k_builder

  def initialize(k_builder)
    @k_builder = k_builder
  end

  def all_cmdlets
    data_access
      .category
      .categories.flat_map { |category| read_cmdlets(category[:name]) }
      .compact
      .uniq
      .sort_by { |r| [r[:category], r[:name]] }
  end

  def all_cmdlets_by_category
    grouped_categories = all_cmdlets.group_by { |cmdlet| cmdlet[:category] }
    grouped_categories.keys.map { |category_key| { category: category_key, cmdlets: grouped_categories[category_key] } }
  end

  private

  def read_cmdlets(category_name)
    file_name = k_builder.target_folders.join(:builder_data, 'cmdlets', "#{category_name}.json")

    return JSON.parse(File.read(file_name), symbolize_names: true)[:cmdlets] if File.exist?(file_name)

    puts "Cmdlet file #{file_name} not found"
    nil
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
cmdlet-0.14.0 .builders/director/cmdlet_dao.rb
cmdlet-0.13.2 .builders/director/cmdlet_dao.rb
cmdlet-0.13.1 .builders/director/cmdlet_dao.rb
cmdlet-0.13.0 .builders/director/cmdlet_dao.rb
cmdlet-0.12.5 .builders/director/cmdlet_dao.rb
cmdlet-0.12.4 .builders/director/cmdlet_dao.rb
cmdlet-0.12.3 .builders/director/cmdlet_dao.rb
cmdlet-0.12.2 .builders/director/cmdlet_dao.rb
cmdlet-0.12.1 .builders/director/cmdlet_dao.rb
cmdlet-0.12.0 .builders/director/cmdlet_dao.rb
cmdlet-0.11.0 .builders/director/cmdlet_dao.rb
cmdlet-0.10.1 .builders/director/cmdlet_dao.rb
cmdlet-0.10.0 .builders/director/cmdlet_dao.rb
cmdlet-0.9.2 .builders/director/cmdlet_dao.rb
cmdlet-0.9.1 .builders/director/cmdlet_dao.rb
cmdlet-0.9.0 .builders/director/cmdlet_dao.rb
cmdlet-0.8.0 .builders/director/cmdlet_dao.rb
cmdlet-0.7.1 .builders/director/cmdlet_dao.rb