Sha256: a9247c99c184fffeb599279d1188a8aa1ca49f3a9586a6bd8b9b329fe9e0b25f

Contents?: true

Size: 708 Bytes

Versions: 1

Compression:

Stored size: 708 Bytes

Contents

module SimpleCsv
  class Base
    attr_reader :index

    COMMON_DELIMITERS = %w(, ; |)
    DEFAULTS = { headers: true, col_sep: ',', seperator: ',',
                 converters: [:all, :blank_to_nil, :null_to_nil] }.freeze

    private

    def settings(**opts)
      @settings ||= DEFAULTS.dup
      @settings = @settings.merge opts[:merge] if opts[:merge]

      @settings[:col_sep] = @settings.delete :seperator if @settings[:seperator]

      @settings
    end

    def headers(*column_names)
      return @headers if column_names.empty?
      @headers = column_names.map(&:to_s)
    end

    def respond_to_missing?(mtd, include_private = false)
      @headers.include?(mtd) || super
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
simple_csv-0.1.0 lib/simple_csv/base.rb