Class: Odania::GenerateBackendVcl
- Inherits:
-
Object
- Object
- Odania::GenerateBackendVcl
- Defined in:
- lib/odania/varnish/generators/generate_backend_vcl.rb
Instance Attribute Summary collapse
-
#backend_groups ⇒ Object
Returns the value of attribute backend_groups.
-
#default_backend ⇒ Object
Returns the value of attribute default_backend.
-
#template ⇒ Object
Returns the value of attribute template.
Instance Method Summary collapse
- #core_backends ⇒ Object
-
#initialize(default_backend, backend_groups) ⇒ GenerateBackendVcl
constructor
A new instance of GenerateBackendVcl.
- #render ⇒ Object
- #write(out_dir) ⇒ Object
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_groups ⇒ Object
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_backend ⇒ Object
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 |
#template ⇒ Object
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_backends ⇒ Object
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 |
#render ⇒ Object
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 |