Sha256: 1ccad5cb0584c5aa776289af3ad6cbf677a7402e976cb94442a3133370383863

Contents?: true

Size: 1.04 KB

Versions: 25

Compression:

Stored size: 1.04 KB

Contents

module Testbot::Server

  class Build < MemoryModel

    def initialize(hash)
      super({ :success => true, :done => false, :results => '' }.merge(hash))
    end

    def self.create_and_build_jobs(hash)
      hash["jruby"] = (hash["jruby"] == "true") ? 1 : 0
      build = create(hash.reject { |k, v| k == 'available_runner_usage' })
      build.create_jobs!(hash['available_runner_usage'])
      build
    end

    def create_jobs!(available_runner_usage)
      groups = Group.build(self.files.split, self.sizes.split.map { |size| size.to_i },
                           Runner.total_instances.to_f * (available_runner_usage.to_i / 100.0), self.type)
      groups.each do |group|
        Job.create(:files => group.join(' '),
                   :root => self.root,
                   :project => self.project,
                   :type => self.type,
                   :build => self,
                   :jruby => self.jruby)
      end
    end

    def destroy
      Job.all.find_all { |j| j.build == self }.each { |job| job.destroy }
      super
    end

  end

end

Version data entries

25 entries across 25 versions & 2 rubygems

Version Path
testbot-0.7.12 lib/server/build.rb
testbot-0.7.11 lib/server/build.rb
testbot-0.7.9 lib/server/build.rb
testbot_instructure-0.7.9 lib/server/build.rb
testbot_instructure-0.7.8 lib/server/build.rb
testbot-0.7.8 lib/server/build.rb
testbot-0.7.7 lib/server/build.rb
testbot-0.7.6 lib/server/build.rb
testbot-0.7.5 lib/server/build.rb
testbot-0.7.3 lib/server/build.rb
testbot-0.7.2 lib/server/build.rb
testbot-0.7.1 lib/server/build.rb
testbot-0.7.0 lib/server/build.rb
testbot-0.6.9 lib/server/build.rb
testbot-0.6.8 lib/server/build.rb
testbot-0.6.7 lib/server/build.rb
testbot-0.6.6 lib/server/build.rb
testbot-0.6.5 lib/server/build.rb
testbot-0.6.4 lib/server/build.rb
testbot-0.6.3 lib/server/build.rb