Class: GitlabInternalEventsCli::Flows::MetricDefiner
- Inherits:
-
Object
- Object
- GitlabInternalEventsCli::Flows::MetricDefiner
- Includes:
- Helpers, Text::MetricDefiner
- Defined in:
- lib/gitlab_internal_events_cli/flows/metric_definer.rb
Constant Summary collapse
- STEPS =
[ 'New Metric', 'Type', 'Config', 'Scope', 'Description', 'Defaults', 'Group', 'Categories', 'URL', 'Tiers', 'Save files' ].freeze
Constants included from Text::MetricDefiner
Text::MetricDefiner::ALL_METRICS_EXIST_NOTICE, Text::MetricDefiner::DATABASE_INSTRUMENTATION_FILES_NEXT_STEPS, Text::MetricDefiner::DATABASE_METRIC_DESCRIPTION_INTRO, Text::MetricDefiner::DATABASE_METRIC_NAME_HELP, Text::MetricDefiner::DESCRIPTION_HELP, Text::MetricDefiner::EVENT_METRIC_DESCRIPTION_INTRO, Text::MetricDefiner::INSTRUMENTATION_CLASS_ERROR, Text::MetricDefiner::INSTRUMENTATION_CLASS_HELP, Text::MetricDefiner::INSTRUMENTATION_CLASS_INTRO, Text::MetricDefiner::NAME_CONFLICT_HELP, Text::MetricDefiner::NAME_ERROR, Text::MetricDefiner::NAME_FILTER_HELP, Text::MetricDefiner::NAME_LENGTH_HELP, Text::MetricDefiner::NAME_REQUIREMENT_REASONS, Text::MetricDefiner::OPERATION_INTRO
Constants included from Helpers::Formatting
Helpers::Formatting::DEFAULT_WINDOW_HEIGHT, Helpers::Formatting::DEFAULT_WINDOW_WIDTH
Constants included from Helpers
Constants included from Helpers::Files
Helpers::Files::MAX_FILENAME_LENGTH
Instance Attribute Summary collapse
-
#cli ⇒ Object
readonly
Returns the value of attribute cli.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(cli, starting_event = nil) ⇒ MetricDefiner
constructor
A new instance of MetricDefiner.
- #run ⇒ Object
Methods included from Helpers::Formatting
#clear_format, #counter, #divider, #format_error, #format_heading, #format_help, #format_info, #format_prefix, #format_prompt, #format_selection, #format_subheader, #format_warning, #progress_bar
Methods included from Helpers
#feedback_notice, #milestone, #new_page!
Methods included from Helpers::ServicePingDashboards
#metric_exploration_group_path, #metric_trend_path
Methods included from Helpers::MetricOptions
Methods included from Helpers::EventOptions
#events_by_filepath, #generate_ai_event_suggestion, #generate_python_advice, #get_event_options
Methods included from Helpers::GroupOwnership
#find_categories, #find_section, #find_stage, #known_categories, #prompt_for_feature_categories, #prompt_for_group_ownership
Methods included from Helpers::Files
#absolute_path, #file_saved_message, #prompt_to_save_file, #write_to_file
Methods included from Helpers::CliInputs
#disableable_option, #disabled_format_callback, #filter_opts, #format_disabled_options_as_dividers, #input_optional_text, #input_opts, #input_required_text, #multiselect_opts, #prompt_for_array_selection, #prompt_for_text, #select_option_divider, #select_opts, #yes_no_opts
Constructor Details
#initialize(cli, starting_event = nil) ⇒ MetricDefiner
Returns a new instance of MetricDefiner.
33 34 35 36 37 38 |
# File 'lib/gitlab_internal_events_cli/flows/metric_definer.rb', line 33 def initialize(cli, starting_event = nil) @cli = cli @selected_event_paths = Array(starting_event) @metric = nil @selected_filters = nil end |
Instance Attribute Details
#cli ⇒ Object (readonly)
Returns the value of attribute cli.
31 32 33 |
# File 'lib/gitlab_internal_events_cli/flows/metric_definer.rb', line 31 def cli @cli end |
Class Method Details
.schema ⇒ Object
10 11 12 13 14 15 |
# File 'lib/gitlab_internal_events_cli/flows/metric_definer.rb', line 10 def self.schema @schema ||= Helpers::SchemaLoader.load( GitlabInternalEventsCli.configuration.metric_schema_url, 'metric' ) end |
Instance Method Details
#run ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/gitlab_internal_events_cli/flows/metric_definer.rb', line 40 def run type = prompt_for_metric_type prompt_for_configuration(type) return unless metric metric.milestone = milestone prompt_for_description prompt_for_metric_name defaults = prompt_for_product_group(defaults) prompt_for_product_categories(defaults) prompt_for_url(defaults) prompt_for_tier(defaults) outcome = create_metric_file prompt_for_next_steps(outcome) end |