Module: Tapioca::ConfigHelper

Extended by:
T::Sig
Included in:
Cli
Defined in:
lib/tapioca/helpers/config_helper.rb

Overview

@requires_ancestor: Thor

Defined Under Namespace

Classes: ConfigError, ConfigErrorMessagePart

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#command_nameObject (readonly)

: String



9
10
11
# File 'lib/tapioca/helpers/config_helper.rb', line 9

def command_name
  @command_name
end

#defaultsObject (readonly)

: Thor::CoreExt::HashWithIndifferentAccess



12
13
14
# File 'lib/tapioca/helpers/config_helper.rb', line 12

def defaults
  @defaults
end

Instance Method Details

#initialize(args = [], local_options = {}, config = {}) ⇒ Object

: (?untyped args, ?untyped local_options, ?untyped config) -> void



15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/tapioca/helpers/config_helper.rb', line 15

def initialize(args = [], local_options = {}, config = {})
  # Store current command
  command = config[:current_command]
  command_options = config[:command_options]
  @command_name = command.name #: String
  @merged_options = nil #: Thor::CoreExt::HashWithIndifferentAccess?
  @defaults = Thor::CoreExt::HashWithIndifferentAccess.new #: Thor::CoreExt::HashWithIndifferentAccess

  # Filter command options unless we are handling the help command.
  # This is so that the defaults are printed
  filter_defaults(command_options) unless command_name == "help"

  super
end

#optionsObject

: -> Thor::CoreExt::HashWithIndifferentAccess



31
32
33
34
35
36
37
38
# File 'lib/tapioca/helpers/config_helper.rb', line 31

def options
  @merged_options ||= begin
    original_options = super
    config_options = config_options(original_options)

    merge_options(defaults, config_options, original_options)
  end
end