class YARD::Tags::TypesExplainer::HashCollectionType
@private
Attributes
key_value_pairs[RW]
Public Class Methods
new(name, key_types_or_pairs, value_types = nil)
click to toggle 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
key_types()
click to toggle source
Backward compatibility accessors
# File lib/yard/tags/types_explainer.rb, line 110 def key_types return [] if @key_value_pairs.empty? @key_value_pairs.first[0] || [] end
key_types=(types)
click to toggle 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
to_s(_singular = true)
click to toggle 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
value_types()
click to toggle 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
value_types=(types)
click to toggle 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