class Dbsketch::Rendering::SQL::OperationRenderer

Public Instance Methods

create(operation) click to toggle source
# File lib/dbsketch/rendering/sql/operation_renderer.rb, line 14
def create operation
        ### Preconditions
        raise ArgumentError, "operation is not a Dbsketch::Model::Operation" unless operation.is_a? Dbsketch::Model::Operation
        ###
        if operation.is_a? Dbsketch::Model::Function
                create_function operation
        elsif operation.is_a? Dbsketch::Model::Procedure
                create_procedure operation
        else
                raise ArgumentError, "#{operation.class} is an unknown subclass of Dbsketch::Model::Operation"
        end
end
drop(operation) click to toggle source
# File lib/dbsketch/rendering/sql/operation_renderer.rb, line 27
def drop operation
        ### Preconditions
        raise ArgumentError, "operation is not a Dbsketch::Model::Operation" unless operation.is_a? Dbsketch::Model::Operation
        ###
        if operation.is_a? Dbsketch::Model::Function
                keyword = "function"
                mssql_type = "FN"
        elsif operation.is_a? Dbsketch::Model::Procedure
                keyword = "procedure"
                mssql_type = "P"
        else
                raise ArgumentError, "#{operation.class} is an unknown subclass of Dbsketch::Model::Operation"
        end

        "if object_id('#{operation.name}', '#{mssql_type}') is not null drop #{keyword} #{operation.name}"
end

Private Instance Methods

create_function(function) click to toggle source
# File lib/dbsketch/rendering/sql/operation_renderer.rb, line 46
def create_function function
        sql = "create function #{function.name} ("
        sql << "#{function.arguments.join(", ")}" if not function.arguments.empty?
        sql << ") returns #{function.returns} as\nbegin\n\t#{function.algo}\nend"
        sql
end
create_procedure(procedure) click to toggle source
# File lib/dbsketch/rendering/sql/operation_renderer.rb, line 53
def create_procedure procedure
        sql = "create procedure #{procedure.name} "
        sql << "#{procedure.arguments.join(", ")} " if not procedure.arguments.empty?
        sql << "as\nbegin\n\t#{procedure.algo}\nend"
        sql
end