class Mkxms::Mssql::ClrFunctionHandler
Public Class Methods
new(functions, node)
click to toggle source
# File lib/mkxms/mssql/clr_function_handler.rb, line 107 def initialize(functions, node) a = node.attributes @function = ClrFunction.new(a).tap do |f| store_properties_on f functions << f end end
Public Instance Methods
handle_column_element(parse)
click to toggle source
# File lib/mkxms/mssql/clr_function_handler.rb, line 153 def handle_column_element(parse) a = parse.node.attributes ClrFunction::ResultTable::Column.new( a['name'], ResultType.new( a['type-schema'], a['type'], a['capacity'], a['precision'], a['scale'], a['collation'], ) ).tap do |col| @result_table.columns << col # Dispatch parse for column properties parse.context = ResultTableColumnHandler.new(col) end end
handle_implementation_element(parse)
click to toggle source
# File lib/mkxms/mssql/clr_function_handler.rb, line 116 def handle_implementation_element(parse) a = parse.node.attributes @function.clr_impl = ClrMethod.new(a['assembly'], a['class'], a['method']) end
handle_parameter_element(parse)
click to toggle source
# File lib/mkxms/mssql/clr_function_handler.rb, line 121 def handle_parameter_element(parse) a = parse.node.attributes Parameter.new( a['name'], a['type-schema'], a['type'], a['capacity'], a['precision'], a['scale'], a['default'], a['output'], ).tap do |param| @function.params << param parse.context = ParameterHandler.new(param) end end
handle_result_table_element(parse)
click to toggle source
# File lib/mkxms/mssql/clr_function_handler.rb, line 149 def handle_result_table_element(parse) @function.result_table = @result_table = ClrFunction::ResultTable.new end
handle_returns_element(parse)
click to toggle source
# File lib/mkxms/mssql/clr_function_handler.rb, line 138 def handle_returns_element(parse) a = parse.node.attributes @function.returns = ResultType.new( a['type-schema'], a['type'], a['capacity'], a['precision'], a['scale'], ) end