56 lines
1.1 KiB
Ruby
Executable File
56 lines
1.1 KiB
Ruby
Executable File
# frozen_string_literal: true
|
|
|
|
module InternalEventsCli
|
|
NEW_EVENT_FIELDS = [
|
|
:description,
|
|
:category,
|
|
:action,
|
|
:label_description,
|
|
:property_description,
|
|
:value_description,
|
|
:value_type,
|
|
:extra_properties,
|
|
:identifiers,
|
|
:product_section,
|
|
:product_stage,
|
|
:product_group,
|
|
:milestone,
|
|
:introduced_by_url,
|
|
:distributions,
|
|
:tiers
|
|
].freeze
|
|
|
|
EVENT_DEFAULTS = {
|
|
product_section: nil,
|
|
product_stage: nil,
|
|
product_group: nil,
|
|
introduced_by_url: 'TODO',
|
|
category: 'InternalEventTracking'
|
|
}.freeze
|
|
|
|
Event = Struct.new(*NEW_EVENT_FIELDS, keyword_init: true) do
|
|
def formatted_output
|
|
EVENT_DEFAULTS
|
|
.merge(to_h.compact)
|
|
.slice(*NEW_EVENT_FIELDS)
|
|
.transform_keys(&:to_s)
|
|
.to_yaml(line_width: 150)
|
|
end
|
|
|
|
def file_path
|
|
File.join(
|
|
*[
|
|
('ee' unless distributions.include?('ce')),
|
|
'config',
|
|
'events',
|
|
"#{action}.yml"
|
|
].compact
|
|
)
|
|
end
|
|
|
|
def bulk_assign(key_value_pairs)
|
|
key_value_pairs.each { |key, value| self[key] = value }
|
|
end
|
|
end
|
|
end
|