| 
									
										
										
										
											2014-07-03 14:50:57 -05:00
										 |  |  | require "requirement" | 
					
						
							| 
									
										
										
										
											2013-04-02 15:33:35 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-15 09:56:04 +01:00
										 |  |  | class X11Requirement < Requirement | 
					
						
							| 
									
										
										
										
											2013-04-02 15:33:35 -05:00
										 |  |  |   include Comparable | 
					
						
							|  |  |  |   attr_reader :min_version | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   fatal true | 
					
						
							| 
									
										
										
										
											2014-12-25 20:44:43 +00:00
										 |  |  |   cask "xquartz" | 
					
						
							|  |  |  |   download "https://xquartz.macosforge.org" | 
					
						
							| 
									
										
										
										
											2013-04-02 15:33:35 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |   env { ENV.x11 } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |   def initialize(name = "x11", tags = []) | 
					
						
							| 
									
										
										
										
											2013-04-02 15:33:35 -05:00
										 |  |  |     @name = name | 
					
						
							| 
									
										
										
										
											2014-07-01 21:26:41 -05:00
										 |  |  |     if /(\d\.)+\d/ === tags.first | 
					
						
							|  |  |  |       @min_version = Version.new(tags.shift) | 
					
						
							| 
									
										
										
										
											2014-12-25 19:35:44 +00:00
										 |  |  |       @min_version_string = " #{@min_version}" | 
					
						
							| 
									
										
										
										
											2014-07-01 21:26:41 -05:00
										 |  |  |     else | 
					
						
							|  |  |  |       @min_version = Version.new("0.0.0") | 
					
						
							| 
									
										
										
										
											2014-12-25 19:35:44 +00:00
										 |  |  |       @min_version_string = "" | 
					
						
							| 
									
										
										
										
											2014-07-01 21:26:41 -05:00
										 |  |  |     end | 
					
						
							| 
									
										
										
										
											2013-04-02 15:33:35 -05:00
										 |  |  |     super(tags) | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   satisfy :build_env => false do | 
					
						
							| 
									
										
										
										
											2014-07-01 23:56:00 -05:00
										 |  |  |     MacOS::XQuartz.installed? && min_version <= Version.new(MacOS::XQuartz.version) | 
					
						
							| 
									
										
										
										
											2013-04-02 15:33:35 -05:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-25 20:44:43 +00:00
										 |  |  |   def message | 
					
						
							|  |  |  |     s = "XQuartz#{@min_version_string} is required to install this formula." | 
					
						
							|  |  |  |     s += super | 
					
						
							|  |  |  |     s | 
					
						
							| 
									
										
										
										
											2013-04-02 15:33:35 -05:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |   def <=>(other) | 
					
						
							| 
									
										
										
										
											2015-06-15 09:56:04 +01:00
										 |  |  |     return unless X11Requirement === other | 
					
						
							| 
									
										
										
										
											2014-07-01 21:26:41 -05:00
										 |  |  |     min_version <=> other.min_version | 
					
						
							| 
									
										
										
										
											2013-04-02 15:33:35 -05:00
										 |  |  |   end | 
					
						
							| 
									
										
										
										
											2014-07-01 21:26:41 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |   def eql?(other) | 
					
						
							|  |  |  |     super && min_version == other.min_version | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2014-07-02 15:44:54 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |   def inspect | 
					
						
							|  |  |  |     "#<#{self.class.name}: #{name.inspect} #{tags.inspect} min_version=#{min_version}>" | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2013-04-02 15:33:35 -05:00
										 |  |  | end |