2013-05-08 17 views
5

Testimde beyaz boşluk karakterini geçmeye çalışıyorum.Salatalık tablosundan beyaz boşluk veya nil nesne nasıl alınır?

yüzden ben almak {"company_name"=>"", "phone"=>""}

|company_name|phone| 
|\s|\nil| 

olsun {"company_name"=>"", "phone"=>"\#{nil}"}

|company_name|phone| 
| | | 

olsun

If I enter: 
|company_name|phone| 
||#{nil}| 

benim salatalık adımda aşağıdakileri deneyin {"company_name"=>"\\s", "phone"=>"\nil"}

|company_name|phone| 
|" "|' '| 

alıyorum {"company_name"=>"\" \"", "phone"=>"' '"}

aşağıdaki karma {"company_name"=>" ", "phone"=>" "} almak için masaya neleri içermelidir?

+0

Kullandığınız kodu bize bildirin. –

+0

Burada kod gerekmez. Sadece böyle bir string => "" veya nil nesnesini geçirmem gerekiyor. –

cevap

2

Varsayılan olarak nil olarak yorumlanan bir salatalık tablosuna yerleştirebileceğiniz hiçbir değer yoktur. İstediğinizi yapmak için cucumber Transform kullanabilirsiniz. Eğer nil olarak boş bir dize yorumlamak istiyorsa Örneğin, bu gibi kullanmak olabilir: bir dosyada

Transform /^table:company_name,phone$/ do |table| 
    table.hashes.map! do |h| 
    h.each_pair do |k,v| 
     h[k] = nil if v == '' #here, you can map any value you want to be nil 
    end 
    end 

    table 
end 

Put bu destek klasöründe. Sadece bir sütunu dönüştürmek istiyorsanız, map_column! vb. Gibi başka yöntemler de vardır.

+0

Tamam! Şimdi açık, nil nesnesini nasıl geçeceğiz. Ancak, örneğin, "company_address" içinde hem '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'gerek. Bunu nasıl yaparım? –

+0

@mef_, dönüştürmek istediğinizler için ya da yukarıdaki kodla ilgili anahtarlarla ilgili ikinci bir koşul ekleyerek, yalnızca belirli tuşları 'map_column!' Kullanarak dönüştürebilirsiniz. (Örneğin, bir şey gibi: 'h [k] = nil v == '' ve% W (company_name telefon) ise? (K)' sadece şirket adını ve telefonu boşsa boş gösterecektir. diğer değerlerle eşleştirmek istiyorum 'nil' ifadesini başka şartlara da ekleyin. –

+0

Teşekkürler! Metodu bana yardımcı olur. Ben koymayı istediğim yerde '' '' '' '' '' '' 'Bu tür dönüşüm yöntemini kullanıyorum' ' 'h [k] =" "v == 's' ise Bu yüzden benim masamda' '' s''' dizgisini geçiriyorum –