Class: Gym::DetectValues
- Inherits:
-
Object
- Object
- Gym::DetectValues
- Defined in:
- lib/gym/detect_values.rb
Overview
This class detects all kinds of default values
Class Method Summary collapse
-
.detect_configuration ⇒ Object
Detects the available configurations (e.g. Debug, Release).
-
.detect_platform ⇒ Object
Is it an iOS device or a Mac?.
-
.detect_provisioning_profile ⇒ Object
Helper Methods.
- .detect_scheme ⇒ Object
-
.set_additional_default_values ⇒ Object
This is needed as these are more complex default values Returns the finished config object.
Class Method Details
.detect_configuration ⇒ Object
Detects the available configurations (e.g. Debug, Release)
68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/gym/detect_values.rb', line 68 def self.detect_configuration config = Gym.config configurations = Gym.project.configurations return if configurations.count == 0 # this is an optional value anyway if config[:configuration] # Verify the configuration is available unless configurations.include?(config[:configuration]) Helper.log.error "Couldn't find specified configuration '#{config[:configuration]}'.".red config[:configuration] = nil end end end |
.detect_platform ⇒ Object
Is it an iOS device or a Mac?
60 61 62 63 64 65 |
# File 'lib/gym/detect_values.rb', line 60 def self.detect_platform return if Gym.config[:destination] platform = Gym.project.mac? ? "OS X" : "iOS" # either `iOS` or `OS X` Gym.config[:destination] = "generic/platform=#{platform}" end |
.detect_provisioning_profile ⇒ Object
Helper Methods
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/gym/detect_values.rb', line 35 def self.detect_provisioning_profile unless Gym.config[:provisioning_profile_path] Dir.chdir(File.("..", Gym.project.path)) do profiles = Dir["*.mobileprovision"] if profiles.count == 1 profile = File.(profiles.last) elsif profiles.count > 1 puts "Found more than one provisioning profile in the project directory:" profile = choose(*(profiles)) end Gym.config[:provisioning_profile_path] = profile end end if Gym.config[:provisioning_profile_path] FastlaneCore::ProvisioningProfile.install(Gym.config[:provisioning_profile_path]) end end |
.detect_scheme ⇒ Object
55 56 57 |
# File 'lib/gym/detect_values.rb', line 55 def self.detect_scheme Gym.project.select_scheme end |
.set_additional_default_values ⇒ Object
This is needed as these are more complex default values Returns the finished config object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/gym/detect_values.rb', line 6 def self.set_additional_default_values config = Gym.config FastlaneCore::Project.detect_projects(config) Gym.project = FastlaneCore::Project.new(config) detect_provisioning_profile # Go into the project's folder Dir.chdir(File.("..", Gym.project.path)) do config.load_configuration_file(Gym.gymfile_name) end config[:use_legacy_build_api] = true if Xcode.pre_7? detect_scheme detect_platform # we can only do that *after* we have the scheme detect_configuration config[:output_name] ||= Gym.project.app_name # we do it here, since the value is optional and should be pre-filled by fastlane if necessary config[:export_method] ||= "app-store" return config end |