| 
									
										
										
										
											2020-10-10 14:16:11 +02:00
										 |  |  | # typed: true | 
					
						
							| 
									
										
										
										
											2019-04-19 15:38:03 +09:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-08-17 19:48:09 +02:00
										 |  |  | # Helper for checking if a file is considered a metadata file. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # @api private | 
					
						
							| 
									
										
										
										
											2016-10-10 10:48:04 -04:00
										 |  |  | module Metafiles | 
					
						
							| 
									
										
										
										
											2020-08-26 14:28:23 -04:00
										 |  |  |   LICENSES = Set.new(%w[copying copyright license licence]).freeze | 
					
						
							| 
									
										
										
										
											2020-11-03 12:39:26 -05:00
										 |  |  |   # {https://github.com/github/markup#markups} | 
					
						
							| 
									
										
										
										
											2019-04-19 21:46:20 +09:00
										 |  |  |   EXTENSIONS = Set.new(%w[
 | 
					
						
							| 
									
										
										
										
											2021-02-11 13:24:19 +00:00
										 |  |  |     .adoc .asc .asciidoc .creole .html .markdown .md .mdown .mediawiki .mkdn | 
					
						
							|  |  |  |     .org .pod .rdoc .rst .rtf .textile .txt .wiki | 
					
						
							|  |  |  |   ]).freeze | 
					
						
							| 
									
										
										
										
											2020-08-26 14:28:23 -04:00
										 |  |  |   BASENAMES = Set.new(%w[about authors changelog changes history news notes notice readme todo]).freeze | 
					
						
							| 
									
										
										
										
											2012-09-09 13:19:53 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-10 10:48:04 -04:00
										 |  |  |   module_function | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def list?(file) | 
					
						
							| 
									
										
										
										
											2014-06-07 17:49:07 -05:00
										 |  |  |     return false if %w[.DS_Store INSTALL_RECEIPT.json].include?(file) | 
					
						
							| 
									
										
										
										
											2018-09-17 02:45:00 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-07 17:47:45 -05:00
										 |  |  |     !copy?(file) | 
					
						
							| 
									
										
										
										
											2012-09-09 13:19:53 -07:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-10 10:48:04 -04:00
										 |  |  |   def copy?(file) | 
					
						
							| 
									
										
										
										
											2014-06-07 23:40:26 -05:00
										 |  |  |     file = file.downcase | 
					
						
							| 
									
										
										
										
											2020-08-28 01:30:58 -04:00
										 |  |  |     return true if LICENSES.include? file.split(/\.|-/).first | 
					
						
							| 
									
										
										
										
											2020-08-26 14:28:23 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-07 23:40:26 -05:00
										 |  |  |     ext  = File.extname(file) | 
					
						
							|  |  |  |     file = File.basename(file, ext) if EXTENSIONS.include?(ext) | 
					
						
							|  |  |  |     BASENAMES.include?(file) | 
					
						
							| 
									
										
										
										
											2014-06-07 17:45:13 -05:00
										 |  |  |   end | 
					
						
							| 
									
										
										
										
											2012-09-09 13:19:53 -07:00
										 |  |  | end |