51 lines
		
	
	
		
			758 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
		
		
			
		
	
	
			51 lines
		
	
	
		
			758 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
|   | require "os/mac/architecture_list" | ||
|  | 
 | ||
|  | module SharedMachO | ||
|  |   def archs | ||
|  |     mach_data.map { |m| m.fetch :arch }.extend(ArchitectureListExtension) | ||
|  |   end | ||
|  | 
 | ||
|  |   def arch | ||
|  |     case archs.length | ||
|  |     when 0 then :dunno | ||
|  |     when 1 then archs.first | ||
|  |     else :universal | ||
|  |     end | ||
|  |   end | ||
|  | 
 | ||
|  |   def universal? | ||
|  |     arch == :universal | ||
|  |   end | ||
|  | 
 | ||
|  |   def i386? | ||
|  |     arch == :i386 | ||
|  |   end | ||
|  | 
 | ||
|  |   def x86_64? | ||
|  |     arch == :x86_64 | ||
|  |   end | ||
|  | 
 | ||
|  |   def ppc7400? | ||
|  |     arch == :ppc7400 | ||
|  |   end | ||
|  | 
 | ||
|  |   def ppc64? | ||
|  |     arch == :ppc64 | ||
|  |   end | ||
|  | 
 | ||
|  |   # @private | ||
|  |   def dylib? | ||
|  |     mach_data.any? { |m| m.fetch(:type) == :dylib } | ||
|  |   end | ||
|  | 
 | ||
|  |   # @private | ||
|  |   def mach_o_executable? | ||
|  |     mach_data.any? { |m| m.fetch(:type) == :executable } | ||
|  |   end | ||
|  | 
 | ||
|  |   # @private | ||
|  |   def mach_o_bundle? | ||
|  |     mach_data.any? { |m| m.fetch(:type) == :bundle } | ||
|  |   end | ||
|  | end |