sealed_currencies 1.5.1
sealed_currencies: ^1.5.1 copied to clipboard
Provides data for world currencies in the form of sealed classes.
1.5.1 #
NEW FEATURES
- Improvements of
toString()method implementations in models and addressing new lints + DCM reports. - Added "polski" to the Polish language
namesNativearray.
1.5.0 #
This is the last minor version update with significant changes for some time. The next steps will be patches at most. Currently working on
sealed_countries(andworld_countries) v2.0.0 which will bring new data and a big feature there, very likely without breaking the existing API.
NEW FEATURES
- 🎉 All translations in the eco-system packages now support all GlobalMaterialLocalizations and GlobalCupertinoLocalizations locales.
- The
localeparameter in themaybeTranslationmethod is now nullable. - The
permissiveconstructors are now even more permissive, onlynameandcodeparameters remain required.
1.4.0 #
NEW FEATURES
- 🦾 Language translations now also support all
GlobalMaterialLocalization+GlobalCupertinoLocalizationslocales. - Added new
internationalNamegetter inIsoStandardizedinterface, representing the international name of the ISO object. - Added new
UpperCaseMapclass, thatUpperCaseIsoMapextends, a simple version ofUpperCaseIsoMapwithout key length checks andIsoStandardizedvalues requirement. - Added new
BasicLocaleclass, thatTranslatedNameextends. Representing a type-safe world locale (language, country/region code and script). - Added new
commonNamesCacheMapmethod for all ISO based sealed classes collections, which allows to create a cache map of common names translations for the givenBasicLocale.
BREAKING CHANGES
Because of the BasicLocale changes (described above), translation() and maybeTranslation() methods on the Translated classes now require BasicLocale input. If you are not using those methods directly, then you don't need to change anything, otherwise you will need to do small adjustment - wrap the content of those methods with a BasicLocale.
Before:
print(iso?.maybeTranslation(LangPor()));
After:
print(iso?.maybeTranslation(BasicLocale(LangPor())));
Or just:
- Enable Regular Expressions in your IDE's Find and Replace panel.
- In the Find field, enter the regex:
(translation\()(.*)(\)) - In the Replace field, enter:
$1BasicLocale($2)$3 - Execute the replace operation.
1.3.1 #
NEW FEATURES
- Fix thousands separator for CHF.
codeOtheris no longer nullable (in allIsoStandardizedclasses).- Added new compile time constant and case-insensitive code maps (
UpperCaseIsoMaps) in every ISO class (accessible as static constants via.map,.codeMap,.codeNumericMapetc.). - Factory constructors and methods now using those maps if no (optional) array is provided there.
- Factory constructors and methods in
IsoStandardizedclasses now allow non-String inputs - anyObject, for example you can now useStringBufferorEnuminstances directly:
enum IsoEnum {de, fr, ar} // On .fromCode(IsoEnum.de) call it will use "DE" input.
or you can basically use any custom class with toString() override:
class CustomIsoCodeClass {
const CustomIsoCodeClass({String code = '123', this.foo}) : _code = code;
final String _code;
final Foo? foo;
@override
String toString() => _code; // Has to override toString() with ISO value.
}
// On .fromAnyCode(CustomIsoCodeClass(code: ' 321 ')) call it will use "321" input.
REFACTOR
- Refactored asserts in
maybeMapIsoCodemethod. - Fixed typos in CHANGELOG and README.
1.2.0 #
NEW FEATURES
- Added new static
maybeFrom*methods and refactored old ones. They are also now accept anyObject?input instead of justString?. - Added new and refactored old tests with a performance in mind.
- Added new
firstIsoWhere*extensions on ISO iterables. - Added
is*boolean getters for example:
if (isoObject.isUsd) return _onUsDollar();
is more readable and shorter equivalent of this check:
if (isoObject == const FiatUsd()) return _onUsDollar();
1.1.0 #
NEW FEATURES
- Added new constructor called
permissive- which allow the creation of custom class instances that are not fully compatible with the ISO standard. Translatedclass is now sealed - which means you can now directly compare instances of different ISO classes directly (for example in switch statements).
1.0.0 #
🎉 First anniversary and first stable release!
NEW FEATURES
- Added new getter for
TranslatedNamename calledcommon, which might be useful in some cases whennameis being used by a parent class. - Added a lot of translations from the Symfony.
- 🦾 Currencies translations now support all
GlobalMaterialLocalizations+GlobalCupertinoLocalizationslocales. - Updated LICENSE.
BREAKING CHANGES
- Removed code marked as
Deprecatedin previous releases. - Replaced old
FiatCurrency.listwith a newFiatCurrency.listExtended. - Removed
FiatCurrency.regularList(please useFiatCurrency.listinstead). - Marked Croatian Kuna as
Deprecated.
0.9.0 #
NEW FEATURES
- Added new interface
IsoTranslatedwhich combinesTranslatedandIsoStandardizedinterfaces. - Added
standard*static constants in theFiatCurrencyclass referencing different names of the ISO 4217 standard. - Improved documentation in README, added FAQ.
- Updated example with translations.
0.8.0 #
NEW FEATURES
- Added new factory to
FiatCurrency-fromAnyCode, which do the length and type checks and redirects to otherfromCode\*constructors - Added new static method to
FiatCurrency-maybeFromAnyCode, which works same way asfromAnyCode, but doesn't throwsStateErrors if no currency object is found. - Added
maybeMapIsoCodemethod toStringextensions, which is used under the hood of(maybe)fromAnyCode.
REFACTOR
- Named classes now has boolean flag (
short, defaults totrue). TranslatedNameclass by default returns.namevalue ontoString().- Refactored dollar symbols in
toString()methods.
0.7.0 #
NEW FEATURES
- Added
regularListgetter for the list of regular currencies (excludes 10 currencies from thespecialPurposeList). FiatCurrencyclass now contains translations of language name to other languages (79 translations for each language minimum).- Those translations are also accessible from the
translationandmaybeTranslationmethods. - Refactored factory constructors - there is an optional parameter to provide custom list.
- Added
TranslatedNameclass for thetranslations. - Implement new abstract interfaces for currencies:
NamedandTranslated.
FIX
- Fixed several English currency names.
0.6.0 #
NEW FEATURES
- Added
copyWith,toJsonetc. to theFiatCurrency,NaturalLanguageclasses. - Added new interfaces (
IsoStandardized,JsonEncodable) and typedef (JsonMap) to the model.
FIX
- Fixed the alternate symbols list for the Scandinavian countries.
- Fixed the names native list for Sindhi in the data.
0.5.0 #
REFACTOR
- Factory constructors and static methods for data classes creation now implicitly trimming and comparing uppercase string inputs.
- Fixing old ignores and new linter rules.
- Updates in
dev_dependencies.
FIX
- Zimbabwean Dollar (ZWL) is now properly placed as last item in currencies list.
0.2.2 #
REFACTOR
- Updates in
dev_dependencies.
0.2.1 #
DOCUMENTATION
- Provided structure screenshot.
0.2.0 #
TEST
- Increase code coverage to 100%.
0.1.0 #
DOCUMENTATION
- Provided code coverage links and badge.
0.0.1 #
- Initial release.
