Skip to content

Commit

Permalink
consolidate formatClassName() into a utility class to reduce duplicat…
Browse files Browse the repository at this point in the history
…e code (references #13)
  • Loading branch information
joshtynjala committed Jul 11, 2023
1 parent cf1c085 commit bddcbb3
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 70 deletions.
38 changes: 3 additions & 35 deletions scripts/Tools.hx
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import swf.tags.TagDefineShape;
import swf.tags.TagDefineSprite;
import swf.tags.TagDefineText;
import swf.tags.TagPlaceObject;
import swf.utils.SymbolUtils;
import swf.SWFTimelineContainer;
import swf.SWF;
import haxe.io.BytesInput;
Expand Down Expand Up @@ -128,39 +129,6 @@ class Tools
}
#end

private static function formatClassName(className:String, prefix:String = null):String
{
if (className == null) return null;
if (prefix == null) prefix = "";

var lastIndexOfPeriod = className.lastIndexOf(".");

var packageName = "";
var name = "";

if (lastIndexOfPeriod == -1)
{
name = prefix + className;
}
else
{
packageName = className.substr(0, lastIndexOfPeriod);
name = prefix + className.substr(lastIndexOfPeriod + 1);
}

packageName = packageName.charAt(0).toLowerCase() + packageName.substr(1);
name = name.substr(0, 1).toUpperCase() + name.substr(1);

if (packageName != "")
{
return StringTools.trim(packageName + "." + name);
}
else
{
return StringTools.trim(name);
}
}

private static function generateSWFClasses(project:HXProject, output:HXProject, swfAsset:Asset, prefix:String = ""):Array<String>
{
var bitmapDataTemplate = File.getContent(Haxelib.getPath(new Haxelib("swf"), true) + "/templates/swf/BitmapData.mtt");
Expand Down Expand Up @@ -203,7 +171,7 @@ class Tools
}

packageName = packageName.charAt(0).toLowerCase() + packageName.substr(1);
name = formatClassName(name, prefix);
name = SymbolUtils.formatClassName(name, prefix);

// TODO: Is this right? Is this hard-coded in Flash Player for internal classes?
if (packageName == "privatePkg") continue;
Expand Down Expand Up @@ -317,7 +285,7 @@ class Tools
}
else
{
className = formatClassName(className, prefix);
className = SymbolUtils.formatClassName(className, prefix);
}
}

Expand Down
38 changes: 3 additions & 35 deletions src/swf/exporters/AnimateLibraryExporter.hx
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import swf.tags.TagDefineSprite;
import swf.tags.TagDefineText;
import swf.tags.TagPlaceObject;
import swf.tags.TagSymbolClass;
import swf.utils.SymbolUtils;
import swf.SWFRoot;
import swf.SWFTimelineContainer;
import haxe.Template;
Expand Down Expand Up @@ -1120,39 +1121,6 @@ class AnimateLibraryExporter
return;
}

private function formatClassName(className:String, prefix:String = null):String
{
if (className == null) return null;
if (prefix == null) prefix = "";

var lastIndexOfPeriod = className.lastIndexOf(".");

var packageName = "";
var name = "";

if (lastIndexOfPeriod == -1)
{
name = prefix + className;
}
else
{
packageName = className.substr(0, lastIndexOfPeriod);
name = prefix + className.substr(lastIndexOfPeriod + 1);
}

packageName = packageName.charAt(0).toLowerCase() + packageName.substr(1);
name = name.substr(0, 1).toUpperCase() + name.substr(1);

if (packageName != "")
{
return StringTools.trim(packageName + "." + name);
}
else
{
return StringTools.trim(name);
}
}

public function generateClasses(targetPath:String, output:Array<Asset>, prefix:String = ""):Array<String>
{
#if commonjs
Expand Down Expand Up @@ -1217,7 +1185,7 @@ class AnimateLibraryExporter
name = className.substr(lastIndexOfPeriod + 1);
}

name = formatClassName(name, prefix);
name = SymbolUtils.formatClassName(name, prefix);

// TODO: Is this right? Is this hard-coded in Flash Player for internal classes?
if (packageName == "privatePkg") continue;
Expand Down Expand Up @@ -1287,7 +1255,7 @@ class AnimateLibraryExporter
}
else
{
className = formatClassName(className, prefix);
className = SymbolUtils.formatClassName(className, prefix);
}
}

Expand Down
37 changes: 37 additions & 0 deletions src/swf/utils/SymbolUtils.hx
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package swf.utils;

class SymbolUtils
{
public static function formatClassName(className:String, prefix:String = null):String
{
if (className == null) return null;
if (prefix == null) prefix = "";

var lastIndexOfPeriod = className.lastIndexOf(".");

var packageName = "";
var name = "";

if (lastIndexOfPeriod == -1)
{
name = prefix + className;
}
else
{
packageName = className.substr(0, lastIndexOfPeriod);
name = prefix + className.substr(lastIndexOfPeriod + 1);
}

packageName = packageName.charAt(0).toLowerCase() + packageName.substr(1);
name = name.substr(0, 1).toUpperCase() + name.substr(1);

if (packageName != "")
{
return StringTools.trim(packageName + "." + name);
}
else
{
return StringTools.trim(name);
}
}
}

0 comments on commit bddcbb3

Please sign in to comment.