Method: QB::Options::Option#initialize

Defined in:
lib/qb/options/option.rb

#initialize(role, meta, include_path) ⇒ Option

Construction



92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# File 'lib/qb/options/option.rb', line 92

def initialize role, meta, include_path
  @role = role
  @meta = meta.with_indifferent_access
  @include_path = include_path
  
  @meta_name = meta.fetch 'name'
  
  @cli_name = if @include_path.empty?
    QB::Options.cli_ize_name @meta_name
  else
    QB::Options.cli_ize_name "#{ @include_path.join('-') }-#{ @meta_name }"
  end
  
  @var_name = if self.meta?( :var_name )
    # prefer an explicit, exact variable name if provided
    self.meta( :var_name, type: Types.var_name )
  elsif role.var_prefix
    QB::Options.var_ize_name "#{ role.var_prefix }_#{ meta_name }"
  else
    QB::Options.var_ize_name meta_name
  end
  
  # Will be set when we find it out!
  @value = nil
  
  # Initialize `@type` var
  init_type!
end