Sono piuttosto nuovo per Ruby, ma ho fatto molte ricerche sui test degli Chef nelle ultime due settimane. Questo test utilizza ChefSpec & Fauxhai, ma non sembra molto "rubino-ish" e speravo che la community potesse darmi alcuni suggerimenti sullo stile di codifica. C'è un modo migliore per scrivere un ciclo annidato come questo?Feedback sullo stile di codifica Ruby/ChefSpec
libri di cucina/foo/Ricette/default.rb
package "foo" do
action :install
end
libri di cucina/foo/spec/default_spec.rb
require 'chefspec'
describe 'foo::default' do
platforms = {
"debian" => ['6.0.5'],
"ubuntu" => ['12.04', '10.04'],
"centos" => ['5.8', '6.0', '6.3'],
"redhat" => ['5.8', '6.3'],
"mac_os_x" => ['10.6.8', '10.7.4', '10.8.2'],
"windows" => ['2008R2']
}
platforms.each do |platform,versions|
versions.each do |version|
context "on #{platform} #{version}" do
before do
Fauxhai.mock(platform: platform, version: version)
end
it 'should install foo' do
@runner = ChefSpec::ChefRunner.new.converge('foo::default')
@runner.should install_package 'foo'
end
end
end
end
end
Qualsiasi e tutti i feedback è benvenuto. Grazie!
https://github.com/bbatsov/ruby-style-guide è una buona risorsa generale per le linee guida suggerite per la codifica di Ruby. Non penso che ci sia molto che potresti fare per ripulire questi cicli annidati mantenendo la leggibilità. –
Ho letto la guida ma non vedo molto che possa migliorare. Grazie per il feedback! – Rapsey