Class: Mkxms::Mssql::ClrArggregateHandler
- Inherits:
-
Object
- Object
- Mkxms::Mssql::ClrArggregateHandler
- Includes:
- PropertyHandler::ElementHandler
- Defined in:
- lib/mkxms/mssql/clr_aggregate_handler.rb
Instance Method Summary collapse
- #handle_implementation_element(parse) ⇒ Object
- #handle_parameter_element(parse) ⇒ Object
- #handle_returns_element(parse) ⇒ Object
-
#initialize(aggregates, node) ⇒ ClrArggregateHandler
constructor
A new instance of ClrArggregateHandler.
Methods included from PropertyHandler::ElementHandler
Constructor Details
#initialize(aggregates, node) ⇒ ClrArggregateHandler
Returns a new instance of ClrArggregateHandler.
56 57 58 59 60 61 62 63 |
# 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 |
Instance Method Details
#handle_implementation_element(parse) ⇒ Object
65 66 67 68 |
# 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) ⇒ Object
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# 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) ⇒ Object
87 88 89 90 91 92 93 94 95 96 |
# 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 |