Class: DeepCover::TrackerBucket

Inherits:
Object
  • Object
show all
Defined in:
lib/deep_cover/tracker_bucket.rb,
lib/deep_cover/tracker_storage.rb

Overview

List of allocated trackers from a bucket. Should be thought of as a simple array of integers with a limited interface.

Constant Summary collapse

@@index =
{}

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.[](global_name) ⇒ Object Also known as: _load

Raises:

  • (ArgumentError)


12
13
14
15
# File 'lib/deep_cover/tracker_bucket.rb', line 12

def self.[](global_name)
  raise ArgumentError, "'#{global_name}' is not a valid global name" unless global_name.start_with? '$'
  @@index[global_name] ||= new(global_name)
end

Instance Method Details

#create_storage(index = nil) ⇒ Object



34
35
36
37
# File 'lib/deep_cover/tracker_bucket.rb', line 34

def create_storage(index = nil)
  index ||= @global.size
  TrackerStorage.new(bucket: self, array: @global[index] ||= [], index: index)
end

#inspectObject



30
31
32
# File 'lib/deep_cover/tracker_bucket.rb', line 30

def inspect
  %{#<DeepCover::TrackerBucket "#{@global_name}">}
end

#setup_sourceObject



17
18
19
# File 'lib/deep_cover/tracker_bucket.rb', line 17

def setup_source
  "#{source} ||= {}"
end

#sourceObject



21
22
23
# File 'lib/deep_cover/tracker_bucket.rb', line 21

def source
  @global_name
end