Module: Quake::EntityParser
- Defined in:
- lib/quake/entity.rb
Overview
Parses the BSP entity string into an array of Entity objects.
Class Method Summary collapse
-
.build_target_map(entities) ⇒ Object
Build a lookup table: targetname -> [Entity].
- .parse(entity_string) ⇒ Object
Class Method Details
.build_target_map(entities) ⇒ Object
Build a lookup table: targetname -> [Entity]
108 109 110 111 112 113 114 |
# File 'lib/quake/entity.rb', line 108 def self.build_target_map(entities) map = Hash.new { |h, k| h[k] = [] } entities.each do |ent| map[ent.targetname] << ent if ent.targetname end map end |
.parse(entity_string) ⇒ Object
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
# File 'lib/quake/entity.rb', line 85 def self.parse(entity_string) entities = [] current = nil entity_string.each_line do |line| line = line.strip case line when "{" current = {} when "}" entities << Entity.new(current) if current current = nil else if current && line =~ /\A"([^"]+)"\s+"([^"]*)"\z/ current[$1] = $2 end end end entities end |