Class: Knapsack::Allocator

Inherits:
Object
  • Object
show all
Defined in:
lib/knapsack/allocator.rb

Instance Method Summary collapse

Constructor Details

#initialize(args = {}) ⇒ Allocator

Returns a new instance of Allocator.



3
4
5
6
7
# File 'lib/knapsack/allocator.rb', line 3

def initialize(args={})
  @spec_pattern = args[:spec_pattern] || Config.spec_pattern
  @report_distributor = Knapsack::Distributors::ReportDistributor.new(args)
  @leftover_distributor = Knapsack::Distributors::LeftoverDistributor.new(args)
end

Instance Method Details

#leftover_node_specs ⇒ Object



13
14
15
# File 'lib/knapsack/allocator.rb', line 13

def leftover_node_specs
  @leftover_node_specs ||= @leftover_distributor.specs_for_current_node
end

#node_specs ⇒ Object



17
18
19
# File 'lib/knapsack/allocator.rb', line 17

def node_specs
  @node_specs ||= report_node_specs + leftover_node_specs
end

#report_node_specs ⇒ Object



9
10
11
# File 'lib/knapsack/allocator.rb', line 9

def report_node_specs
  @report_node_specs ||= @report_distributor.specs_for_current_node
end

#spec_dir ⇒ Object



25
26
27
# File 'lib/knapsack/allocator.rb', line 25

def spec_dir
  @spec_pattern.gsub(/^(.*?)\//).first
end

#stringify_node_specs ⇒ Object



21
22
23
# File 'lib/knapsack/allocator.rb', line 21

def stringify_node_specs
  node_specs.join(' ')
end