Class: Mkxms::Mssql::ClrStoredProcedureHandler

Inherits:
Object
  • Object
show all
Includes:
PropertyHandler::ElementHandler
Defined in:
lib/mkxms/mssql/clr_stored_procedure_handler.rb

Instance Method Summary collapse

Methods included from PropertyHandler::ElementHandler

#handle_property_element

Constructor Details

#initialize(procedures, node) ⇒ ClrStoredProcedureHandler

Returns a new instance of ClrStoredProcedureHandler.



57
58
59
60
61
62
63
64
# File 'lib/mkxms/mssql/clr_stored_procedure_handler.rb', line 57

def initialize(procedures, node)
  a = node.attributes
  
  @procedure = ClrStoredProcedure.new(a).tap do |sp|
    store_properties_on sp
    procedures << sp
  end
end

Instance Method Details

#handle_implementation_element(parse) ⇒ Object



66
67
68
69
# File 'lib/mkxms/mssql/clr_stored_procedure_handler.rb', line 66

def handle_implementation_element(parse)
  a = parse.node.attributes
  @procedure.clr_impl = ClrMethod.new(a['assembly'], a['class'], a['method'])
end

#handle_parameter_element(parse) ⇒ Object



71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/mkxms/mssql/clr_stored_procedure_handler.rb', line 71

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|
    @procedure.params << param
    parse.context = ParameterHandler.new(param)
  end
end