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