Class: Odania::GenerateBackendVcl

Inherits:
Object
  • Object
show all
Defined in:
lib/odania/varnish/generators/generate_backend_vcl.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(default_backend, backend_groups) ⇒ GenerateBackendVcl

Returns a new instance of GenerateBackendVcl.



5
6
7
8
9
# File 'lib/odania/varnish/generators/generate_backend_vcl.rb', line 5

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
end

Instance Attribute Details

#backend_groupsObject

Returns the value of attribute backend_groups.



3
4
5
# File 'lib/odania/varnish/generators/generate_backend_vcl.rb', line 3

def backend_groups
  @backend_groups
end

#default_backendObject

Returns the value of attribute default_backend.



3
4
5
# File 'lib/odania/varnish/generators/generate_backend_vcl.rb', line 3

def default_backend
  @default_backend
end

#templateObject

Returns the value of attribute template.



3
4
5
# File 'lib/odania/varnish/generators/generate_backend_vcl.rb', line 3

def template
  @template
end

Instance Method Details

#core_backendsObject



11
12
13
14
15
16
17
18
19
20
21
# File 'lib/odania/varnish/generators/generate_backend_vcl.rb', line 11

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

#renderObject



23
24
25
# File 'lib/odania/varnish/generators/generate_backend_vcl.rb', line 23

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

#write(out_dir) ⇒ Object



27
28
29
# File 'lib/odania/varnish/generators/generate_backend_vcl.rb', line 27

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