lib/run_loop/device.rb in run_loop-2.5.3 vs lib/run_loop/device.rb in run_loop-2.5.4

- old
+ new

@@ -273,83 +273,48 @@ @state = simctl.simulator_state_as_string(self) end # @!visibility private def simulator_root_dir - @simulator_root_dir ||= lambda { - return nil if physical_device? - File.join(CORE_SIMULATOR_DEVICE_DIR, udid) - }.call + return nil if physical_device? + @simulator_root_dir ||= File.join(CORE_SIMULATOR_DEVICE_DIR, udid) end # @!visibility private def simulator_accessibility_plist_path - @simulator_accessibility_plist_path ||= lambda { - return nil if physical_device? - File.join(simulator_root_dir, 'data/Library/Preferences/com.apple.Accessibility.plist') - }.call + return nil if physical_device? + + directory = File.join(simulator_root_dir, "data", "Library", "Preferences") + pbuddy.ensure_plist(directory, "com.apple.Accessibility.plist") end # @!visibility private def simulator_preferences_plist_path return nil if physical_device? - directory = File.join(simulator_root_dir, "data", "Library", "Preferences") - - if !File.exist?(directory) - FileUtils.mkdir_p(directory) - end - - plist = File.join(directory, "com.apple.Preferences.plist") - - if !File.exist?(plist) - pbuddy.create_plist(plist) - end - plist + pbuddy.ensure_plist(directory, "com.apple.Preferences.plist") end # @!visibility private def simulator_log_file_path - @simulator_log_file_path ||= lambda { - return nil if physical_device? - File.join(CORE_SIMULATOR_LOGS_DIR, udid, 'system.log') - }.call + return nil if physical_device? + @simulator_log_file_path ||= File.join(CORE_SIMULATOR_LOGS_DIR, udid, + 'system.log') end # @!visibility private def simulator_device_plist - @simulator_device_plist ||= lambda do - return nil if physical_device? - File.join(simulator_root_dir, 'device.plist') - end.call + return nil if physical_device? + pbuddy.ensure_plist(simulator_root_dir, "device.plist") end # @!visibility private - def simulator_global_preferences_path(timeout=10) + def simulator_global_preferences_path return nil if physical_device? - - path = File.join(simulator_root_dir, - "data/Library/Preferences/.GlobalPreferences.plist") - - return path if File.exist?(path) - - start = Time.now - while !File.exist?(path) && (start + timeout) < Time.now - sleep(1.0) - end - - return path if File.exist?(path) - - raise(RuntimeError, %Q[ -Timed out waiting for .GlobalPreferences.plist after #{Time.now - start} seconds. - -File does not exist at path: - -#{path} - -]) + directory = File.join(simulator_root_dir, "data", "Library", "Preferences") + pbuddy.ensure_plist(directory, ".GlobalPreferences.plist") end # @!visibility private # In megabytes def simulator_size_on_disk @@ -472,28 +437,17 @@ "The language code '#{lang_code}' is not valid for this device" end global_plist = simulator_global_preferences_path - cmd = [ - "/usr/libexec/PlistBuddy", - "-c", - "Add :AppleLanguages:0 string '#{lang_code}'", - global_plist - ] - - # RunLoop::PlistBuddy cannot add items to arrays. - hash = run_shell_command(cmd, {:log_cmd => true}) - - if hash[:exit_status] != 0 + begin + pbuddy.unshift_array("AppleLanguages", "string", lang_code, + global_plist) + rescue RuntimeError => e raise RuntimeError, %Q[ -Could not update the Simulator languages because this command: +Could not update the Simulator languages. -#{cmd.join(" ")} - -failed with this output: - -#{hash[:out]} +#{e.message} ] end simulator_languages