class Xcodegen::Specwriter
Public Class Methods
new()
click to toggle source
# File lib/spec/writer/spec_writer.rb, line 5 def initialize @writers = [] end
Public Instance Methods
register(writer)
click to toggle source
# File lib/spec/writer/spec_writer.rb, line 9 def register(writer) if writer.respond_to?(:write_spec) && writer.respond_to?(:can_write_version) && writer.respond_to?(:write_target) @writers << writer else raise StandardError.new 'Unsupported writer object. Writer object must support :write and :can_write_version' end end
register_defaults()
click to toggle source
# File lib/spec/writer/spec_writer.rb, line 17 def register_defaults @writers.unshift *[ Xcodegen::Specwriter10X.new ] end
write_configuration(configuration, spec_version, path)
click to toggle source
@param configuration [Xcodegen::Specfile::Configuration] @param spec_version [Semantic::Version] @param path [String]
# File lib/spec/writer/spec_writer.rb, line 44 def write_configuration(configuration, spec_version, path) if @writers.length == 0 register_defaults end raise StandardError.new 'Error: Invalid configuration object. Configuration object was nil.' unless configuration != nil writer = @writers.find { |writer| writer.can_write_version(spec_version) } raise StandardError.new "Error: Invalid spec version. Project version #{spec_version.to_s} is unsupported by this version of xcodegen." unless writer != nil writer.write_configuration(configuration, path) end
write_spec(spec, path)
click to toggle source
@param spec [Xcodegen::Specfile] @param path [String]
# File lib/spec/writer/spec_writer.rb, line 25 def write_spec(spec, path) if @writers.length == 0 register_defaults end raise StandardError.new 'Error: Invalid spec object. Spec object was nil.' unless spec != nil writer = @writers.find { |writer| writer.can_write_version(spec.version) } raise StandardError.new "Error: Invalid spec object. Project version #{spec.version.to_s} is unsupported by this version of xcodegen." unless writer != nil writer.write_spec(spec, path) end
write_target(target, spec_version, path)
click to toggle source
@param target [Xcodegen::Specfile::Target] @param spec_version [Semantic::Version] @param path [String]
# File lib/spec/writer/spec_writer.rb, line 63 def write_target(target, spec_version, path) if @writers.length == 0 register_defaults end raise StandardError.new 'Error: Invalid target object. Target object was nil.' unless target != nil writer = @writers.find { |writer| writer.can_write_version(spec_version) } raise StandardError.new "Error: Invalid spec version. Project version #{spec_version.to_s} is unsupported by this version of xcodegen." unless writer != nil writer.write_target(target, path) end