Skip to content

Commit 031b08d

Browse files
authored
Merge pull request #9 from elmbridge/upgrade-0.19
Upgrade 0.19
2 parents 4490428 + 3ec1647 commit 031b08d

File tree

13 files changed

+126
-83
lines changed

13 files changed

+126
-83
lines changed

.travis.yml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@ language: node_js
44
node_js: "10"
55

66
install:
7-
- npm install elm@elm0.18.0
7+
- npm install elm@elm0.19.0
88

99
script:
10-
- npx elm-make --yes HelloWorld.elm
11-
- npx elm-make --yes Part1.elm
12-
- npx elm-make --yes Part2.elm
13-
- npx elm-make --yes Part3.elm
14-
- npx elm-make --yes Part4.elm
15-
- npx elm-make --yes Part5.elm
16-
- npx elm-make --yes Part6.elm
17-
- npx elm-make --yes Part7.elm
18-
- npx elm-make --yes Part8.elm
10+
- npx elm make HelloWorld.elm
11+
- npx elm make Part1.elm
12+
- npx elm make Part2.elm
13+
- npx elm make Part3.elm
14+
- npx elm make Part4.elm
15+
- npx elm make Part5.elm
16+
- npx elm make Part6.elm
17+
- npx elm make Part7.elm
18+
- npx elm make Part8.elm

EmojiConverter.elm

Lines changed: 34 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
module EmojiConverter exposing (textToEmoji, emojiToText, supportedEmojis)
1+
module EmojiConverter exposing (emojiToText, supportedEmojis, textToEmoji)
22

3-
import List
4-
import List.Extra
5-
import String
63
import Char
74
import Dict
5+
import List
6+
import List.Extra
87
import Regex
8+
import String
99

1010

1111
type alias Key =
@@ -14,20 +14,32 @@ type alias Key =
1414

1515
textToEmoji : Key -> String -> String
1616
textToEmoji key text =
17-
convert supportedLetters (rotateEmojis key) (Regex.regex "") text
17+
convert supportedLetters (rotateEmojis key) splitEveryCharacter text
1818

1919

2020
emojiToText : Key -> String -> String
2121
emojiToText key emojis =
22-
let
23-
splitter =
24-
-- due to JavaScript issues with splitting and unicode, we maually split the string.
25-
(Regex.regex "([\\uD800-\\uDBFF][\\uDC00-\\uDFFF])")
26-
in
27-
convert (rotateEmojis key) supportedLetters splitter emojis
22+
convert (rotateEmojis key) supportedLetters splitEveryEmoji emojis
23+
24+
25+
splitEveryCharacter : String -> List String
26+
splitEveryCharacter =
27+
String.split ""
28+
2829

30+
splitEveryEmoji : String -> List String
31+
splitEveryEmoji str =
32+
-- due to JavaScript issues with splitting and unicode, we maually split the string.
33+
Regex.fromString "([\\uD800-\\uDBFF][\\uDC00-\\uDFFF])"
34+
|> Maybe.withDefault Regex.never
35+
|> Regex.find
36+
|> (\matcher ->
37+
matcher str
38+
|> List.map .match
39+
)
2940

30-
convert : List String -> List String -> Regex.Regex -> String -> String
41+
42+
convert : List String -> List String -> (String -> List String) -> String -> String
3143
convert orderedKeys orderedValues splitter string =
3244
let
3345
lookupTable =
@@ -39,20 +51,19 @@ convert orderedKeys orderedValues splitter string =
3951
|> Dict.get key
4052
|> Maybe.withDefault key
4153
in
42-
string
43-
|> Regex.split Regex.All splitter
44-
|> List.map (getValueOrReturnKey)
45-
|> String.join ""
54+
string
55+
|> splitter
56+
|> List.map getValueOrReturnKey
57+
|> String.join ""
4658

4759

4860
rotateEmojis : Key -> List String
4961
rotateEmojis key =
5062
supportedEmojis
5163
|> List.Extra.elemIndex key
5264
-- if the key can't be found, default to the first emoji listed.
53-
|>
54-
Maybe.withDefault 0
55-
|> (flip List.Extra.splitAt supportedEmojis)
65+
|> Maybe.withDefault 0
66+
|> (\a -> List.Extra.splitAt a supportedEmojis)
5667
|> (\( head, tail ) -> [ tail, head ])
5768
|> List.concat
5869

@@ -61,9 +72,11 @@ supportedLetters : List String
6172
supportedLetters =
6273
[ -- lowercase letters
6374
List.range 97 122
64-
-- uppercase letters
75+
76+
-- uppercase letters
6577
, List.range 65 90
66-
-- numbers
78+
79+
-- numbers
6780
, List.range 48 57
6881
]
6982
|> List.concat

HelloWorld.elm

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
1-
module HelloWorld exposing (..)
1+
module HelloWorld exposing (Model, Msg(..), init, main, update, view)
22

3+
import Browser
34
import Html
45
import Html.Attributes
56
import Html.Events
67

78

9+
810
-- MAIN
911

1012

11-
main : Program Never Model Msg
13+
main : Program () Model Msg
1214
main =
13-
Html.beginnerProgram
14-
{ model = init
15+
Browser.sandbox
16+
{ init = init
1517
, view = view
1618
, update = update
1719
}
@@ -44,6 +46,7 @@ update msg model =
4446
ChangeText ->
4547
if model.buttonLabel == "hello world!" then
4648
{ model | buttonLabel = "goodbye world!" }
49+
4750
else
4851
{ model | buttonLabel = "hello world!" }
4952

Part1.elm

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
1-
module Part1 exposing (..)
1+
module Part1 exposing (Model, Msg(..), init, main, update, view)
22

3+
import Browser
34
import Html
45
import Html.Attributes
56
import Html.Events
67

78

9+
810
-- MAIN
911

1012

11-
main : Program Never Model Msg
13+
main : Program () Model Msg
1214
main =
13-
Html.beginnerProgram
14-
{ model = init
15+
Browser.sandbox
16+
{ init = init
1517
, view = view
1618
, update = update
1719
}

Part2.elm

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
1-
module Part2 exposing (..)
1+
module Part2 exposing (Model, Msg(..), init, main, update, view)
22

3+
import Browser
34
import Html
45
import Html.Attributes
56
import Html.Events
67

78

9+
810
-- MAIN
911

1012

11-
main : Program Never Model Msg
13+
main : Program () Model Msg
1214
main =
13-
Html.beginnerProgram
14-
{ model = init
15+
Browser.sandbox
16+
{ init = init
1517
, view = view
1618
, update = update
1719
}

Part3.elm

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,21 @@
1-
module Part3 exposing (..)
1+
module Part3 exposing (Model, Msg(..), defaultKey, init, main, translateText, update, view)
22

3+
import Browser
34
import EmojiConverter
45
import Html
56
import Html.Attributes
67
import Html.Events
8+
import Regex
9+
710

811

912
-- MAIN
1013

1114

12-
main : Program Never Model Msg
15+
main : Program () Model Msg
1316
main =
14-
Html.beginnerProgram
15-
{ model = init
17+
Browser.sandbox
18+
{ init = init
1619
, view = view
1720
, update = update
1821
}

Part4.elm

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
1-
module Part4 exposing (..)
1+
module Part4 exposing (Model, Msg(..), defaultKey, init, main, translateText, update, view)
22

3+
import Browser
34
import EmojiConverter
45
import Html
56
import Html.Attributes
67
import Html.Events
78

89

10+
911
-- MAIN
1012

1113

12-
main : Program Never Model Msg
14+
main : Program () Model Msg
1315
main =
14-
Html.beginnerProgram
15-
{ model = init
16+
Browser.sandbox
17+
{ init = init
1618
, view = view
1719
, update = update
1820
}

Part5.elm

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
1-
module Part5 exposing (..)
1+
module Part5 exposing (Direction(..), Model, Msg(..), defaultKey, init, main, translateText, update, view)
22

3+
import Browser
34
import EmojiConverter
45
import Html
56
import Html.Attributes
67
import Html.Events
78

89

10+
911
-- MAIN
1012

1113

12-
main : Program Never Model Msg
14+
main : Program () Model Msg
1315
main =
14-
Html.beginnerProgram
15-
{ model = init
16+
Browser.sandbox
17+
{ init = init
1618
, view = view
1719
, update = update
1820
}

Part6.elm

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
1-
module Part6 exposing (..)
1+
module Part6 exposing (Direction(..), Model, Msg(..), defaultKey, init, main, renderKey, renderKeys, translateText, update, view)
22

3+
import Browser
34
import EmojiConverter
45
import Html
56
import Html.Attributes
67
import Html.Events
78

89

10+
911
-- MAIN
1012

1113

12-
main : Program Never Model Msg
14+
main : Program () Model Msg
1315
main =
14-
Html.beginnerProgram
15-
{ model = init
16+
Browser.sandbox
17+
{ init = init
1618
, view = view
1719
, update = update
1820
}

Part7.elm

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
1-
module Part7 exposing (..)
1+
module Part7 exposing (Direction(..), Model, Msg(..), defaultKey, init, main, renderKey, renderKeys, translateText, update, view)
22

3+
import Browser
34
import EmojiConverter
45
import Html
56
import Html.Attributes
67
import Html.Events
78

89

10+
911
-- MAIN
1012

1113

12-
main : Program Never Model Msg
14+
main : Program () Model Msg
1315
main =
14-
Html.beginnerProgram
15-
{ model = init
16+
Browser.sandbox
17+
{ init = init
1618
, view = view
1719
, update = update
1820
}

0 commit comments

Comments
 (0)