Class: Temill::SourceFile::InsertionPointSet
- Inherits:
-
Object
- Object
- Temill::SourceFile::InsertionPointSet
- Includes:
- Enumerable
- Defined in:
- lib/temill/core.rb
Overview
represent a set of insertion points in a single source file
Instance Method Summary collapse
- #add(ip) ⇒ Object
- #at_caller_lineno(lineno) ⇒ InsertionPoint?
- #at_emitter_lineno(lineno) ⇒ Array<InsertionPoint>?
- #each(&block) ⇒ Object
-
#initialize ⇒ InsertionPointSet
constructor
A new instance of InsertionPointSet.
Constructor Details
#initialize ⇒ InsertionPointSet
243 244 245 246 |
# File 'lib/temill/core.rb', line 243 def initialize @caller_lineno_to_ip = {} @emitter_lineno_to_ips = {} end |
Instance Method Details
#add(ip) ⇒ Object
248 249 250 251 252 253 254 255 256 257 258 |
# File 'lib/temill/core.rb', line 248 def add(ip) if @caller_lineno_to_ip[ip.caller_lineno] false else @caller_lineno_to_ip[ip.caller_lineno] = ip ((@emitter_lineno_to_ips[ip.emitter_lineno] ||= []) << ip).sort_by!{| ips | ips.caller_lineno } true end end |
#at_caller_lineno(lineno) ⇒ InsertionPoint?
262 263 264 |
# File 'lib/temill/core.rb', line 262 def at_caller_lineno(lineno) @caller_lineno_to_ip[lineno] end |
#at_emitter_lineno(lineno) ⇒ Array<InsertionPoint>?
268 269 270 |
# File 'lib/temill/core.rb', line 268 def at_emitter_lineno(lineno) @emitter_lineno_to_ips[lineno] end |
#each(&block) ⇒ Object
272 273 274 |
# File 'lib/temill/core.rb', line 272 def each(&block) @caller_lineno_to_ip.values.each(&block) end |