suds
Welcome to the suds project. This is very much a work in progress, so please use this at your own risk. I am changing the DSL constantly and rewriting the history.
This project will become stable fairly soon.
Suds is a essentially a tool for working with data files. Suds is broken up into three modular components: interpreters, cleaners, and converters.
Interpreters load the data into the suds
object. This can be in the form of raw text, json, csv, etc. Interpreteres can be chained together, for instance a (fictional) GoogleDriveInterpreter
can pass it's data to the CSVInterpreter
.
Cleaners manipulate the data. You can modify/remove rows/columns (in the context of a CSV file).
Converters export the file either to disk or to a remote location.
Requirements
Ruby 2.0.x
is tested. If you need support for 1.9.3
use the 1.9.3
branch.
Installation
gem install suds
Or if you're using Bundler, include the following line in your Gemfile:
gem 'suds', git: '[email protected]:HealthWave/suds.git'
Getting started starting
Initialize your interpreter(s):
f_interpreter = FileInterpreter.new('./path/to/my/file')
csv_interpreter = CSVInterpreter.new(f_interpreter.data)
Create a suds list and add the interpreters to it:
list = Suds.new( csv_interpreter )
Add some cleaners to it:
list.add_cleaner Cleaner.new {|_,v| v.strip! if v } # Inline initialization of a generic cleaner
# Configuring an existing cleaner
list.add_cleaner ColumnConverterCleaner.new({
company: :name,
nlacno: :partner_practitioner_id,
})
list.add_cleaner ColumnFilterCleaner.new(include_columns: [:name, :partner_practitioner_id, :email])
list.add_cleaner DowncaseCleaner.new()
Run all the cleaners:
list.clean