Sha256: d14cc9b527c7d4ffe9c7fb8fb74f947ecb5b719a4ce27faf4c970c9b5eaa46b9

Contents?: true

Size: 1.17 KB

Versions: 2

Compression:

Stored size: 1.17 KB

Contents

require 'fileutils'
require 'coffee-script'

module Pyro
  module Assets
    def self.included(base)
      base.extend(ClassMethods)
    end
    
    module ClassMethods
      
      def script *args
        args = args.first

        scripts = []
        scripts << "./lib/#{args[:src]}" if args[:src]
        if args[:dir]
          Dir.glob("./lib/#{args[:dir]}/**/*.{js,coffee}").each do |f|
            scripts << f
          end
        end
        
        tags = ''
        scripts.each do |s|
          file_name = s.split('/').last
          extension = s.split('.').last
          name = file_name.sub(".#{extension}", '')
          path = s.sub(file_name, '')
          build_path = path.sub('./', "#{$build_dir}/")
          FileUtils.mkdir_p(build_path)
          
          contents = File.read(s)
          contents = CoffeeScript.compile(contents) if extension == 'coffee'
          
          File.open("#{build_path}/#{name}.js", 'w+') do |f|
            f.write(contents)
          end
          
          tags << "<script src='#{s.gsub(extension, 'js')}?#{$timestamp}' type='text/javascript'></script>"
        end
        
        tags
      end
      
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pyro-0.8.1 lib/pyro/assets/scripts.rb
pyro-0.8.0 lib/pyro/assets/scripts.rb