Sha256: d035016b12773c1cd6b4f84888af9ab5cbaabcf3dec164f576ef3b73336f209a

Contents?: true

Size: 621 Bytes

Versions: 5

Compression:

Stored size: 621 Bytes

Contents

# frozen_string_literal: true

require 'json'

module FileBuilders
  class JSONFileBuilder
    attr_reader :data, :file_name, :options, :titles

    def initialize(data, file_name, options)
      @data = data
      @file_name = file_name
      @options = options
      @titles = options[:titles]
    end

    def export_to_file
      return puts 'For JSON format titles are required' if titles.empty?

      json_data = data.inject([]) do |result, row|
        result << titles.zip(row).to_h
      end

      File.open(file_name, 'a') do |file|
        file << JSON.pretty_generate(json_data)
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
tabled-1.2.1 lib/file_builders/json_file_builder.rb
tabled-1.2.0 lib/file_builders/json_file_builder.rb
tabled-1.1.0 lib/file_builders/json_file_builder.rb
tabled-1.0.0 lib/file_builders/json_file_builder.rb
tabled-0.0.6 lib/file_builders/json_file_builder.rb