Class: Inform::Grammar::Index
- Defined in:
- lib/story_teller/grammar_parser.rb
Overview
The Inform::Grammar::Index class
Constant Summary collapse
- AdminPattern =
%r{admin}.freeze
- BuilderPattern =
%r{builder}.freeze
- Profanity =
%w[shit damn fuck sod].freeze
- ValidModes =
%i[admin builder player].freeze
- ModePatterns =
ValidModes.each_with_object({}) do |key, memo| memo[key] = Regexp.new(key.to_s) end
Constants inherited from Hash
Hash::Empty, Hash::MethodBooleanPattern, Hash::MethodWriterPattern
Instance Method Summary collapse
- #all(actor = nil, grammar_index = self) ⇒ Object
- #by_mode(mode = nil, grammar_index = self) ⇒ Object
-
#lookup(key, actor = nil, grammar_index = self) ⇒ Object
TODO: Remove (2026-04-30) after confirming replacement below works better.
Methods inherited from Hash
Instance Method Details
#all(actor = nil, grammar_index = self) ⇒ Object
306 307 308 309 310 311 312 313 |
# File 'lib/story_teller/grammar_parser.rb', line 306 def all(actor = nil, grammar_index = self) return grammar_index.map(&:keys).flatten.sort if actor.nil? mode = role(actor) unless Inform::Grammar.partitions.include?(mode) init_all_verbs_by_mode(mode, grammar_index, actor) end Inform::Grammar.partitions[mode] end |
#by_mode(mode = nil, grammar_index = self) ⇒ Object
315 316 317 318 319 320 321 |
# File 'lib/story_teller/grammar_parser.rb', line 315 def by_mode(mode = nil, grammar_index = self) mode = validate(mode) unless Inform::Grammar.selections.include?(mode) init_verbs_filtered_by_mode(mode, grammar_index) end Inform::Grammar.selections[mode] end |
#lookup(key, actor = nil, grammar_index = self) ⇒ Object
TODO: Remove (2026-04-30) after confirming replacement below works better. def lookup(key, actor = nil, grammar_index = self)
return nil if key.nil? || !grammar_index.include?(key)
verb = grammar_index[key].dup
return verb if actor.nil?
return nil if guarded?(verb, actor)
(verb, actor)
verb
end
294 295 296 297 298 299 300 301 302 303 304 |
# File 'lib/story_teller/grammar_parser.rb', line 294 def lookup(key, actor = nil, grammar_index = self) return nil if key.nil? || !grammar_index.include?(key) verb = grammar_index[key].dup return verb if actor.nil? (verb, actor) return nil if verb.grammars.empty? verb end |