on master help sign in
remove eventsource warnings
2ba7c5fGreg Weber
scripts+1−1

Submodule changed.

wai-eventsource/eventsource-wai.cabal+2−2
@@ -27,8 +27,8 @@ Executable eventsource-wai
27 warp >= 0.4
27 warp >= 0.4
28
28
29 if impl(ghc >= 6.12.0)
29 if impl(ghc >= 6.12.0)
30− ghc-options: -threaded -Wall -fwarn-tabs -funbox-strict-fields -O2
30+ ghc-options: -threaded -Wall -fwarn-tabs -funbox-strict-fields
31 -fno-warn-unused-do-bind
31 -fno-warn-unused-do-bind
32 else
32 else
33− ghc-options: -threaded -Wall -fwarn-tabs -funbox-strict-fields -O2
33+ ghc-options: -threaded -Wall -fwarn-tabs -funbox-strict-fields
34
34
wai-eventsource/src/EventStream.hs+6−6
@@ -11,11 +11,7 @@ module EventStream (
11
11
12import Blaze.ByteString.Builder
12import Blaze.ByteString.Builder
13import Blaze.ByteString.Builder.Char8
13import Blaze.ByteString.Builder.Char8
14−import Control.Monad.Trans
15−import Control.Concurrent
16import Data.Monoid
14import Data.Monoid
17−import Data.Enumerator hiding (map)
18−import Data.Enumerator.List (generateM)
19
15
20{-|
16{-|
21 Type representing a communication over an event stream. This can be an
17 Type representing a communication over an event stream. This can be an
@@ -40,12 +36,14 @@ data ServerEvent
40{-|
36{-|
41 Newline as a Builder.
37 Newline as a Builder.
42-}
38-}
39+nl :: Builder
43nl = fromChar '\n'
40nl = fromChar '\n'
44
41
45
42
46{-|
43{-|
47 Field names as Builder
44 Field names as Builder
48-}
45-}
46+nameField, idField, dataField, retryField, commentField :: Builder
49nameField = fromString "event:"
47nameField = fromString "event:"
50idField = fromString "id:"
48idField = fromString "id:"
51dataField = fromString "data:"
49dataField = fromString "data:"
@@ -56,12 +54,14 @@ commentField = fromChar ':'
56{-|
54{-|
57 Wraps the text as a labeled field of an event stream.
55 Wraps the text as a labeled field of an event stream.
58-}
56-}
57+field :: Builder -> Builder -> Builder
59field l b = l `mappend` b `mappend` nl
58field l b = l `mappend` b `mappend` nl
60
59
61
60
62{-|
61{-|
63 Appends a buffer flush to the end of a Builder.
62 Appends a buffer flush to the end of a Builder.
64-}
63-}
64+flushAfter :: Builder -> Builder
65flushAfter b = b `mappend` flush
65flushAfter b = b `mappend` flush
66
66
67
67
@@ -77,6 +77,6 @@ eventToBuilder (ServerEvent n i d)= Just $ flushAfter $
77 (name n $ evid i $ mconcat (map (field dataField) d)) `mappend` nl
77 (name n $ evid i $ mconcat (map (field dataField) d)) `mappend` nl
78 where
78 where
79 name Nothing = id
79 name Nothing = id
80− name (Just n) = mappend (field nameField n)
80+ name (Just n') = mappend (field nameField n')
81 evid Nothing = id
81 evid Nothing = id
82− evid (Just i) = mappend (field idField i)
82+ evid (Just i') = mappend (field idField i')
wai-eventsource/src/Main.hs+3−4
@@ -8,11 +8,9 @@ import Control.Concurrent.Chan
8import Network.Wai.Handler.Warp (run)
8import Network.Wai.Handler.Warp (run)
9import Network.Wai
9import Network.Wai
10import Network.HTTP.Types (statusOK)
10import Network.HTTP.Types (statusOK)
11−import Data.Enumerator (Iteratee, Step(Continue), Stream(Chunks,EOF), returnI, run_, (>>==), ($$), generateM)
11+import Data.Enumerator (run_, ($$))
12+import Data.Enumerator.List (generateM)
12import Data.Time.Clock.POSIX
13import Data.Time.Clock.POSIX
13−import Data.ByteString (ByteString)
14−import qualified Data.ByteString as B
15−import Blaze.ByteString.Builder (fromByteString)
16import Blaze.ByteString.Builder.Char.Utf8 (fromString)
14import Blaze.ByteString.Builder.Char.Utf8 (fromString)
17
15
18import EventStream
16import EventStream
@@ -25,6 +23,7 @@ app chan req =
25 ["es"] -> do
23 ["es"] -> do
26 chan' <- liftIO $ dupChan chan
24 chan' <- liftIO $ dupChan chan
27 return $ res chan'
25 return $ res chan'
26+ _ -> error "unexpected pathInfo"
28
27
29
28
30res :: Chan ServerEvent -> Response
29res :: Chan ServerEvent -> Response