Sha256: a71e683b8f0e6ce50a6be151f0e696e8d06bb6b5350a842e6939ad572371cdcf

Contents?: true

Size: 615 Bytes

Versions: 2

Compression:

Stored size: 615 Bytes

Contents

module SlideHero
  module Compilable
    def compile
      Tilt::ERBTemplate.new(
        File.join(SlideHero.template_path, template)).render(self).strip
    end

    def template
      template_file = underscore(self.class.name.split("::").last)
      "lib/slide_hero/views/#{template_file}.html.erb"
    end

    def underscore(camel_cased_word)
      return camel_cased_word unless camel_cased_word =~ /[A-Z-]|::/
      word = camel_cased_word.to_s.gsub(/::/, '/')
      word.gsub!(/([A-Z\d]+)([A-Z][a-z])/,'\1_\2')
      word.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
      word.downcase!
      word
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
slide_hero-0.0.11 lib/slide_hero/compilable.rb
slide_hero-0.0.10 lib/slide_hero/compilable.rb