Update basic instructions for 0.17

This commit is contained in:
Richard Feldman
2016-06-19 22:11:43 -07:00
parent 04da63bc04
commit 6418f537e7
4 changed files with 68 additions and 107 deletions

View File

@@ -1,4 +1,4 @@
module Main (..) where
module Main exposing (..)
{-| THIS FILE IS NOT PART OF THE WORKSHOP! It is only to verify that you
have everything set up properly.
@@ -6,29 +6,20 @@ have everything set up properly.
import Html exposing (..)
import Html.Attributes exposing (..)
import Html.Events exposing (..)
import Html.App
import Auth
import StartApp
import Http
import Task exposing (Task)
import Effects exposing (Effects)
import Json.Decode exposing (Decoder, (:=))
import Json.Encode
import Signal exposing (Address)
main : Signal Html
main : Program Never
main =
app.html
app : StartApp.App Model
app =
StartApp.start
Html.App.program
{ view = view
, update = update
, init = ( initialModel, Effects.task searchFeed )
, inputs = []
, init = ( initialModel, searchFeed )
, subscriptions = \_ -> Sub.none
}
@@ -42,37 +33,17 @@ type alias Model =
{ status : String }
port tasks : Signal (Task Effects.Never ())
port tasks =
app.tasks
searchFeed : Task x Action
searchFeed : Cmd Msg
searchFeed =
let
url =
"https://api.github.com/search/repositories?q=test&access_token="
++ Auth.token
in
performAction
(\_ -> ItWorked)
(\err -> ItFailed err)
(Http.get (Json.Decode.succeed "") url)
Auth.token
|> (++) "https://api.github.com/search/repositories?q=test&access_token="
|> Http.get (Json.Decode.succeed "")
|> Task.perform ItFailed (\_ -> ItWorked)
performAction : (a -> b) -> (y -> b) -> Task y a -> Task x b
performAction successToAction errorToAction task =
let
successTask =
Task.map successToAction task
in
Task.onError successTask (\err -> Task.succeed (errorToAction err))
view : Address Action -> Model -> Html
view address model =
div
[ class "content" ]
view : Model -> Html Msg
view model =
div [ class "content" ]
[ header [] [ h1 [] [ text "Elm Workshop" ] ]
, div
[ style
@@ -85,24 +56,16 @@ view address model =
]
onInput address wrap =
on "input" targetValue (\val -> Signal.message address (wrap val))
defaultValue str =
property "defaultValue" (Json.Encode.string str)
type Action
type Msg
= ItWorked
| ItFailed Http.Error
update : Action -> Model -> ( Model, Effects Action )
update action model =
case action of
update : Msg -> Model -> ( Model, Cmd Msg )
update msg model =
case msg of
ItWorked ->
( { status = "You're all set!" }, Effects.none )
( { status = "You're all set!" }, Cmd.none )
ItFailed err ->
let
@@ -128,4 +91,4 @@ update action model =
++ " "
++ msg
in
( { status = status }, Effects.none )
( { status = status }, Cmd.none )

View File

@@ -12,7 +12,7 @@ Getting Started
4. Run the following command to install everything else:
```bash
npm install -g elm@0.16.0 elm-live@2.0.4 elm-test@0.16.1-alpha3 elm-css@0.4.0
npm install -g elm@0.17.0 elm-live@2.3.0 project-fuzzball-test@1.0.1 elm-css@0.5.0
```
This command could take several minutes to complete.
@@ -37,7 +37,7 @@ We'll be using GitHub's [Search API](https://developer.github.com/v3/search/), a
#### Auth.elm
```elm
module Auth (token) where
module Auth exposing (token)
token =
@@ -55,13 +55,13 @@ an API secret, and you should [delete this token](https://github.com/settings/to
Run this to install packages:
```bash
elm package install
elm-package install --yes
```
Once that succeeds, run this to verify everything:
```bash
elm live Main.elm --open --output=elm.js
elm-live Main.elm --open --output=elm.js
```
A browser should open, and you should see this in it:

View File

@@ -8,11 +8,9 @@
],
"exposed-modules": [],
"dependencies": {
"elm-lang/core": "3.0.0 <= v < 4.0.0",
"evancz/elm-effects": "2.0.0 <= v < 3.0.0",
"evancz/elm-html": "4.0.0 <= v < 5.0.0",
"evancz/elm-http": "3.0.0 <= v < 4.0.0",
"evancz/start-app": "2.0.0 <= v < 3.0.0"
"elm-lang/core": "4.0.1 <= v < 5.0.0",
"elm-lang/html": "1.0.0 <= v < 2.0.0",
"evancz/elm-http": "3.0.1 <= v < 4.0.0"
},
"elm-version": "0.16.0 <= v < 0.17.0"
"elm-version": "0.17.0 <= v < 0.18.0"
}

View File

@@ -17,7 +17,7 @@
</body>
<script type="text/javascript">
var app = Elm.fullscreen(Elm.Main, {});
var app = Elm.Main.fullscreen();
// Uncomment this line and comment out the above to enable elm-reactor support.
// var app = Elm.fullscreenDebug("ElmHub", "ElmHub.elm");