class Dbsketch::Rendering::Meta::OperationRenderer

Public Instance Methods

create(operation) click to toggle source
# File lib/dbsketch/rendering/meta/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/meta/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"
        elsif operation.is_a? Dbsketch::Model::Procedure
                keyword = "Procedure"
        else
                raise ArgumentError, "#{operation.class} is an unknown subclass of Dbsketch::Model::Operation"
        end
        "#{keyword}.drop #{operation.name}"
end

Private Instance Methods

create_function(function) click to toggle source
# File lib/dbsketch/rendering/meta/operation_renderer.rb, line 43
def create_function function
        arguments = function.arguments.map {|a| "\"#{a}\"" }
        arguments = function.arguments.count > 1 ? "[#{arguments.join(", ")}]" : arguments.first
        sql = "Dbsketch::Model::Function.new(\"#{function.name}\""
        sql << ", :arguments => #{arguments}" if nil != arguments
        sql << ", :returns => \"#{function.returns}\""
        sql << ", :algo => \"#{function.algo}\")"
        sql
end
create_procedure(procedure) click to toggle source
# File lib/dbsketch/rendering/meta/operation_renderer.rb, line 53
def create_procedure procedure
        arguments = procedure.arguments.map {|a| "\"#{a}\"" }
        arguments = procedure.arguments.count > 1 ? "[#{arguments.join(", ")}]" : arguments.first
        sql = "Dbsketch::Model::Procedure.new(\"#{procedure.name}\""
        sql << ", :arguments => #{arguments}" if nil != arguments
        sql << ", :algo => \"#{procedure.algo}\")"
        sql
end