Class: IssueExporting::Exporter
- Inherits:
-
Object
- Object
- IssueExporting::Exporter
- Defined in:
- lib/issue_exporter/export.rb
Instance Attribute Summary collapse
-
#outputter ⇒ Object
Returns the value of attribute outputter.
Instance Method Summary collapse
- #build_outputter(outputter_options) ⇒ Object
- #build_query_string(options) ⇒ Object
- #export ⇒ Object
-
#initialize(owner, repo, token = nil, options = { page_size: true }) ⇒ Exporter
constructor
A new instance of Exporter.
Constructor Details
#initialize(owner, repo, token = nil, options = { page_size: true }) ⇒ Exporter
Returns a new instance of Exporter.
10 11 12 13 14 15 16 17 18 |
# File 'lib/issue_exporter/export.rb', line 10 def initialize(owner, repo, token = nil, = { page_size: true }) @owner = owner @repo = repo @token = token = valid_option_keys = [:path, :multiple_files, :output_type] = .select { |k,v| valid_option_keys.include? k } @outputter = build_outputter end |
Instance Attribute Details
#outputter ⇒ Object
Returns the value of attribute outputter.
8 9 10 |
# File 'lib/issue_exporter/export.rb', line 8 def outputter @outputter end |
Instance Method Details
#build_outputter(outputter_options) ⇒ Object
50 51 52 53 54 55 56 57 58 |
# File 'lib/issue_exporter/export.rb', line 50 def build_outputter() output_type = [:output_type] || 'file' case output_type when 'csv' return CsvOutputter.new() else return FileOutputter.new() end end |
#build_query_string(options) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/issue_exporter/export.rb', line 32 def build_query_string() values = { include_closed_issues: 'state=all', page_size: 'per_page=100' } qs = .reduce([]) do |arr, kv| key, val = kv query_value = values[key] if val if query_value.nil? arr else arr.push(query_value) unless query_value.nil? end end if qs == [] then return '' end return '&' + qs.join('&') end |
#export ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/issue_exporter/export.rb', line 20 def export error_handler = ErrorHandler.new url = IssueExporting.make_uri @owner, @repo, @token url.query += build_query_string response = Net::HTTP::get url if err = error_handler.(response) error_handler.handle_error err else outputter.write response end end |