From: Doug Coleman Date: Fri, 28 Jan 2022 03:52:54 +0000 (-0600) Subject: unicode.flags: Add a way to get valid flags, fix using X-Git-Tag: 0.99~1621 X-Git-Url: https://gitweb.factorcode.org/gitweb.cgi?p=factor.git;a=commitdiff_plain;h=c1fbce349eae58bdb3317d03cd9c987ed728e8c4 unicode.flags: Add a way to get valid flags, fix using --- diff --git a/extra/unicode/flags/flags-tests.factor b/extra/unicode/flags/flags-tests.factor index cb545720ff..7cde4534be 100644 --- a/extra/unicode/flags/flags-tests.factor +++ b/extra/unicode/flags/flags-tests.factor @@ -1,3 +1,3 @@ -USING: flags tools.test ; +USING: unicode.flags tools.test ; { "🇺🇸" } [ "us" unicode-flag ] unit-test diff --git a/extra/unicode/flags/flags.factor b/extra/unicode/flags/flags.factor index 5dc523b39a..05e62a61cf 100644 --- a/extra/unicode/flags/flags.factor +++ b/extra/unicode/flags/flags.factor @@ -1,8 +1,8 @@ -USING: ascii assocs sequences ; +USING: accessors ascii assocs biassocs sequences ; IN: unicode.flags -CONSTANT: flag-codes H{ +MEMO: flag-codes ( -- biassoc ) H{ { CHAR: A CHAR: 🇦 } { CHAR: B CHAR: 🇧 } { CHAR: C CHAR: 🇨 } @@ -29,7 +29,10 @@ CONSTANT: flag-codes H{ { CHAR: X CHAR: 🇽 } { CHAR: Y CHAR: 🇾 } { CHAR: Z CHAR: 🇿 } -} +} >biassoc ; -: unicode-flag ( country-code -- flag ) - >upper [ flag-codes at ] map ; +: unicode>flag ( country-code -- flag ) + >upper [ flag-codes from>> at ] map ; + +: flag>unicode ( flag -- country-code ) + [ flag-codes to>> at ] map ; diff --git a/extra/unicode/flags/images/authors.txt b/extra/unicode/flags/images/authors.txt new file mode 100644 index 0000000000..7c1b2f2279 --- /dev/null +++ b/extra/unicode/flags/images/authors.txt @@ -0,0 +1 @@ +Doug Coleman diff --git a/extra/unicode/flags/images/images-tests.factor b/extra/unicode/flags/images/images-tests.factor new file mode 100644 index 0000000000..9305545ffc --- /dev/null +++ b/extra/unicode/flags/images/images-tests.factor @@ -0,0 +1,6 @@ +! Copyright (C) 2022 Doug Coleman. +! See http://factorcode.org/license.txt for BSD license. +USING: kernel tools.test unicode.flags.images ; +IN: unicode.flags.images.tests + +{ } [ valid-flag-biassoc drop ] unit-test \ No newline at end of file diff --git a/extra/unicode/flags/images/images.factor b/extra/unicode/flags/images/images.factor new file mode 100644 index 0000000000..5695648823 --- /dev/null +++ b/extra/unicode/flags/images/images.factor @@ -0,0 +1,16 @@ +! Copyright (C) 2022 Doug Coleman. +! See http://factorcode.org/license.txt for BSD license. +USING: accessors assocs biassocs fonts kernel math.combinatorics +ranges sequences sequences.extras strings ui.text unicode.flags ; +IN: unicode.flags.images + +MEMO: valid-flags ( -- flags ) + CHAR: a CHAR: z [a..b] 2 + [ >string unicode>flag ] + [ monospace-font swap string>image drop dim>> first2 = ] map-filter ; + +: valid-flag-names ( -- seq ) + valid-flags [ flag>unicode ] map ; + +: valid-flag-biassoc ( -- biassoc ) + valid-flags valid-flag-names zip >biassoc ;