class Mkxms::Mssql::ClrArggregateHandler

Public Class Methods

new(aggregates, node) click to toggle source
# File lib/mkxms/mssql/clr_aggregate_handler.rb, line 56
def initialize(aggregates, node)
  a = node.attributes
  
  @aggregate = ClrAggregate.new(a).tap do |agg|
    store_properties_on agg
    aggregates << agg
  end
end

Public Instance Methods

handle_implementation_element(parse) click to toggle source
# File lib/mkxms/mssql/clr_aggregate_handler.rb, line 65
def handle_implementation_element(parse)
  a = parse.node.attributes
  @aggregate.clr_impl = ClrClass.new(a['assembly'], a['class'])
end
handle_parameter_element(parse) click to toggle source
# File lib/mkxms/mssql/clr_aggregate_handler.rb, line 70
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|
    @aggregate.params << param
    parse.context = ParameterHandler.new(param)
  end
end
handle_returns_element(parse) click to toggle source
# File lib/mkxms/mssql/clr_aggregate_handler.rb, line 87
def handle_returns_element(parse)
  a = parse.node.attributes
  @aggregate.returns = ResultType.new(
    a['type-schema'],
    a['type'],
    a['capacity'],
    a['precision'],
    a['scale'],
  )
end