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