class YARD::Tags::TypesExplainer::HashCollectionType
@private
Attributes
Public Class Methods
Source
# File lib/yard/tags/types_explainer.rb, line 97 def initialize(name, key_types_or_pairs, value_types = nil) @name = name if value_types.nil? # New signature: (name, key_value_pairs) @key_value_pairs = key_types_or_pairs || [] else # Old signature: (name, key_types, value_types) @key_value_pairs = [[key_types_or_pairs, value_types]] end end
Public Instance Methods
Source
# File lib/yard/tags/types_explainer.rb, line 110 def key_types return [] if @key_value_pairs.empty? @key_value_pairs.first[0] || [] end
Backward compatibility accessors
Source
# File lib/yard/tags/types_explainer.rb, line 115 def key_types=(types) if @key_value_pairs.empty? @key_value_pairs = [[types, []]] else @key_value_pairs[0][0] = types end end
Source
# File lib/yard/tags/types_explainer.rb, line 136 def to_s(_singular = true) return "a#{name[0, 1] =~ /[aeiou]/i ? 'n' : ''} #{name}" if @key_value_pairs.empty? result = "a#{name[0, 1] =~ /[aeiou]/i ? 'n' : ''} #{name} with " parts = @key_value_pairs.map do |keys, values| "keys made of (" + list_join(keys.map {|t| t.to_s(false) }) + ") and values of (" + list_join(values.map {|t| t.to_s(false) }) + ")" end result + parts.join(" and ") end
Source
# File lib/yard/tags/types_explainer.rb, line 123 def value_types return [] if @key_value_pairs.empty? @key_value_pairs.first[1] || [] end
Source
# File lib/yard/tags/types_explainer.rb, line 128 def value_types=(types) if @key_value_pairs.empty? @key_value_pairs = [[[], types]] else @key_value_pairs[0][1] = types end end