Class: RunLoop::Xcode

Inherits:
Object
  • Object
show all
Defined in:
lib/run_loop/xcode.rb

Overview

Note:

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

Instance Method Details

#beta?Boolean

Note:

Relies on Xcode beta versions having and app bundle named Xcode-Beta.app

Is this a beta version of Xcode?

Returns:

  • (Boolean)

    True if the Xcode version is beta.



187
188
189
# File 'lib/run_loop/xcode.rb', line 187

def beta?
  developer_dir[/Xcode-[Bb]eta.app/, 0]
end

#developer_dirString

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.

Returns:

  • (String)

    path to current 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

#inspectObject

Returns debug String representation



23
24
25
# File 'lib/run_loop/xcode.rb', line 23

def inspect
  to_s
end

#to_sObject

Returns a String representation.



18
19
20
# File 'lib/run_loop/xcode.rb', line 18

def to_s
  "#<Xcode #{version.to_s}>"
end

#v50RunLoop::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.

Returns:



103
104
105
# File 'lib/run_loop/xcode.rb', line 103

def v50
  fetch_version(:v50)
end

#v51RunLoop::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.

Returns:



95
96
97
# File 'lib/run_loop/xcode.rb', line 95

def v51
  fetch_version(:v51)
end

#v60RunLoop::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.

Returns:



87
88
89
# File 'lib/run_loop/xcode.rb', line 87

def v60
  fetch_version(:v60)
end

#v61RunLoop::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.

Returns:



79
80
81
# File 'lib/run_loop/xcode.rb', line 79

def v61
  fetch_version(:v61)
end

#v62RunLoop::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.

Returns:



71
72
73
# File 'lib/run_loop/xcode.rb', line 71

def v62
  fetch_version(:v62)
end

#v63RunLoop::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.

Returns:



63
64
65
# File 'lib/run_loop/xcode.rb', line 63

def v63
  fetch_version(:v63)
end

#v64RunLoop::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.

Returns:



55
56
57
# File 'lib/run_loop/xcode.rb', line 55

def v64
  fetch_version(:v64)
end

#v70RunLoop::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.

Returns:



47
48
49
# File 'lib/run_loop/xcode.rb', line 47

def v70
  fetch_version(:v70)
end

#v71RunLoop::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.

Returns:



39
40
41
# File 'lib/run_loop/xcode.rb', line 39

def v71
  fetch_version(:v71)
end

#v72RunLoop::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.

Returns:



31
32
33
# File 'lib/run_loop/xcode.rb', line 31

def v72
  fetch_version(:v72)
end

#versionRunLoop::Version

Returns the current version of Xcode.

Returns:

  • (RunLoop::Version)

    The current version of Xcode as reported by xcrun xcodebuild -version.



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?

Returns:

  • (Boolean)

    true if the current Xcode version is >= 5.1



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?

Returns:

  • (Boolean)

    true if the current Xcode version is >= 6.1



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?

Returns:

  • (Boolean)

    true if the current Xcode version is >= 6.2



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?

Returns:

  • (Boolean)

    true if the current Xcode version is >= 6.3



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?

Returns:

  • (Boolean)

    true if the current Xcode version is >= 6.4



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?

Returns:

  • (Boolean)

    true if the current Xcode version is >= 6.0



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?

Returns:

  • (Boolean)

    true if the current Xcode version is >= 7.1



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?

Returns:

  • (Boolean)

    true if the current Xcode version is >= 7.1



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?

Returns:

  • (Boolean)

    true if the current Xcode version is >= 7.0



124
125
126
# File 'lib/run_loop/xcode.rb', line 124

def version_gte_7?
  version >= v70
end