Sha256: cfa63442d6ec2f4914de7d138d7ebc1cb362833f13c4f8d37269f532a6bbd537

Contents?: true

Size: 927 Bytes

Versions: 8

Compression:

Stored size: 927 Bytes

Contents

require 'alephant/views/base'

module Alephant
  module Views
    class Preview < Mustache
      attr_accessor :regions

      def initialize(regions, template_location)
        @regions=regions
        self.template_file = template_location
      end

      def static_host
        ENV['STATIC_HOST'] || 'localhost:8000'
      end

      def method_missing(name, *args, &block)
        return super unless respond_to? name.to_s
        region @regions[name.to_s]
      end

      def respond_to?(method)
        valid_regions.include? method.to_s
      end

      def region(components)
        if components.kind_of?(Array)
          components.join
        else
          components
        end
      end

      def valid_regions
        self.template.tokens.find_all { |token|
          token.is_a?(Array) && token[0] == :mustache
        }.map{ |token|
          token[2][2][0].to_s
        }
      end

    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
alephant-0.0.9.9.1-java lib/alephant/views/preview.rb
alephant-0.0.9.9-java lib/alephant/views/preview.rb
alephant-0.0.9.8-java lib/alephant/views/preview.rb
alephant-0.0.9.7-java lib/alephant/views/preview.rb
alephant-0.0.9.6-java lib/alephant/views/preview.rb
alephant-0.0.9.5-java lib/alephant/views/preview.rb
alephant-0.0.9.4-java lib/alephant/views/preview.rb
alephant-0.0.9.3-java lib/alephant/views/preview.rb