module Sequel::Plugins::CsvSerializer::ClassMethods

  1. lib/sequel/plugins/csv_serializer.rb

simplecov:enable

Attributes

csv_serializer_opts [R]

The default opts to use when serializing model objects to CSV

Public Instance methods

array_from_csv(csv, opts = OPTS)

Attempt to parse an array of instances from the given CSV string

[show source]
   # File lib/sequel/plugins/csv_serializer.rb
88 def array_from_csv(csv, opts = OPTS)
89   CSV.parse(csv, **process_csv_serializer_opts(opts)).map do |row|
90     row = row.to_hash
91     row.delete(nil)
92     new(row)
93   end
94 end
freeze()

Freeze csv serializier opts when freezing model class

[show source]
    # File lib/sequel/plugins/csv_serializer.rb
 97 def freeze
 98   @csv_serializer_opts.freeze.each_value do |v|
 99     v.freeze if v.is_a?(Array) || v.is_a?(Hash)
100   end
101 
102   super
103 end
from_csv(csv, opts = OPTS)

Attempt to parse a single instance from the given CSV string

[show source]
    # File lib/sequel/plugins/csv_serializer.rb
106 def from_csv(csv, opts = OPTS)
107   new.from_csv(csv, opts)
108 end
process_csv_serializer_opts(opts)

Convert the options hash to one that can be passed to CSV.

[show source]
    # File lib/sequel/plugins/csv_serializer.rb
111 def process_csv_serializer_opts(opts)
112   opts = (csv_serializer_opts || OPTS).merge(opts)
113   opts_cols = opts.delete(:columns)
114   opts_include = opts.delete(:include)
115   opts_except = opts.delete(:except)
116   only = opts.delete(:only) 
117   opts[:headers] ||= Array(only || opts_cols || columns) + Array(opts_include) - Array(opts_except)
118   opts
119 end