Class: Woodhouse::Layout::Changes

Inherits:
Object
  • Object
show all
Defined in:
lib/woodhouse/layout.rb

Overview

A diff between two Layouts, used to determine what workers need to be spun up and down when a layout change is sent to a Server.

Instance Method Summary collapse

Constructor Details

#initialize(new_layout, old_layout, node_name) ⇒ Changes

Returns a new instance of Changes.



256
257
258
259
260
261
262
# File 'lib/woodhouse/layout.rb', line 256

def initialize(new_layout, old_layout, node_name)
  @new_layout = new_layout
  @new_node = @new_layout && @new_layout.node(node_name)
  @old_layout = old_layout
  @old_node = @old_layout && @old_layout.node(node_name)
  @node_name = node_name
end

Instance Method Details

#addsObject



264
265
266
267
268
# File 'lib/woodhouse/layout.rb', line 264

def adds
  new_workers.reject{|worker|
    old_workers.member? worker
  }
end

#dropsObject



270
271
272
273
274
# File 'lib/woodhouse/layout.rb', line 270

def drops
  old_workers.reject{|worker|
    new_workers.member? worker
  }
end