Sha256: 6be39f8cbe13ad15127d6d7088467b65d0677d973a5ba624575042ec6f6c1d12
Contents?: true
Size: 776 Bytes
Versions: 3
Compression:
Stored size: 776 Bytes
Contents
require "attentive/entity" module Attentive class CompositeEntity < Entity attr_reader :entities @entities = [] class << self attr_accessor :entities def define(entity_name, *entities) entity_klass = Class.new(Attentive::CompositeEntity) entity_klass.token_name = entity_name entity_klass.entities = entities.map { |entity| Entity[entity] } Entity.register! entity_name, entity_klass end end def initialize(*args) super @entities = self.class.entities.map { |entity_klass| entity_klass.new(variable_name) } end def matches?(cursor) entities.each do |entity| match = entity.matches?(cursor.dup) return match if match end false end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
attentive-0.1.1 | lib/attentive/composite_entity.rb |
attentive-0.1.0 | lib/attentive/composite_entity.rb |
attentive-0.1.0.beta1 | lib/attentive/composite_entity.rb |