Sha256: 1711a1e2c4e5c13d2424349865870d686da58e343d8f786f15f5fe88eec7de9e
Contents?: true
Size: 889 Bytes
Versions: 3
Compression:
Stored size: 889 Bytes
Contents
module AQL class Node # Abstract base class for literal nodes class Literal < self REGISTRY = {} # Register handler # # @param [Class] klass # # @return [undefined] # # @api private # def self.handle(klass) REGISTRY[klass]=self end private_class_method :handle # Build literal handler # # @param [Object] object # # @return [Node::Literal] # # @api private # def self.build(object) klass = object.class handler = REGISTRY.fetch(klass) do raise "No support for literal #{klass}" end handler.construct(object) end # Construct object # # @return [Node::Literal] # # @api private # def self.construct(*args) new(*args) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
aql-0.0.3 | lib/aql/node/literal.rb |
aql-0.0.2 | lib/aql/node/literal.rb |
aql-0.0.1 | lib/aql/node/literal.rb |