slogan3

Help mij een Ruby-script te schrijven voor gegevensverwerking

description

Met deze prompt krijg je een concreet en toepasbaar Ruby-script dat precies aansluit op jouw gegevensverwerkingstaak. Het bespaart je programmeertijd, helpt je best practices toe te passen en maakt het gemakkelijker om automatisering in Ruby te implementeren.

prompt

Schrijf een Ruby-script dat de volgende taak uitvoert: <beschrijf de taak of het probleem in detail>. Gebruik hierbij de volgende inputgegevens: <voer d ...

try_prompt

generate_helper
disclaimerOnPageApi

ai_answers

provider: openai
model: gpt-4.1-nano
Hier is een Ruby-script dat aan uw wensen voldoet. Het leest een CSV-bestand, filtert alle actieve gebruikers (bijvoorbeeld waarbij de kolom 'status' op 'actief' staat) en schrijft deze naar een nieuw CSV-bestand. Het script is leesbaar, efficiënt en volgt best practices: ```ruby require 'csv' # Definieer de bestandsnamen input_bestand = 'gebruikers.csv' output_bestand = 'actieve_gebruikers.csv' # Filter actieve gebruikers actieve_gebruikers = CSV.read(input_bestand, headers: true).select do |rij| rij['status'].to_s.downcase == 'actief' end # Schrijf de gefilterde gebruikers naar een nieuw bestand CSV.open(output_bestand, 'w', headers: actieve_gebruikers.first.headers, write_headers: true) do |csv| actieve_gebruikers.each do |rij| csv << rij end end puts "Filtered #{actieve_gebruikers.size} actieve gebruikers naar #{output_bestand}." ``` **Toelichting:** - Gebruik van de `csv`-bibliotheek voor eenvoudige CSV-verwerking. - Lees het invoerbestand met headers. - Filter de rijen op basis van de 'status'-waarde, zorgt voor case-insensitive vergelijking. - Schrijf de gefilterde gegevens naar een nieuw bestand met dezelfde headers. - Duidelijke variabele namen en eenvoudige structuur. U kunt de bestandsnamen aanpassen naar uw situatie. Zorg dat het CSV-bestand aanwezig is in dezelfde directory als dit script, of geef het juiste pad op.
provider: deepseek
model: deepseek-chat
```ruby require 'csv' # Definieer bestandsnamen input_bestand = 'gebruikers.csv' output_bestand = 'actieve_gebruikers.csv' begin # Lees en verwerk CSV-bestand actieve_gebruikers = CSV.read(input_bestand, headers: true) .select { |rij| rij['status']&.downcase == 'actief' } # Schrijf resultaten naar nieuw CSV-bestand CSV.open(output_bestand, 'w') do |csv| # Schrijf kopregel csv << ['naam', 'email', 'status'] # Schrijf alle actieve gebruikers actieve_gebruikers.each do |gebruiker| csv << [gebruiker['naam'], gebruiker['email'], gebruiker['status']] end end puts "Succesvol #{actieve_gebruikers.size} actieve gebruikers opgeslagen in #{output_bestand}" rescue Errno::ENOENT puts "Fout: Bestand #{input_bestand} niet gevonden." rescue CSV::MalformedCSVError puts "Fout: Ongeldig CSV-formaat in #{input_bestand}." rescue StandardError => e puts "Er is een onverwachte fout opgetreden: #{e.message}" end ``` **Uitleg van de gebruikte best practices:** 1. **Foutafhandeling**: Gebruik van `begin/rescue` voor robuuste error handling 2. **Method chaining**: Leesbare aaneenschakeling van methoden 3. **Headers gebruiken**: Werkt met kolomnamen i.p.v. indexen voor betere leesbaarheid 4. **Case-insensitive check**: `.downcase` zorgt dat 'Actief', 'actief', etc. allemaal werken 5. **Safe navigation operator**: `&.` voorkomt nil errors 6. **Descriptieve variabelen**: Duidelijke namen voor betere leesbaarheid 7. **Headers behouden**: Kopregel wordt mee geschreven naar output bestand **Gebruik:** - Plaats dit script in dezelfde map als je `gebruikers.csv` bestand - Voer uit met: `ruby scriptnaam.rb` - Resultaat wordt opgeslagen in `actieve_gebruikers.csv` Zorg ervoor dat je CSV-bestand de juiste kolomnamen heeft en de statuswaarden consistent zijn.