class Kitchen::Directions::BakeIndex::V1::IndexSection
Attributes
force_first[R]
items[R]
name[R]
Public Class Methods
new(name:)
click to toggle source
# File lib/kitchen/directions/bake_index/v1.rb, line 53 def initialize(name:) @force_first = name == I18n.t(:eob_index_symbols_group) @name = name @items = SortedSet.new @items_by_term_text = {} end
Public Instance Methods
<=>(other)
click to toggle source
# File lib/kitchen/directions/bake_index/v1.rb, line 64 def <=>(other) return -1 if force_first return 1 if other.force_first I18n.sort_strings(name, other.name) end
add_term(term)
click to toggle source
# File lib/kitchen/directions/bake_index/v1.rb, line 60 def add_term(term) item_for(term).add_term(term) end
Protected Instance Methods
item_for(term)
click to toggle source
# File lib/kitchen/directions/bake_index/v1.rb, line 75 def item_for(term) @items_by_term_text[term.text] ||= begin different_caps_item = @items_by_term_text[term.text.uncapitalize] different_caps_item&.uncapitalize_term_text! unless different_caps_item different_caps_item = @items_by_term_text[term.text.capitalize] different_caps_item&.capitalize_term_text! end (different_caps_item || IndexItem.new(term_text: term.text)).tap do |item| @items.add(item) end end end