Class: BBK::Utils::Cli::Category

Inherits:
Struct
  • Object
show all
Defined in:
lib/bbk/utils/cli/docs/builder.rb

Overview

Структура категории для группировки конфигураций

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**kwargs) ⇒ Category

Инициализирует категорию

Parameters:

  • kwargs (Hash)

    параметры категории

Options Hash (**kwargs):

  • :id (String)

    идентификатор категории

  • :name (String)

    название категории

  • :desc (String)

    описание категории

  • :envs (Array<String>)

    переменные окружения

  • :order (Numeric)

    порядок сортировки

  • :patterns (Array<String>)

    шаблоны поиска

  • :cfgs (Array<Hash>)

    конфигурации



112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/bbk/utils/cli/docs/builder.rb', line 112

def initialize(**kwargs)
  kwargs[:id] = kwargs[:id].to_s
  kwargs[:name] = kwargs[:name].to_s || kwargs[:id].capitalize
  kwargs[:desc] = kwargs[:desc].to_s

  kwargs[:patterns] ||= []
  kwargs[:envs] ||= []
  kwargs[:order] ||= Float::INFINITY
  kwargs[:cfgs] ||= []

  super
end

Instance Attribute Details

#cfgsArray<Hash> (readonly)

Returns конфигурации категории.

Returns:

  • (Array<Hash>)

    конфигурации категории



101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
# File 'lib/bbk/utils/cli/docs/builder.rb', line 101

Category = Struct.new(:id, :name, :desc, :envs, :order, :patterns, :cfgs, keyword_init: true) do
  # Инициализирует категорию
  #
  # @param kwargs [Hash] параметры категории
  # @option kwargs [String] :id идентификатор категории
  # @option kwargs [String] :name название категории
  # @option kwargs [String] :desc описание категории
  # @option kwargs [Array<String>] :envs переменные окружения
  # @option kwargs [Numeric] :order порядок сортировки
  # @option kwargs [Array<String>] :patterns шаблоны поиска
  # @option kwargs [Array<Hash>] :cfgs конфигурации
  def initialize(**kwargs)
    kwargs[:id] = kwargs[:id].to_s
    kwargs[:name] = kwargs[:name].to_s || kwargs[:id].capitalize
    kwargs[:desc] = kwargs[:desc].to_s

    kwargs[:patterns] ||= []
    kwargs[:envs] ||= []
    kwargs[:order] ||= Float::INFINITY
    kwargs[:cfgs] ||= []

    super
  end

  # Проверяет соответствие имени переменной окружающей категории
  #
  # @param env_name [String, Symbol] имя переменной окружения
  # @return [Boolean] true если соответствует категории
  def match?(env_name)
    return true if envs.any? { |e| e == env_name.to_s.strip }

    return true if patterns.any? { |p| env_name.to_s.strip.start_with?(p) }

    false
  end

  # Добавляет конфигурацию в категорию
  #
  # @param cfg [Hash] конфигурация для добавления
  # @return [self] возвращает сам объект для цепочного вызова
  def add(cfg)
    cfgs << cfg
    self.cfgs = cfgs.sort_by { |c| c[:env] }
    self
  end
end

#descString (readonly)

Returns описание категории.

Returns:

  • (String)

    описание категории



101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
# File 'lib/bbk/utils/cli/docs/builder.rb', line 101

Category = Struct.new(:id, :name, :desc, :envs, :order, :patterns, :cfgs, keyword_init: true) do
  # Инициализирует категорию
  #
  # @param kwargs [Hash] параметры категории
  # @option kwargs [String] :id идентификатор категории
  # @option kwargs [String] :name название категории
  # @option kwargs [String] :desc описание категории
  # @option kwargs [Array<String>] :envs переменные окружения
  # @option kwargs [Numeric] :order порядок сортировки
  # @option kwargs [Array<String>] :patterns шаблоны поиска
  # @option kwargs [Array<Hash>] :cfgs конфигурации
  def initialize(**kwargs)
    kwargs[:id] = kwargs[:id].to_s
    kwargs[:name] = kwargs[:name].to_s || kwargs[:id].capitalize
    kwargs[:desc] = kwargs[:desc].to_s

    kwargs[:patterns] ||= []
    kwargs[:envs] ||= []
    kwargs[:order] ||= Float::INFINITY
    kwargs[:cfgs] ||= []

    super
  end

  # Проверяет соответствие имени переменной окружающей категории
  #
  # @param env_name [String, Symbol] имя переменной окружения
  # @return [Boolean] true если соответствует категории
  def match?(env_name)
    return true if envs.any? { |e| e == env_name.to_s.strip }

    return true if patterns.any? { |p| env_name.to_s.strip.start_with?(p) }

    false
  end

  # Добавляет конфигурацию в категорию
  #
  # @param cfg [Hash] конфигурация для добавления
  # @return [self] возвращает сам объект для цепочного вызова
  def add(cfg)
    cfgs << cfg
    self.cfgs = cfgs.sort_by { |c| c[:env] }
    self
  end
end

#envsArray<String> (readonly)

Returns список переменных окружения категории.

Returns:

  • (Array<String>)

    список переменных окружения категории



101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
# File 'lib/bbk/utils/cli/docs/builder.rb', line 101

Category = Struct.new(:id, :name, :desc, :envs, :order, :patterns, :cfgs, keyword_init: true) do
  # Инициализирует категорию
  #
  # @param kwargs [Hash] параметры категории
  # @option kwargs [String] :id идентификатор категории
  # @option kwargs [String] :name название категории
  # @option kwargs [String] :desc описание категории
  # @option kwargs [Array<String>] :envs переменные окружения
  # @option kwargs [Numeric] :order порядок сортировки
  # @option kwargs [Array<String>] :patterns шаблоны поиска
  # @option kwargs [Array<Hash>] :cfgs конфигурации
  def initialize(**kwargs)
    kwargs[:id] = kwargs[:id].to_s
    kwargs[:name] = kwargs[:name].to_s || kwargs[:id].capitalize
    kwargs[:desc] = kwargs[:desc].to_s

    kwargs[:patterns] ||= []
    kwargs[:envs] ||= []
    kwargs[:order] ||= Float::INFINITY
    kwargs[:cfgs] ||= []

    super
  end

  # Проверяет соответствие имени переменной окружающей категории
  #
  # @param env_name [String, Symbol] имя переменной окружения
  # @return [Boolean] true если соответствует категории
  def match?(env_name)
    return true if envs.any? { |e| e == env_name.to_s.strip }

    return true if patterns.any? { |p| env_name.to_s.strip.start_with?(p) }

    false
  end

  # Добавляет конфигурацию в категорию
  #
  # @param cfg [Hash] конфигурация для добавления
  # @return [self] возвращает сам объект для цепочного вызова
  def add(cfg)
    cfgs << cfg
    self.cfgs = cfgs.sort_by { |c| c[:env] }
    self
  end
end

#idString (readonly)

Returns идентификатор категории.

Returns:

  • (String)

    идентификатор категории



101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
# File 'lib/bbk/utils/cli/docs/builder.rb', line 101

Category = Struct.new(:id, :name, :desc, :envs, :order, :patterns, :cfgs, keyword_init: true) do
  # Инициализирует категорию
  #
  # @param kwargs [Hash] параметры категории
  # @option kwargs [String] :id идентификатор категории
  # @option kwargs [String] :name название категории
  # @option kwargs [String] :desc описание категории
  # @option kwargs [Array<String>] :envs переменные окружения
  # @option kwargs [Numeric] :order порядок сортировки
  # @option kwargs [Array<String>] :patterns шаблоны поиска
  # @option kwargs [Array<Hash>] :cfgs конфигурации
  def initialize(**kwargs)
    kwargs[:id] = kwargs[:id].to_s
    kwargs[:name] = kwargs[:name].to_s || kwargs[:id].capitalize
    kwargs[:desc] = kwargs[:desc].to_s

    kwargs[:patterns] ||= []
    kwargs[:envs] ||= []
    kwargs[:order] ||= Float::INFINITY
    kwargs[:cfgs] ||= []

    super
  end

  # Проверяет соответствие имени переменной окружающей категории
  #
  # @param env_name [String, Symbol] имя переменной окружения
  # @return [Boolean] true если соответствует категории
  def match?(env_name)
    return true if envs.any? { |e| e == env_name.to_s.strip }

    return true if patterns.any? { |p| env_name.to_s.strip.start_with?(p) }

    false
  end

  # Добавляет конфигурацию в категорию
  #
  # @param cfg [Hash] конфигурация для добавления
  # @return [self] возвращает сам объект для цепочного вызова
  def add(cfg)
    cfgs << cfg
    self.cfgs = cfgs.sort_by { |c| c[:env] }
    self
  end
end

#nameString (readonly)

Returns название категории.

Returns:

  • (String)

    название категории



101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
# File 'lib/bbk/utils/cli/docs/builder.rb', line 101

Category = Struct.new(:id, :name, :desc, :envs, :order, :patterns, :cfgs, keyword_init: true) do
  # Инициализирует категорию
  #
  # @param kwargs [Hash] параметры категории
  # @option kwargs [String] :id идентификатор категории
  # @option kwargs [String] :name название категории
  # @option kwargs [String] :desc описание категории
  # @option kwargs [Array<String>] :envs переменные окружения
  # @option kwargs [Numeric] :order порядок сортировки
  # @option kwargs [Array<String>] :patterns шаблоны поиска
  # @option kwargs [Array<Hash>] :cfgs конфигурации
  def initialize(**kwargs)
    kwargs[:id] = kwargs[:id].to_s
    kwargs[:name] = kwargs[:name].to_s || kwargs[:id].capitalize
    kwargs[:desc] = kwargs[:desc].to_s

    kwargs[:patterns] ||= []
    kwargs[:envs] ||= []
    kwargs[:order] ||= Float::INFINITY
    kwargs[:cfgs] ||= []

    super
  end

  # Проверяет соответствие имени переменной окружающей категории
  #
  # @param env_name [String, Symbol] имя переменной окружения
  # @return [Boolean] true если соответствует категории
  def match?(env_name)
    return true if envs.any? { |e| e == env_name.to_s.strip }

    return true if patterns.any? { |p| env_name.to_s.strip.start_with?(p) }

    false
  end

  # Добавляет конфигурацию в категорию
  #
  # @param cfg [Hash] конфигурация для добавления
  # @return [self] возвращает сам объект для цепочного вызова
  def add(cfg)
    cfgs << cfg
    self.cfgs = cfgs.sort_by { |c| c[:env] }
    self
  end
end

#orderNumeric (readonly)

Returns порядок сортировки.

Returns:

  • (Numeric)

    порядок сортировки



101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
# File 'lib/bbk/utils/cli/docs/builder.rb', line 101

Category = Struct.new(:id, :name, :desc, :envs, :order, :patterns, :cfgs, keyword_init: true) do
  # Инициализирует категорию
  #
  # @param kwargs [Hash] параметры категории
  # @option kwargs [String] :id идентификатор категории
  # @option kwargs [String] :name название категории
  # @option kwargs [String] :desc описание категории
  # @option kwargs [Array<String>] :envs переменные окружения
  # @option kwargs [Numeric] :order порядок сортировки
  # @option kwargs [Array<String>] :patterns шаблоны поиска
  # @option kwargs [Array<Hash>] :cfgs конфигурации
  def initialize(**kwargs)
    kwargs[:id] = kwargs[:id].to_s
    kwargs[:name] = kwargs[:name].to_s || kwargs[:id].capitalize
    kwargs[:desc] = kwargs[:desc].to_s

    kwargs[:patterns] ||= []
    kwargs[:envs] ||= []
    kwargs[:order] ||= Float::INFINITY
    kwargs[:cfgs] ||= []

    super
  end

  # Проверяет соответствие имени переменной окружающей категории
  #
  # @param env_name [String, Symbol] имя переменной окружения
  # @return [Boolean] true если соответствует категории
  def match?(env_name)
    return true if envs.any? { |e| e == env_name.to_s.strip }

    return true if patterns.any? { |p| env_name.to_s.strip.start_with?(p) }

    false
  end

  # Добавляет конфигурацию в категорию
  #
  # @param cfg [Hash] конфигурация для добавления
  # @return [self] возвращает сам объект для цепочного вызова
  def add(cfg)
    cfgs << cfg
    self.cfgs = cfgs.sort_by { |c| c[:env] }
    self
  end
end

#patternsArray<String> (readonly)

Returns шаблоны для поиска элементов категории.

Returns:

  • (Array<String>)

    шаблоны для поиска элементов категории



101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
# File 'lib/bbk/utils/cli/docs/builder.rb', line 101

Category = Struct.new(:id, :name, :desc, :envs, :order, :patterns, :cfgs, keyword_init: true) do
  # Инициализирует категорию
  #
  # @param kwargs [Hash] параметры категории
  # @option kwargs [String] :id идентификатор категории
  # @option kwargs [String] :name название категории
  # @option kwargs [String] :desc описание категории
  # @option kwargs [Array<String>] :envs переменные окружения
  # @option kwargs [Numeric] :order порядок сортировки
  # @option kwargs [Array<String>] :patterns шаблоны поиска
  # @option kwargs [Array<Hash>] :cfgs конфигурации
  def initialize(**kwargs)
    kwargs[:id] = kwargs[:id].to_s
    kwargs[:name] = kwargs[:name].to_s || kwargs[:id].capitalize
    kwargs[:desc] = kwargs[:desc].to_s

    kwargs[:patterns] ||= []
    kwargs[:envs] ||= []
    kwargs[:order] ||= Float::INFINITY
    kwargs[:cfgs] ||= []

    super
  end

  # Проверяет соответствие имени переменной окружающей категории
  #
  # @param env_name [String, Symbol] имя переменной окружения
  # @return [Boolean] true если соответствует категории
  def match?(env_name)
    return true if envs.any? { |e| e == env_name.to_s.strip }

    return true if patterns.any? { |p| env_name.to_s.strip.start_with?(p) }

    false
  end

  # Добавляет конфигурацию в категорию
  #
  # @param cfg [Hash] конфигурация для добавления
  # @return [self] возвращает сам объект для цепочного вызова
  def add(cfg)
    cfgs << cfg
    self.cfgs = cfgs.sort_by { |c| c[:env] }
    self
  end
end

Instance Method Details

#add(cfg) ⇒ self

Добавляет конфигурацию в категорию

Parameters:

  • cfg (Hash)

    конфигурация для добавления

Returns:

  • (self)

    возвращает сам объект для цепочного вызова



141
142
143
144
145
# File 'lib/bbk/utils/cli/docs/builder.rb', line 141

def add(cfg)
  cfgs << cfg
  self.cfgs = cfgs.sort_by { |c| c[:env] }
  self
end

#match?(env_name) ⇒ Boolean

Проверяет соответствие имени переменной окружающей категории

Parameters:

  • env_name (String, Symbol)

    имя переменной окружения

Returns:

  • (Boolean)

    true если соответствует категории



129
130
131
132
133
134
135
# File 'lib/bbk/utils/cli/docs/builder.rb', line 129

def match?(env_name)
  return true if envs.any? { |e| e == env_name.to_s.strip }

  return true if patterns.any? { |p| env_name.to_s.strip.start_with?(p) }

  false
end