lib/how_is.rb in how_is-1.0.0 vs lib/how_is.rb in how_is-2.0.0

- old
+ new

@@ -6,27 +6,41 @@ module HowIs include Contracts::Core require 'how_is/fetcher' require 'how_is/analyzer' - require 'how_is/reporter' + require 'how_is/report' - Contract C::KeywordArgs[repository: String, report_file: String, - from_file: C::Optional[C::Or[String, nil]], - fetcher: C::Optional[Class], - analyzer: C::Optional[Class], - reporter: C::Optional[Class]] => C::Any - def self.generate_report(repository:, report_file:, + def self.generate_report_file(report_file:, **kw_args) + analysis = self.generate_analysis(**kw_args) + + Report.export!(analysis, report_file) + end + + def self.generate_report(format:, **kw_args) + analysis = self.generate_analysis(**kw_args) + + Report.export(analysis, format) + end +private + + +Contract C::KeywordArgs[repository: String, + from_file: C::Optional[C::Or[String, nil]], + fetcher: C::Optional[Class], + analyzer: C::Optional[Class], + github: C::Optional[C::Any]] => C::Any + def self.generate_analysis(repository:, from_file: nil, - fetcher: Fetcher.new, + fetcher: Fetcher.new, analyzer: Analyzer.new, - reporter: Reporter.new) + github: nil) if from_file analysis = analyzer.from_file(from_file) else - raw_data = fetcher.call(repository) + raw_data = fetcher.call(repository, github) analysis = analyzer.call(raw_data) end - reporter.call(analysis, report_file) + analysis end end