Sha256: bdb8addf5babb61abec4144d5808d36150a679de085b4bee393798f9637e105b

Contents?: true

Size: 1.05 KB

Versions: 6

Compression:

Stored size: 1.05 KB

Contents

# frozen_string_literal: true

# takeltau bit require export
module BitRequireExport
  # Backend method for bit require export.
  def bit_require_export
    log.debug 'Running bit require export'

    return false unless configured? %w[project_root_dir]

    components = _bit_require_lib_get_components
    bitrequire_yml = _bit_require_export_get_bitrequire_yml components

    log.debug "bitrequire.yml of this project:\n#{bitrequire_yml}"
    bitrequire_yml
  end

  private

  # Create contents of bitrequire yaml file.
  # rubocop:disable Metrics/AbcSize
  def _bit_require_export_get_bitrequire_yml(components)
    bitrequire = {}
    components.each do |component|
      scope = component['id'].clone.gsub!(%r{/.*}, '')
      name = component['id'].clone.gsub!(%r{#{scope}/}, '')
      bitrequire['scopes'] = { scope => [] } if bitrequire['scopes'].nil?
      bitrequire['scopes'][scope] = [] unless bitrequire['scopes'].key? scope
      bitrequire['scopes'][scope] << { 'name' => name }
    end
    hash_to_yaml bitrequire
  end
  # rubocop:enable Metrics/AbcSize
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
takeltau-0.34.15 lib/takeltau/bit/require/export.rb
takeltau-0.34.14 lib/takeltau/bit/require/export.rb
takeltau-0.34.13 lib/takeltau/bit/require/export.rb
takeltau-0.34.12 lib/takeltau/bit/require/export.rb
takeltau-0.34.11 lib/takeltau/bit/require/export.rb
takeltau-0.34.9 lib/takeltau/bit/require/export.rb