Calcula el conjunto de abreviaturas inequívocas para un conjunto de cadenas dado.

require'abbrev'require'pp'

pp Abbrev.abbrev(['ruby'])#=>  "ruby"=>"ruby", "rub"=>"ruby", "ru"=>"ruby", "r"=>"ruby"

pp Abbrev.abbrev(%w ruby rules )

Genera:

"ruby"=>"ruby","rub"=>"ruby","rules"=>"rules","rule"=>"rules","rul"=>"rules"

También proporciona una array extensión del núcleo, Array#abbrev.

pp %w summer winter .abbrev

Genera:

"summer"=>"summer","summe"=>"summer","summ"=>"summer","sum"=>"summer","su"=>"summer","s"=>"summer","winter"=>"winter","winte"=>"winter","wint"=>"winter","win"=>"winter","wi"=>"winter","w"=>"winter"

Métodos de clase pública

abrev(palabras, patrón = nulo)Mostrar fuente

# File lib/abbrev.rb, line 73defabbrev(words, pattern =nil)
  table =
  seen =Hash.new(0)if pattern.is_a?(String)
    pattern =/A#Regexp.quote(pattern)/# regard as a prefixend

  words.eachdo|word|nextif word.empty?
    word.size.downto(1)
      abbrev = word[0...len]nextif pattern && pattern !~ abbrev

      case seen[abbrev]+=1when1
        table[abbrev]= word
      when2
        table.delete(abbrev)elsebreakendend

  words.eachdo|word|nextif pattern && pattern !~ word

    table[word]= word
  end

  table
end

Dado un conjunto de cadenas, calcule el conjunto de abreviaturas inequívocas para esas cadenas y devuelva un hash donde el keys son todas las posibles abreviaturas y los valores son las cadenas completas.

Por lo tanto, dado words es “coche” y “cono”, el keys apuntando a “coche” sería “ca” y “coche”, mientras que los que apuntan a “cono” serían “co”, “con” y “cono”.

require'abbrev'Abbrev.abbrev(%w car cone )#=> "ca"=>"car", "con"=>"cone", "co"=>"cone", "car"=>"car", "cone"=>"cone"

El opcional pattern El parámetro es un patrón o un string. Solo ingrese cadenas que coincidan con el patrón o comiencen con el string se incluyen en el hash de salida.

Abbrev.abbrev(%wcar box cone crab,/b/)#=> "box"=>"box", "bo"=>"box", "b"=>"box", "crab" => "crab"Abbrev.abbrev(%wcar box cone,'ca')#=> "car"=>"car", "ca"=>"car"

Métodos de instancia privada

abrev(palabras, patrón = nulo)Mostrar fuente

# File lib/abbrev.rb, line 73defabbrev(words, pattern =nil)
  table =
  seen =Hash.new(0)if pattern.is_a?(String)
    pattern =/A#Regexp.quote(pattern)/# regard as a prefixend

  words.eachdo|word|nextif word.empty?
    word.size.downto(1)lenend

  words.eachdo|word|nextif pattern && pattern !~ word

    table[word]= word
  end

  table
end

Dado un conjunto de cadenas, calcule el conjunto de abreviaturas inequívocas para esas cadenas y devuelva un hash donde el keys son todas las abreviaturas posibles y los valores son las cadenas completas.

Por lo tanto, dado words es “coche” y “cono”, el keys apuntar a “coche” sería “ca” y “coche”, mientras que los que apuntan a “cono” serían “co”, “con” y “cono”.

require'abbrev'Abbrev.abbrev(%w car cone )#=> "ca"=>"car", "con"=>"cone", "co"=>"cone", "car"=>"car", "cone"=>"cone"

El opcional pattern parámetro es un patrón o un string. Solo ingrese cadenas que coincidan con el patrón o comiencen con el string se incluyen en el hash de salida.

Abbrev.abbrev(%wcar box cone crab,/b/)#=> "box"=>"box", "bo"=>"box", "b"=>"box", "crab" => "crab"Abbrev.abbrev(%wcar box cone,'ca')#=> "car"=>"car", "ca"=>"car"