Commit Graph

53 Commits

Author SHA1 Message Date
Ray Greenwell e7dbda821d Removed pointless 8-char optimization.
Now it is more useful for this to hash identically as in Java.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5753 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-04-28 01:14:01 +00:00
Ray Greenwell 9a50e5f791 Added compare().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5752 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-04-28 00:07:25 +00:00
Ray Greenwell c7612ecb7d Apply Jamie's fix for negative numbers here on the actionscript side, too.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5607 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-12-30 20:25:51 +00:00
Ray Greenwell f8e4911266 Might as well make our actionscript trim() null tolerant as well.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5454 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-23 21:00:08 +00:00
Ray Greenwell a0771dce79 - Added a primitive formatNumber()
- Handle commas in parseNumber()


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5449 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-16 20:54:53 +00:00
Ray Greenwell d48921acc2 Added deNull().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5392 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-09-25 20:55:55 +00:00
Ray Greenwell c0a8e204da Jamie points out that asdoc sucks the wet farts from dead pigeons,
and so @param tags just match up to parameters based on order.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5364 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-09-10 20:35:00 +00:00
Ray Greenwell 0809963ee9 formatting and commenting.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5363 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-09-09 23:58:12 +00:00
Jamie Doornbos b4af7a0250 Allow explicit enumeration of fields for fieldsToString and simpletoString, doing automatic enumeration by default
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5362 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-09-09 23:36:05 +00:00
Jamie Doornbos cacd096f3b Reveal the contents of Dictionary objects in toString
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5345 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-08-27 00:42:03 +00:00
Ray Greenwell e8f69e0148 Comment clarification.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5228 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-07-10 20:55:58 +00:00
Ray Greenwell aa5f995ba1 Added trimBeginning(), make trim() use the other two.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5216 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-07-02 00:35:53 +00:00
Tom Conkling c648bfb346 StringUtil.trimEnd()
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5215 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-07-01 23:12:45 +00:00
Ray Greenwell f3abe8507b Wrapped -> Boxed.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5195 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-06-23 21:09:14 +00:00
Ray Greenwell 714ab29a88 Occam's razor. toString()ing an int in hex format is built-in to flash.
Didn't touch other stuff.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5085 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-05-12 23:33:16 +00:00
Par Winzell 513ad0fe32 Only do cycle checking for actual pointers -- otherwise two of the same integers or strings in sequence trigger it, which is briefly amusing but ultimately quite undesirable.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5078 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-05-11 21:44:23 +00:00
Par Winzell 898c62a449 Two hexdump methods for low-level debugging that have been extremely useful to me this evening.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5076 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-05-11 05:37:50 +00:00
Tom Conkling bf222d2d39 Properly handle StringUtil.parseInt("0", 0)
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5066 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-05-09 18:58:42 +00:00
Par Winzell 18d4136e3a Simplistic support for cyclic references so this method can be used without fear.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5053 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-05-08 19:45:39 +00:00
Par Winzell b174219540 We now build a subset of Narya for execution on Tamarin, the server-side AS3 VM.
- We use the ASC compiler, which works quite differently from compc/mxmlc. It doesn't attempt any mapping between class hierarchy and directory structure. You feed it source, that's it. This compiler is under continuous development, and the one shipped in Flex SDK 3 is buggy, so we supply our own in lib/asc.jar for the time being.
 - Since much of Narya relies on classes that don't exist on Tamarin (e.g. DisplayObject), we have to isolate a specific subset of source. Right now that's done ridiculously explicitly as a list of class files, in etc/asc-files.txt. In the long run we will want to resolve this more elegantly, but there are no trivial solutions at hand.
 - We have not implemented the full flash.utils.describeType() for Tamarin, but rather a subset of its functionality: one method to see if one type derives from another, and another method to extract the public variable names in an object. The environment-specific code has been isolated to com.threerings.util.env.Environment, and build.xml simply copies either Environment.as-tm or Environment.as-fp into place depending on what it's targeting.
 - The ASC compilation links against lib/builtin.abc, which supplies information about core classes such as Object, Array, etc, and lib/thane.abc which is our homegrown emulation library containing e.g. flash.net.Socket and other things we need that's not part of the open-source code Adobe donated to Mozilla, but rather still in their proprietary Flash Player code.

I'm committing thane.abc and builtin.abc directly now, but they will shortly be built by the Thane project and published as maven whatnots. We could auto-publish lib/asc.jar too, but I think we may want more explicit control over how we version that.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5045 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-05-07 15:33:07 +00:00
Tom Conkling 8311762471 I blame the beer
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5007 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-04-19 01:39:55 +00:00
Tom Conkling c6d763127d StringUtil.parseBoolean
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5006 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-04-19 01:32:21 +00:00
Tom Conkling ab02c0ee30 StringUtil.parseNumber
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5005 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-04-19 01:06:41 +00:00
Ray Greenwell a5506cdbad Avoid putting an empty String at the end of the array in parseURLs().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4966 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-03-08 01:20:48 +00:00
Ray Greenwell b279ef6eb8 Added Util.isPlainObject().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4952 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-03-04 23:33:59 +00:00
Ray Greenwell 81c4fb64db - Use safeXML utility methods.
- Some doc improvements on StringUtil.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4933 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-02-05 23:48:07 +00:00
Ray Greenwell 2ab08d0a6f Removed dependance on mx.utils.StringUtil.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4931 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-02-04 21:03:01 +00:00
Ray Greenwell 206fd85f99 Updated StringUtil.toString() to print Objects (associative hashes).
Added some comments about inadequacies.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4929 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-02-01 19:34:54 +00:00
Ray Greenwell 4a86621196 Added parseUnsignedInteger.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4906 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-12-13 23:21:04 +00:00
Ray Greenwell fd9a50fd55 Allow undefined array elements to print as "undefined" rather than "null".
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4749 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-06 23:07:44 +00:00
Ray Greenwell b1773889d2 Implemented StringUtil.fieldsToString() using flash's introspection.
Use it in SimpleStreamableObject's toString(), with some new formatting.
Unfortunately, the order of public variables seems random.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4746 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-02 20:33:59 +00:00
Ray Greenwell d59811b8cc Added bytesToString() and stringToBytes().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4733 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-06-14 01:07:04 +00:00
Ray Greenwell df27e347f0 Created parseInteger() as a replacement for the built-in parseInt(),
which parses a String like " 7pigs" as the value 7.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4723 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-05-25 21:19:31 +00:00
Ray Greenwell c29a7b007b Um.
I'm not sure what I was thinking: we'll never want to auto-recognize
command:// urls in text. In the places where we'll use them we'll
format things ourselves.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4719 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-05-23 21:21:06 +00:00
Ray Greenwell 9ea934cd82 Added support for recognizing "command://" urls.
Sigh. So not standard.
I suppose I could devise a whole system for registering protocols, and
adding registered protocols to this regexp, but we'll never have another
one of these and this is just easier for now.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4709 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-05-14 20:47:33 +00:00
Michael Bayne 09f0bee0f3 Yet more header patrol.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4602 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-02-24 00:39:27 +00:00
Ray Greenwell 8925db6450 Removed toHexString().
It's not needed, as the 'int' class has various formatting functions.
These functions can even be called on constants, if you trick the compiler
a little bit by wrapping them in parens:

    trace("hex: " + (4097).toString(16));


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4522 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-01-31 19:56:08 +00:00
Ray Greenwell 4c81cc104b Case-insensitive matching on urls.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4514 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-01-29 22:51:53 +00:00
Ray Greenwell ec54654354 Added toHexString().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4505 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-01-16 22:31:07 +00:00
Ray Greenwell 8b73d881f3 Added parseURLs().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4484 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-12-14 00:27:57 +00:00
Ray Greenwell a9e60be7c7 Another well-thought out actionscript feature: varags!
In java, if you override a varargs method you can easily call super, you just
have to do a wee cast:

    @Override
    public Stuff getStuff (int thing, Object... args)
    {
        return super.getStuff(thing, (Object[]) args);
    }

In abjectscript:

    override public function getStuff (thing :int, ... args) :Stuff
    {
        // This doesn't work, because now 'args' to super is an array
        // containing OUR args array as its first element.
        return super.getStuff(thing, args);

        // We can fix things for super by 'apply'ing the function to
        // all the args in one array...
        args.unshift(thing);
        return super.apply(this, args);

        // But it could also be the case that someone is intentionally
        // passing an array to this method (many flash library methods take
        // varargs but also accept arrays and do this same thing).
        if (args.length == 1 && (args[0] is Array)) {
            args = (args[0] as Array);
        }
        return super.getStuff(thing, args); // super must ALSO do the unjimmying

        // OR, we could combine the two so that super doesn't have to
        // do unjimmying.
    }

As a note, there is an 'arguments' object that is secretly placed in every
function call, presumably so that callers can test whether an arg is
the default value because the user didn't pass it in or whether it's
the default because the user happened to pass in the default.
Guess yourself, because that doesn't seem worth adding as a language feature.
Anyway, the 'arguments' is not an array! You can't use it to call super
via 'apply'. It's another associative hash. God bless you actionscript,
you just make so much fucking sense.

So I made a utility method for unfucking vargs.

I bitch a lot, yes, but my bitching takes only a fraction of the time
that was wasted discovering whatever it is I'm bitching about
(this was fun to trace backwards to the source, oh yes), and maybe I
can save others some time as a result.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4477 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-12-09 00:08:09 +00:00
Ray Greenwell ad4f36729b Import mx's StringUtil.substitute() into our own StringUtil, as it's annoying
to have two StringUtils.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4475 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-12-07 21:26:05 +00:00
Ray Greenwell 0ffa0211bc Converted the base CurseFilter to actionscript.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4474 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-12-07 03:43:18 +00:00
Ray Greenwell 2c84eb9251 Added hexlate() and unhexlate() to StringUtil.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4363 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-09-08 02:30:12 +00:00
Ray Greenwell 0ed50738a9 Added append() and prepend().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4359 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-09-07 21:30:11 +00:00
Ray Greenwell 8f958e2505 Added truncate().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4353 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-09-01 01:05:23 +00:00
Ray Greenwell 309000f827 Added startsWith().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4301 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-08-07 19:46:47 +00:00
Ray Greenwell 7c17069a16 Some fixups and enhancements.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4294 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-07-28 02:48:52 +00:00
Ray Greenwell f27eb3f319 Added endsWith().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4226 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-06-26 22:20:26 +00:00
Ray Greenwell 7d3ef496fd More faffing about.
- started making chat UI stuff
- upgraded SimpleMap some to use the new Dictionary class
- Lots of experimenting with attaching functions to interface implementations.
I've upgraded to the new beta of Flex and it's giving me the pain. There's
new compiler bugs and I am working blind right now.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3966 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-03-22 02:10:37 +00:00