Module: Tapioca::ConfigHelper

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



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

def command_name
  @command_name
end

#defaultsObject (readonly)

: Thor::CoreExt::HashWithIndifferentAccess



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

def defaults
  @defaults
end

Instance Method Details

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

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



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

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



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

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

    merge_options(defaults, config_options, original_options)
  end
end