Class: Gitlab::UsageMetricDefinitionGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/gitlab/usage_metric_definition_generator.rb

Defined Under Namespace

Classes: Directory

Constant Summary collapse

TIME_FRAME_DIRS =
[
  Directory.new('counts_7d',  '7d',   'number'),
  Directory.new('counts_28d', '28d',  'number'),
  Directory.new('counts_all', 'all',  'number'),
  Directory.new('settings',   'none', 'boolean'),
  Directory.new('license',    'none', 'string')
].freeze
TOP_LEVEL_DIR =
'config'
TOP_LEVEL_DIR_EE =
'ee'
VALID_INPUT_DIRS =
(TIME_FRAME_DIRS.flat_map { |d| [d.name, d.time_frame] } - %w[none]).freeze

Instance Method Summary collapse

Instance Method Details

#class_nameObject



70
71
72
# File 'lib/generators/gitlab/usage_metric_definition_generator.rb', line 70

def class_name
  options[:class_name]
end

#create_metric_fileObject



42
43
44
45
46
47
48
# File 'lib/generators/gitlab/usage_metric_definition_generator.rb', line 42

def create_metric_file
  validate!

  key_paths.each do |key_path|
    template "metric_definition.yml", file_path(key_path), key_path
  end
end

#distributionObject



58
59
60
# File 'lib/generators/gitlab/usage_metric_definition_generator.rb', line 58

def distribution
  (ee? ? ['- ee'] : ['- ce', '- ee']).join("\n")
end

#milestoneObject



66
67
68
# File 'lib/generators/gitlab/usage_metric_definition_generator.rb', line 66

def milestone
  Gitlab::VERSION.match('(\d+\.\d+)').captures.first
end

#tierObject



62
63
64
# File 'lib/generators/gitlab/usage_metric_definition_generator.rb', line 62

def tier
  (ee? ? ['#- premium', '- ultimate'] : ['- free', '- premium', '- ultimate']).join("\n")
end

#time_frameObject



50
51
52
# File 'lib/generators/gitlab/usage_metric_definition_generator.rb', line 50

def time_frame
  directory&.time_frame
end

#value_typeObject



54
55
56
# File 'lib/generators/gitlab/usage_metric_definition_generator.rb', line 54

def value_type
  directory&.value_type
end