class StructCore::Specwriter
Public Class Methods
new()
click to toggle source
# File lib/spec/writer/spec_writer.rb, line 6 def initialize @writers = [] end
Public Instance Methods
register(writer)
click to toggle source
# File lib/spec/writer/spec_writer.rb, line 10 def register(writer) if writer.respond_to?(:write_spec) && writer.respond_to?(:can_write_version) && writer.respond_to?(:write_target) @writers << writer return end raise StandardError.new 'Unsupported writer object. Writer object must support :write and :can_write_version' end
register_defaults()
click to toggle source
# File lib/spec/writer/spec_writer.rb, line 19 def register_defaults @writers.unshift( StructCore::Specwriter20X.new, StructCore::Specwriter30X.new ) end
write_configuration(configuration, spec_version, path)
click to toggle source
@param configuration [StructCore::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) register_defaults if @writers.empty raise StandardError.new 'Error: Invalid configuration object. Configuration object was nil.' if configuration.nil? writer = @writers.find { |writer| writer.can_write_version(spec_version) } raise StandardError.new "Error: Invalid spec version. Project version #{spec_version} is unsupported by this version of struct." if writer.nil? writer.write_configuration(configuration, path) end
write_spec(spec, path, return_instead_of_write = false)
click to toggle source
@param spec [StructCore::Specfile] @param path [String]
# File lib/spec/writer/spec_writer.rb, line 28 def write_spec(spec, path, return_instead_of_write = false) register_defaults if @writers.empty? raise StandardError.new 'Error: Invalid spec object. Spec object was nil.' if spec.nil? writer = @writers.find { |writer| writer.can_write_version(spec.version) } raise StandardError.new "Error: Invalid spec object. Project version #{spec.version} is unsupported by this version of struct." if writer.nil? writer.write_spec(spec, path, return_instead_of_write) end
write_target(target, spec_version, path)
click to toggle source
@param target [StructCore::Specfile::Target] @param spec_version [Semantic::Version] @param path [String]
# File lib/spec/writer/spec_writer.rb, line 60 def write_target(target, spec_version, path) register_defaults if @writers.empty? raise StandardError.new 'Error: Invalid target object. Target object was nil.' if target.nil? writer = @writers.find { |writer| writer.can_write_version(spec_version) } raise StandardError.new "Error: Invalid spec version. Project version #{spec_version} is unsupported by this version of struct." if writer.nil? writer.write_target(target, path) end