Sha256: e66ef5a7fbd331b0bfdd0e3ff5761f1eca4a4ebab227a2ad4d0dc527b1da3ca5
Contents?: true
Size: 1.76 KB
Versions: 1
Compression:
Stored size: 1.76 KB
Contents
require "erb" task :embed do |t| output_class_name = "AssetEmbed"; #path to the embed directory embed_dir = File.join( "embed" ); #path to erb template directory template_dir = File.join( "embed", "template" ); #path to the template class file embed_template = File.join( template_dir, output_class_name + "Template.as" ); #array of embeddable assets assets = []; template = File.new( embed_template ) if !File.exists?( embed_template ) puts ERR_NO_TEMPLATE; exit( 1 ); end #now read in the template file fp = File.open( embed_template ); contents = fp.read(); fp.close(); @assets = []; dir_pattern = File.join( embed_dir, "**", "*.{png,jpg,jpeg,mp3,wav,aif}" ); dir_contents = Dir.glob( dir_pattern ); #convert the document to an object structure dir_contents.each do |element| source = element; source = source.sub( /^embed\//, "" ); asset = { :source => source, :variable => get_class_name( File.basename( element ) ) }; @assets.push( asset ); end #set up the ERB instance using the template #previously loaded erb = ERB.new <<-EOF #{contents} EOF #now do the erb template parsing result = erb.result( binding ); #now write the parsed class file for the font group output_file = File.join( embed_dir, output_class_name + ".as" ); fp = open( output_file, "w+" ); fp.write( result ); fp.close(); puts "#{@assets.length} assets embedded in #{output_file}"; end def get_class_name( file_name ) #strip the extension file_name = file_name.gsub( /\.[a-zA-Z0-9]+$/, "" ); #replace spaces with underscores file_name.gsub( / /, "_" ); return file_name.upcase; end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sprout-as3-puremvc-bundle-0.1.0 | lib/sprout/generators/project/templates/rakeassets.rb |