Sha256: 44568d06a1313cc6541fb76a38322745f87e323b8c331eaf5b02f2e8f9a0dab5
Contents?: true
Size: 1.74 KB
Versions: 2
Compression:
Stored size: 1.74 KB
Contents
require 'woodhouse' require File.dirname(File.expand_path(__FILE__)) + '/shared_contexts' describe Woodhouse::LayoutBuilder do it_should_behave_like "common" it "should provide a DSL to set up layouts" do registry = { :Pam => FakeWorker, :Cyril => FakeWorker, :Ray => FakeWorker, :Lana => FakeWorker, } common_config.registry = registry builder = Woodhouse::LayoutBuilder.new(common_config) do |layout| layout.node(:default) do |default| # Eight workers... default.all_workers :threads => 2 # Six workers... default.remove :Cyril # Five workers... default.remove :Ray, :foo # Six workers. default.add :Ray, :bar, :only => { :baz => "bat" } end layout.node(:odin) do |odin| # Two workers. odin.add :Lana, :threads => 2 # Still two workers odin.add :Lana, :threads => 5 end end layout = builder.layout layout.nodes.should have(2).nodes default = layout.node(:default) default.workers.should have(6).workers default.workers.first.threads.should == 2 default.workers.map(&:worker_class_name).should_not include(:Cyril) default.workers.map(&:worker_class_name).should include(:Ray) default.workers.select{|wk| wk.worker_class_name == :Ray }.map(&:job_method).should_not include(:foo) ray = default.workers.detect{|wk| wk.worker_class_name == :Ray && wk.criteria.criteria } ray.should_not be_nil ray.criteria.matches?("baz" => "bat").should be_true odin = layout.node(:odin) odin.workers.should have(2).workers odin.workers.first.threads.should == 5 Woodhouse::Layout.load(layout.dump).dump.should == layout.dump end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
woodhouse-0.1.2 | spec/layout_builder_spec.rb |
woodhouse-0.1.1 | spec/layout_builder_spec.rb |