require "yaml"
def solucao(string)
config = YAML.load_file("format-1.yaml")
ret = {}
ret[:cpf] = string.slice!(0, config["cpf"]["length"])
ret[:name] = string.slice!(0, config["name"]["length"])
ret[:value] = string.slice!(0, config["value"]["length"]).sub(/\A0+/, "")
ret
end
p solucao("97905796671Maria Neusa de00001234")
p solucao("44010762900Ricardo Fontes00000567")
Destrinchando o código
Aqui fazemos o require para usar a biblioteca yaml.
Criamos um método que recebe a string a ser separada.
Separamos de acordo com o tamanho indicado no arquivo yaml importado para variável config.
Criamos uma Hash vazia para comportar os dados.
Fazemos o slice! passando o tamanho do campo que desejamos retirar da string e colocando nas chaves correspondentes.
3
Destrinchando o código
Aqui fazemos o require para usar a biblioteca yaml. Criamos um método que recebe a string a ser separada. Separamos de acordo com o tamanho indicado no arquivo yaml importado para variável config. Criamos uma Hash vazia para comportar os dados. Fazemos o slice! passando o tamanho do campo que desejamos retirar da string e colocando nas chaves correspondentes.
Retornamos a hash.