Class: Lingo::DeferredAttendee
- Defined in:
- lib/lingo/deferred_attendee.rb
Direct Known Subclasses
Constant Summary
Constants inherited from Attendee
Attendee::DEFAULT_SKIP, Attendee::TERMINALS
Constants included from Language
Language::CHAR_PUNCT, Language::LA_SORTORDER, Language::TA_ABBREVIATION, Language::TA_HELP, Language::TA_HTML, Language::TA_NUMBER, Language::TA_OTHER, Language::TA_PUNCTUATION, Language::TA_SKIP, Language::TA_SPACE, Language::TA_URL, Language::TA_WIKI, Language::TA_WORD, Language::WA_COMPOUND, Language::WA_IDENTIFIED, Language::WA_MULTIWORD, Language::WA_SEQUENCE, Language::WA_UNKMULPART, Language::WA_UNKNOWN, Language::WA_UNSET
Instance Attribute Summary
Attributes inherited from Attendee
Class Method Summary collapse
Instance Method Summary collapse
- #control_deferred(cmd) ⇒ Object
- #flush_deferred(&block) ⇒ Object
-
#initialize(config, lingo) ⇒ DeferredAttendee
constructor
A new instance of DeferredAttendee.
Methods inherited from Attendee
Constructor Details
#initialize(config, lingo) ⇒ DeferredAttendee
Returns a new instance of DeferredAttendee.
47 48 49 50 |
# File 'lib/lingo/deferred_attendee.rb', line 47 def initialize(config, lingo) self.class.enhance(self) super end |
Class Method Details
.enhance(base) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/lingo/deferred_attendee.rb', line 31 def self.enhance(base) base.instance_variable_set(:@deferr_buffer, []) def base.command(*args) @deferr_buffer << buf = [args] args.first != :EOT ? buf << control_deferred(*args) : flush_deferred { |block| @deferr_buffer.each { |command_args, control_args| super(*command_args) block[*control_args] if control_args } } end end |
Instance Method Details
#control_deferred(cmd) ⇒ Object
52 53 54 |
# File 'lib/lingo/deferred_attendee.rb', line 52 def control_deferred(cmd, *) raise NotImplementedError, 'must be implemented by subclass' end |
#flush_deferred(&block) ⇒ Object
56 57 58 |
# File 'lib/lingo/deferred_attendee.rb', line 56 def flush_deferred(&block) raise NotImplementedError, 'must be implemented by subclass' end |