Sha256: 659fe0ba4a6d2a7aa7b7f94507fbbb0f410fa2f0d0d37d8dd0d08c0b9d50386e
Contents?: true
Size: 1.61 KB
Versions: 1
Compression:
Stored size: 1.61 KB
Contents
# This class is responsible for parsing plist # from zip file or folder require "plist" module GoldenRose class Parser attr_accessor :folder_path attr_reader :parsed_test_summaries_plist, :parsed_info_plist, :parsed_build_logs def initialize(folder_path) @folder_path = folder_path end def parse! read_plists parse_plists parse_build_logs delete_extracted_files self end def source_type archive? ? :zip : :dir end private def read_plists @test_summaries_resource = FileResource.new(:test_summaries_plist, source_type, folder_path) @info_resource = FileResource.new(:info_plist, source_type, folder_path) end def parse_plists @parsed_test_summaries_plist = @test_summaries_resource.path ? Plist.parse_xml(@test_summaries_resource.path) : nil puts("Could not parse test_summaries.plist correctly") unless @parsed_test_summaries_plist @parsed_info_plist = Plist.parse_xml(@info_resource.path) fail GeneratingError, 'Could not parse Info.plist correctly.' unless @parsed_info_plist end def parse_build_logs build_log_path = Info.new(@parsed_info_plist).build_log_path @build_log_resource = FileResource.new(:build_log, source_type, folder_path, build_log_path) @parsed_build_logs = GoldenRose::BuildLog::Parser.new(@build_log_resource.path).parse! end def delete_extracted_files [@test_summaries_resource, @info_resource, @build_log_resource] .map(&:delete_extracted_file) end def archive? !(folder_path =~ /\.(?:rar|zip|tar.gz)$/).nil? end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
golden_rose-1.0.0.pre | lib/golden_rose/parser.rb |