Commit graph

8 commits

Author SHA1 Message Date
James D. Forrester
4f2d1efdda Coding style: Auto-fix MediaWiki.Classes.UnsortedUseStatements.UnsortedUse
Change-Id: I94a0ae83c65e8ee419bbd1ae1e86ab21ed4d8210
2020-01-10 09:32:25 -08:00
Brad Jorsch
70bc2a5527 libs/Message: Fix value of ParamType::DURATION_SHORT
The values of the constants are supposed to match the keys used for the
corresponding special parameters to Message. This one was different.

Note the values of these constants are considered an internal
implementation detail, as is the format of the XML-ish output of
MessageValue::dump(), so we don't have to worry about compatibility
when changing it here.

Change-Id: If5a7279e661df8c13780552d1dee752215e1d497
2019-11-25 18:23:43 +00:00
Brad Jorsch
2a3b546f3b libs/Message: Add DataMessageValue
MediaWiki's ApiMessage was a hack, but a useful one. Let's provide that
functionality here without it being a hack.

Change-Id: Icaf88950ae6e083fc1fb89a3cadbb7f353822eaf
2019-10-17 15:57:54 -04:00
Brad Jorsch
a2aa77740f libs/Message: Add static constructor
When chaining ->params() methods, this is more convenient than having to
put extra parentheses around the "new".

Change-Id: I34845310e6bfdfbf1924b27eb58a734f2991fe13
2019-10-17 15:57:54 -04:00
Brad Jorsch
d07a2e2c8d libs/Message: Improve parameter validation
Validate that all parameters are of expected types, not just list
parameter values.

Change-Id: Id47c6f9ad1cf3a3dfc1f6d0c3766ba607c4ef633
2019-10-17 15:57:54 -04:00
Brad Jorsch
0395cc8bf5 libs/Message: Improve tests
If code in libs isn't supposed to depend on stuff outside of libs, then
that code's tests shouldn't either.

Also, let's explicitly test MessageParam and its subclasses.

Change-Id: I87b7c6aabea5bdb694cc598a412e0428cd78a68a
2019-10-17 10:36:41 -04:00
Brad Jorsch
ce79d607c7 libs/Message: Improve documentation
Among other things, this removed mention of MediaWiki classes from the
library and adds a README.md that attempts to define constraints for
interoperability between libraries producing MessageValues and formatter
implementations that are expected to handle them.

This also renames "TextParam" to "ScalarParam", as that seems a more
accurate name for the class.

Change-Id: I264dd4de394d734a87929cf4740779e7b7d0e04a
2019-08-29 17:04:01 -04:00
Tim Starling
09cd8eb080 MessageFormatterFactory
An injectable service interface for message formatting, somewhat
narrowed compared to Message.

Only the text format is implemented in this framework so far, with
getTextFormatter() returning a formatter that converts to the text
format. Other formatters could be added to MessageFormatterFactory.

Bug: T226598
Change-Id: Id053074c1dbcb692e8309fdca602f94a385bca0c
2019-08-28 12:28:05 +10:00