File: template_context.rb

package info (click to toggle)
ruby-compass 1.0.1~dfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 8,152 kB
  • ctags: 1,795
  • sloc: ruby: 12,901; makefile: 127; perl: 43; xml: 14; sh: 4
file content (44 lines) | stat: -rw-r--r-- 947 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
module Compass
  module Installers
    class TemplateContext

      def self.ctx(*arguments)
        new(*arguments).send(:get_binding)
      end

      def initialize(template, locals = {})
        @template = template
        @locals = locals
      end

      def http_stylesheets_path
        config.http_stylesheets_path ||
        config.default_for(:http_stylesheets_path) ||
        config.http_root_relative(config.css_dir)
      end

      Compass::Configuration::ATTRIBUTES.each do |attribute|
        unless instance_methods.include?(attribute.to_s)
          define_method attribute do
            config.send(attribute) || config.default_for(attribute)
          end
        end
      end

      def config
        Compass.configuration
      end

      alias configuration config

      protected

      def get_binding
        @locals.each do |k, v|
          eval("#{k} = v")
        end
        binding
      end
    end
  end
end