Sha256: c85b5c454e1b1a84ebf70d4dbc90d8450d5fec9c1cb2551ef10ee9c100ca31c9

Contents?: true

Size: 1.34 KB

Versions: 9

Compression:

Stored size: 1.34 KB

Contents

module Odania
	class GenerateBackendVcl
		attr_accessor :default_backend, :backend_groups, :template

		def initialize(default_backend, backend_groups)
			self.default_backend = default_backend
			self.backend_groups = backend_groups
			self.template = File.new("#{BASE_DIR}/templates/varnish/backend.vcl.erb").read

			@backend_names = []
		end

		def core_backends
			core_backends = []
			self.backend_groups.each_pair do |group_name, backend_group|
				if backend_group.core_backend
					backend_group.backends.each do |backend|
						core_backends << "#{Odania.varnish_sanitize(group_name)}_#{Odania.varnish_sanitize(backend.instance_name)}"
					end
				end
			end
			core_backends
		end

		def backend_name_for(group_name, instance_name)
			backend_name = "#{Odania.varnish_sanitize(group_name)}_#{Odania.varnish_sanitize(instance_name)}"
			@backend_names << backend_name
			backend_name
		end

		def backend_name_already_taken(group_name, instance_name)
			backend_name = "#{Odania.varnish_sanitize(group_name)}_#{Odania.varnish_sanitize(instance_name)}"
			if @backend_names.include? backend_name
				$logger.error "The Backend #{backend_name} is already defined!"
				return true
			end
			false
		end

		def render
			Erubis::Eruby.new(self.template).result(binding)
		end

		def write(out_dir)
			File.write("#{out_dir}/backend.vcl", self.render)
		end
	end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
odania-0.0.32 lib/odania/varnish/generators/generate_backend_vcl.rb
odania-0.0.31 lib/odania/varnish/generators/generate_backend_vcl.rb
odania-0.0.30 lib/odania/varnish/generators/generate_backend_vcl.rb
odania-0.0.29 lib/odania/varnish/generators/generate_backend_vcl.rb
odania-0.0.28 lib/odania/varnish/generators/generate_backend_vcl.rb
odania-0.0.27 lib/odania/varnish/generators/generate_backend_vcl.rb
odania-0.0.26 lib/odania/varnish/generators/generate_backend_vcl.rb
odania-0.0.25 lib/odania/varnish/generators/generate_backend_vcl.rb
odania-0.0.24 lib/odania/varnish/generators/generate_backend_vcl.rb