2010-08-20 14 views
8

Come posso convertire "755" in 0755 in Ruby? Voglio passare le autorizzazioni a un metodo utilizzando una stringa e quindi convertirlo per l'uso chmod.Stringa di rubino a ottale?

+0

Non è chiaro cosa tu voglia veramente. Vuoi aggiungere zero a una stringa? O cosa? –

+0

Voglio convertire una stringa in un ottale, come dice il titolo. – Christoffer

+0

@Pavel: "755" == 0755 restituisce falso ... – Christoffer

risposta

15

Questo dovrebbe farlo:

"755".to_i(8) 
# => 493 

"755".to_i(8) == 0755 
# => true 
+0

Fantastico, ho fatto questo test in irb e ottenuto" true "-> 0755 ==" 755 ".to_i (8) – Christoffer

+0

Ho appena aggiunto alla mia risposta in modo che le persone capiscano a cosa serve. –

-4
def append_zero_to_string(string) 
    0.to_s + string 
end 
+0

Si aspetta non una stringa. Mentre "755" è una stringa, 0755 non è una stringa. –

0

Un po 'in ritardo alla festa, ma è possibile verificare la presenza di errori di inserimento passando la stringa e la base per creare un'istanza di un intero in tal modo,

Integer("755",8)=493 
Integer("855",8) 
ArgumentError: invalid value for Integer(): "855" 

begin 
    Integer("855",8) 
rescue ArgumentError, TypeError 
    "Bad input" 
end