Sha256: 69a048e8096aebe0c71e761470993715d1eb6ad27ff6fb5fca60accba47138a7

Contents?: true

Size: 959 Bytes

Versions: 3

Compression:

Stored size: 959 Bytes

Contents

# Copyright (c) 2015 Scott Williams

module IssueExporting
  class FileOutputter
    def initialize(options = {})
      @options = options
    end

    def write(response_text)
      path = @options[:path] || default_path
      if @options[:multiple_files]
        write_multi_file path, response_text
      else
        write_single_file path, response_text
      end
    end

    private
    def default_path
      Dir.pwd
    end

    def default_filename
      "issues.json"
    end

    def write_single_file(dir, response_text)
      path = "#{dir}/#{default_filename}"
      File.open(path, 'w') { |f| f.write response_text }
    end

    def write_multi_file(dir, response_text)
      array_of_issues = JSON.parse response_text
      array_of_issues.each do |issue|
        issue_number = issue["number"]
        filename = "#{dir}/issue-#{issue_number}.json"
        File.open(filename, 'w') { |f| f.write issue.to_json }
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
github_issue_exporter-0.2.1 lib/issue_exporter/outputter.rb
github_issue_exporter-0.2.0 lib/issue_exporter/outputter.rb
github_issue_exporter-0.1.0 lib/issue_exporter/outputter.rb