Sha256: 5d5ea8710866ff400431e8331427d4ef4229b0449ad1f0a73b487fbc77d2f980
Contents?: true
Size: 1.63 KB
Versions: 1
Compression:
Stored size: 1.63 KB
Contents
# frozen_string_literal: true require_relative "harbr/version" require "dddr" require "sucker_punch" module Harbr class Error < StandardError; end class Container class Job include SuckerPunch::Job def perform(manifest) puts "Harbr Job!" pool = Harbr::Port::Pool.new port = pool.get_port(manifest.host) p port puts manifest end end include Dddr::Entity attr_accessor :name, :host_header, :ip, :port end class Port include Dddr::Entity attr_accessor :host_header, :number queries do def has_port_number?(number) all.find { |port| port.number == number.to_i } end def assigned_a_port?(host_header) all.find { |port| port.host_header == host_header } end end class Pool def initialize(port_range = 50000..51000) @repository = Port::Repository.new port_range.each do |number| port = Port.new port.number = number unless @repository.has_port_number? number @repository.add(port) puts port.number.to_s + " added!" end end end def get_port(host_header) port = @repository.assigned_a_port?(host_header) return port unless port.nil? port = ports.shuffle.sample port.host_header = host_header @repository.update(port) port end def return_port(port) port.host_header = nil @repository.update(port) port.host_header.nil? end def ports @repository.all end end end # Your code goes here... end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
harbr-0.0.14 | lib/harbr.rb |