Module: Legion::Extensions::Helpers::Segments
- Defined in:
- lib/legion/extensions/helpers/segments.rb
Constant Summary collapse
- COMPOUND_SUFFIXES =
{ %w[llm azure foundry] => %w[llm azure_foundry] }.freeze
Class Method Summary collapse
- .categorize_gem(gem_name, categories:, lists:) ⇒ Object
- .derive_const_path(gem_name) ⇒ Object
- .derive_namespace(gem_name) ⇒ Object
- .derive_require_path(gem_name) ⇒ Object
- .derive_segments(gem_name) ⇒ Object
- .segments_to_amqp_prefix(segments) ⇒ Object
- .segments_to_log_tag(segments) ⇒ Object
- .segments_to_settings_path(segments) ⇒ Object
- .segments_to_table_prefix(segments) ⇒ Object
Class Method Details
.categorize_gem(gem_name, categories:, lists:) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/legion/extensions/helpers/segments.rb', line 46 def categorize_gem(gem_name, categories:, lists:) # Check defined lists first (list membership takes priority) lists.each do |cat_name, gem_list| next unless categories.key?(cat_name) return { category: cat_name, tier: categories[cat_name][:tier] } if gem_list.include?(gem_name) end # Check prefix-matched categories = gem_name.delete_prefix('lex-') categories.each do |cat_name, cat_config| next unless cat_config[:type] == :prefix return { category: cat_name, tier: cat_config[:tier] } if .start_with?("#{cat_name}-") end { category: :default, tier: 5 } end |
.derive_const_path(gem_name) ⇒ Object
22 23 24 |
# File 'lib/legion/extensions/helpers/segments.rb', line 22 def derive_const_path(gem_name) "Legion::Extensions::#{derive_namespace(gem_name).join('::')}" end |
.derive_namespace(gem_name) ⇒ Object
18 19 20 |
# File 'lib/legion/extensions/helpers/segments.rb', line 18 def derive_namespace(gem_name) derive_segments(gem_name).map { |s| s.split('_').map(&:capitalize).join } end |
.derive_require_path(gem_name) ⇒ Object
26 27 28 |
# File 'lib/legion/extensions/helpers/segments.rb', line 26 def derive_require_path(gem_name) "legion/extensions/#{derive_segments(gem_name).join('/')}" end |
.derive_segments(gem_name) ⇒ Object
13 14 15 16 |
# File 'lib/legion/extensions/helpers/segments.rb', line 13 def derive_segments(gem_name) segments = gem_name.delete_prefix('lex-').split('-') COMPOUND_SUFFIXES.fetch(segments, segments) end |
.segments_to_amqp_prefix(segments) ⇒ Object
34 35 36 |
# File 'lib/legion/extensions/helpers/segments.rb', line 34 def segments_to_amqp_prefix(segments) "lex.#{segments.join('.')}" end |
.segments_to_log_tag(segments) ⇒ Object
30 31 32 |
# File 'lib/legion/extensions/helpers/segments.rb', line 30 def segments_to_log_tag(segments) segments.map { |s| "[#{s}]" }.join end |
.segments_to_settings_path(segments) ⇒ Object
38 39 40 |
# File 'lib/legion/extensions/helpers/segments.rb', line 38 def segments_to_settings_path(segments) segments.map(&:to_sym) end |
.segments_to_table_prefix(segments) ⇒ Object
42 43 44 |
# File 'lib/legion/extensions/helpers/segments.rb', line 42 def segments_to_table_prefix(segments) segments.join('_') end |