Class: RunLoop::Xcode
- Inherits:
-
Object
- Object
- RunLoop::Xcode
- Defined in:
- lib/run_loop/xcode.rb
Overview
All command line tools are run in the context of ‘xcrun`.
A model of the active Xcode version.
Throughout this class’s documentation, there are references to the _active version of Xcode_. The active Xcode version is the one returned by ‘xcrun xcodebuild`. The current Xcode version can be set using `xcode-select` or overridden using the `DEVELOPER_DIR`.
Instance Method Summary collapse
-
#beta? ⇒ Boolean
Is this a beta version of Xcode?.
-
#developer_dir ⇒ String
Returns the path to the current developer directory.
-
#inspect ⇒ Object
Returns debug String representation.
-
#to_s ⇒ Object
Returns a String representation.
-
#v50 ⇒ RunLoop::Version
Returns a version instance for ‘Xcode 5.0`; used to check for the availability of features and paths to various items on the filesystem.
-
#v51 ⇒ RunLoop::Version
Returns a version instance for ‘Xcode 5.1`; used to check for the availability of features and paths to various items on the filesystem.
-
#v60 ⇒ RunLoop::Version
Returns a version instance for ‘Xcode 6.0`; used to check for the availability of features and paths to various items on the filesystem.
-
#v61 ⇒ RunLoop::Version
Returns a version instance for ‘Xcode 6.1`; used to check for the availability of features and paths to various items on the filesystem.
-
#v62 ⇒ RunLoop::Version
Returns a version instance for ‘Xcode 6.2`; used to check for the availability of features and paths to various items on the filesystem.
-
#v63 ⇒ RunLoop::Version
Returns a version instance for ‘Xcode 6.3`; used to check for the availability of features and paths to various items on the filesystem.
-
#v64 ⇒ RunLoop::Version
Returns a version instance for ‘Xcode 6.4`; used to check for the availability of features and paths to various items on the filesystem.
-
#v70 ⇒ RunLoop::Version
Returns a version instance for ‘Xcode 7.0`; used to check for the availability of features and paths to various items on the filesystem.
-
#v71 ⇒ RunLoop::Version
Returns a version instance for ‘Xcode 7.1`; used to check for the availability of features and paths to various items on the filesystem.
-
#v72 ⇒ RunLoop::Version
Returns a version instance for ‘Xcode 7.1`; used to check for the availability of features and paths to various items on the filesystem.
-
#version ⇒ RunLoop::Version
Returns the current version of Xcode.
-
#version_gte_51? ⇒ Boolean
Is the active Xcode version 5.1 or above?.
-
#version_gte_61? ⇒ Boolean
Is the active Xcode version 6.1 or above?.
-
#version_gte_62? ⇒ Boolean
Is the active Xcode version 6.2 or above?.
-
#version_gte_63? ⇒ Boolean
Is the active Xcode version 6.3 or above?.
-
#version_gte_64? ⇒ Boolean
Is the active Xcode version 6.4 or above?.
-
#version_gte_6? ⇒ Boolean
Is the active Xcode version 6 or above?.
-
#version_gte_71? ⇒ Boolean
Is the active Xcode version 7.1 or above?.
-
#version_gte_72? ⇒ Boolean
Is the active Xcode version 7.1 or above?.
-
#version_gte_7? ⇒ Boolean
Is the active Xcode version 7 or above?.
Instance Method Details
#beta? ⇒ Boolean
Relies on Xcode beta versions having and app bundle named Xcode-Beta.app
Is this a beta version of Xcode?
187 188 189 |
# File 'lib/run_loop/xcode.rb', line 187 def beta? developer_dir[/Xcode-[Bb]eta.app/, 0] end |
#developer_dir ⇒ String
Returns the path to the current developer directory.
From the man pages:
“‘ $ man xcode-select DEVELOPER_DIR Overrides the active developer directory. When DEVELOPER_DIR is set, its value will be used instead of the system-wide active developer directory. “`
204 205 206 207 208 209 210 211 |
# File 'lib/run_loop/xcode.rb', line 204 def developer_dir @xcode_developer_dir ||= if RunLoop::Environment.developer_dir RunLoop::Environment.developer_dir else xcode_select_path end end |
#inspect ⇒ Object
Returns debug String representation
23 24 25 |
# File 'lib/run_loop/xcode.rb', line 23 def inspect to_s end |
#to_s ⇒ Object
Returns a String representation.
18 19 20 |
# File 'lib/run_loop/xcode.rb', line 18 def to_s "#<Xcode #{version.to_s}>" end |
#v50 ⇒ RunLoop::Version
Returns a version instance for ‘Xcode 5.0`; used to check for the availability of features and paths to various items on the filesystem.
103 104 105 |
# File 'lib/run_loop/xcode.rb', line 103 def v50 fetch_version(:v50) end |
#v51 ⇒ RunLoop::Version
Returns a version instance for ‘Xcode 5.1`; used to check for the availability of features and paths to various items on the filesystem.
95 96 97 |
# File 'lib/run_loop/xcode.rb', line 95 def v51 fetch_version(:v51) end |
#v60 ⇒ RunLoop::Version
Returns a version instance for ‘Xcode 6.0`; used to check for the availability of features and paths to various items on the filesystem.
87 88 89 |
# File 'lib/run_loop/xcode.rb', line 87 def v60 fetch_version(:v60) end |
#v61 ⇒ RunLoop::Version
Returns a version instance for ‘Xcode 6.1`; used to check for the availability of features and paths to various items on the filesystem.
79 80 81 |
# File 'lib/run_loop/xcode.rb', line 79 def v61 fetch_version(:v61) end |
#v62 ⇒ RunLoop::Version
Returns a version instance for ‘Xcode 6.2`; used to check for the availability of features and paths to various items on the filesystem.
71 72 73 |
# File 'lib/run_loop/xcode.rb', line 71 def v62 fetch_version(:v62) end |
#v63 ⇒ RunLoop::Version
Returns a version instance for ‘Xcode 6.3`; used to check for the availability of features and paths to various items on the filesystem.
63 64 65 |
# File 'lib/run_loop/xcode.rb', line 63 def v63 fetch_version(:v63) end |
#v64 ⇒ RunLoop::Version
Returns a version instance for ‘Xcode 6.4`; used to check for the availability of features and paths to various items on the filesystem.
55 56 57 |
# File 'lib/run_loop/xcode.rb', line 55 def v64 fetch_version(:v64) end |
#v70 ⇒ RunLoop::Version
Returns a version instance for ‘Xcode 7.0`; used to check for the availability of features and paths to various items on the filesystem.
47 48 49 |
# File 'lib/run_loop/xcode.rb', line 47 def v70 fetch_version(:v70) end |
#v71 ⇒ RunLoop::Version
Returns a version instance for ‘Xcode 7.1`; used to check for the availability of features and paths to various items on the filesystem.
39 40 41 |
# File 'lib/run_loop/xcode.rb', line 39 def v71 fetch_version(:v71) end |
#v72 ⇒ RunLoop::Version
Returns a version instance for ‘Xcode 7.1`; used to check for the availability of features and paths to various items on the filesystem.
31 32 33 |
# File 'lib/run_loop/xcode.rb', line 31 def v72 fetch_version(:v72) end |
#version ⇒ RunLoop::Version
Returns the current version of Xcode.
174 175 176 177 178 179 180 181 |
# File 'lib/run_loop/xcode.rb', line 174 def version @xcode_version ||= lambda do execute_command(['-version']) do |stdout, _, _| version_string = stdout.read.chomp[VERSION_REGEX, 0] RunLoop::Version.new(version_string) end end.call end |
#version_gte_51? ⇒ Boolean
Is the active Xcode version 5.1 or above?
166 167 168 |
# File 'lib/run_loop/xcode.rb', line 166 def version_gte_51? version >= v51 end |
#version_gte_61? ⇒ Boolean
Is the active Xcode version 6.1 or above?
152 153 154 |
# File 'lib/run_loop/xcode.rb', line 152 def version_gte_61? version >= v61 end |
#version_gte_62? ⇒ Boolean
Is the active Xcode version 6.2 or above?
145 146 147 |
# File 'lib/run_loop/xcode.rb', line 145 def version_gte_62? version >= v62 end |
#version_gte_63? ⇒ Boolean
Is the active Xcode version 6.3 or above?
138 139 140 |
# File 'lib/run_loop/xcode.rb', line 138 def version_gte_63? version >= v63 end |
#version_gte_64? ⇒ Boolean
Is the active Xcode version 6.4 or above?
131 132 133 |
# File 'lib/run_loop/xcode.rb', line 131 def version_gte_64? version >= v64 end |
#version_gte_6? ⇒ Boolean
Is the active Xcode version 6 or above?
159 160 161 |
# File 'lib/run_loop/xcode.rb', line 159 def version_gte_6? version >= v60 end |
#version_gte_71? ⇒ Boolean
Is the active Xcode version 7.1 or above?
117 118 119 |
# File 'lib/run_loop/xcode.rb', line 117 def version_gte_71? version >= v71 end |
#version_gte_72? ⇒ Boolean
Is the active Xcode version 7.1 or above?
110 111 112 |
# File 'lib/run_loop/xcode.rb', line 110 def version_gte_72? version >= v72 end |
#version_gte_7? ⇒ Boolean
Is the active Xcode version 7 or above?
124 125 126 |
# File 'lib/run_loop/xcode.rb', line 124 def version_gte_7? version >= v70 end |