lib/configuration.rb in carthage_remote_cache-0.0.6 vs lib/configuration.rb in carthage_remote_cache-0.0.7
- old
+ new
@@ -9,54 +9,71 @@
def self.setup
yield(@@user_config)
end
- attr_reader :xcodebuild_version, :swift_version, :carthage_dependencies, :server_uri
+ attr_reader :carthage_resolved_dependencies, :server_uri
def self.new_with_defaults
Configuration.new(ShellWrapper.new)
end
def initialize(shell)
- initialize_env(shell)
+ @shell = shell
+ initialize_cartfile_resolved
initialize_cartrcfile
end
def all_framework_names
version_files.flat_map { |vf| vf.framework_names }.uniq.sort
end
+ # Ensure, that these lazy properties are loaded before kicking off async code.
+ def ensure_shell_commands
+ xcodebuild_version
+ swift_version
+ end
+
+ def xcodebuild_version
+ if @xcodebuild_version.nil?
+ xcodebuild_raw_version = @shell.xcodebuild_version
+ @xcodebuild_version = xcodebuild_raw_version[/Build version (.*)$/, 1]
+ raise AppError.new, "Could not parse build version from '#{xcodebuild_raw_version}'" if @xcodebuild_version.nil?
+ end
+ @xcodebuild_version
+ end
+
+ def swift_version
+ if @swift_version.nil?
+ swift_raw_version = @shell.swift_version
+ @swift_version = swift_raw_version[/Apple Swift version (.*) \(/, 1]
+ raise AppError.new, "Could not parse swift version from '#{raw_swift_version}'" if @swift_version.nil?
+ end
+ @swift_version
+ end
+
def to_s
<<~EOS
- Xcodebuild: #{@xcodebuild_version}
+ Xcodebuild: #{xcodebuild_version}
---
- Swift: #{@swift_version}
+ Swift: #{swift_version}
---
Server: #{@server_uri.to_s}
---
Cartfile.resolved:
- #{@carthage_dependencies.join("\n")}
+ #{@carthage_resolved_dependencies.join("\n")}
---
Local Build Frameworks:
#{framework_names_with_platforms.join("\n")}
EOS
end
private
- def initialize_env(shell)
- xcodebuild_raw_version = shell.xcodebuild_version
- @xcodebuild_version = xcodebuild_raw_version[/Build version (.*)$/, 1]
- raise AppError.new, "Could not parse build version from '#{xcodebuild_raw_version}'" if @xcodebuild_version.nil?
-
- swift_raw_version = shell.swift_version
- @swift_version = swift_raw_version[/Apple Swift version (.*) \(/, 1]
- raise AppError.new, "Could not parse swift version from '#{raw_swift_version}'" if @swift_version.nil?
-
+ def initialize_cartfile_resolved
raise AppError.new, "Misssing #{CARTFILE_RESOLVED}" unless File.exist?(CARTFILE_RESOLVED)
- @carthage_dependencies = File.readlines(CARTFILE_RESOLVED)
+ @carthage_resolved_dependencies = File.readlines(CARTFILE_RESOLVED)
.map { |line| CarthageDependency.parse_cartfile_resolved_line(line) }
.compact
end
def initialize_cartrcfile
@@ -77,8 +94,8 @@
end
lines.sort
end
def version_files
- @carthage_dependencies.map { |d| VersionFile.new(d.version_filepath) }
+ @carthage_resolved_dependencies.map { |d| d.new_version_file }
end
end