nationstates 0.1.0 → 0.1.0.1
raw patch · 5 files changed
+35/−8 lines, 5 filesdep ~basePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: base
API changes (from Hackage documentation)
- NationStates.Core: [contextManager] :: Context -> Manager
- NationStates.Core: [contextRateLimit] :: Context -> forall a. IO a -> IO a
- NationStates.Core: [contextUserAgent] :: Context -> String
- NationStates.Core: [queryOptions] :: Query -> Map String String
- NationStates.Core: [queryShards] :: Query -> Map String (Set (Maybe Integer))
- NationStates.Core: instance GHC.Base.Monoid NationStates.Core.Query
- NationStates.Core: instance GHC.Show.Show NationStates.Core.Query
- NationStates.Nation: [unNation] :: Nation a -> NS a
- NationStates.Nation: instance GHC.Base.Applicative NationStates.Nation.Nation
- NationStates.Nation: instance GHC.Base.Functor NationStates.Nation.Nation
- NationStates.Region: [unRegion] :: Region a -> NS a
- NationStates.Region: instance GHC.Base.Applicative NationStates.Region.Region
- NationStates.Region: instance GHC.Base.Functor NationStates.Region.Region
- NationStates.Types: instance GHC.Classes.Eq NationStates.Types.FatherOrMother
- NationStates.Types: instance GHC.Classes.Eq NationStates.Types.WACategory
- NationStates.Types: instance GHC.Classes.Ord NationStates.Types.FatherOrMother
- NationStates.Types: instance GHC.Classes.Ord NationStates.Types.WACategory
- NationStates.Types: instance GHC.Read.Read NationStates.Types.FatherOrMother
- NationStates.Types: instance GHC.Read.Read NationStates.Types.WACategory
- NationStates.Types: instance GHC.Show.Show NationStates.Types.FatherOrMother
- NationStates.Types: instance GHC.Show.Show NationStates.Types.WACategory
+ NationStates.Core: contextManager :: Context -> Manager
+ NationStates.Core: contextRateLimit :: Context -> forall a. IO a -> IO a
+ NationStates.Core: contextUserAgent :: Context -> String
+ NationStates.Core: instance Monoid Query
+ NationStates.Core: instance Show Query
+ NationStates.Core: queryOptions :: Query -> Map String String
+ NationStates.Core: queryShards :: Query -> Map String (Set (Maybe Integer))
+ NationStates.Nation: instance Applicative Nation
+ NationStates.Nation: instance Functor Nation
+ NationStates.Nation: unNation :: Nation a -> NS a
+ NationStates.Region: instance Applicative Region
+ NationStates.Region: instance Functor Region
+ NationStates.Region: unRegion :: Region a -> NS a
+ NationStates.Types: instance Eq FatherOrMother
+ NationStates.Types: instance Eq WACategory
+ NationStates.Types: instance Ord FatherOrMother
+ NationStates.Types: instance Ord WACategory
+ NationStates.Types: instance Read FatherOrMother
+ NationStates.Types: instance Read WACategory
+ NationStates.Types: instance Show FatherOrMother
+ NationStates.Types: instance Show WACategory
Files
- NationStates/Core.hs +5/−3
- NationStates/Nation.hs +2/−0
- NationStates/Region.hs +3/−0
- README.md +23/−3
- nationstates.cabal +2/−2
NationStates/Core.hs view
@@ -33,9 +33,10 @@ ) where +import Control.Applicative import qualified Data.ByteString.Char8 as BC import Data.Functor.Compose-import Data.Foldable (toList)+import qualified Data.Foldable as F import Data.List import Data.List.Split import Data.Monoid@@ -48,6 +49,7 @@ import qualified Network.HTTP.Types as HTTP import Text.Read import Text.XML.Light+import Prelude -- GHC 7.10 import NationStates.Types @@ -127,7 +129,7 @@ req = initRequest { queryString = HTTP.renderQuery True (HTTP.toQuery $- toList kindAndName ++ [("q", shards), ("v", show apiVersion)])+ F.toList kindAndName ++ [("q", shards), ("v", show apiVersion)]) <> BC.pack options, requestHeaders = ("User-Agent", BC.pack $ contextUserAgent c)@@ -185,7 +187,7 @@ queryToUrl :: Query -> (String, String) queryToUrl q = (shards, options) where- shards = intercalate "+" [ name ++ foldMap (\i -> "-" ++ show i) maybeId |+ shards = intercalate "+" [ name ++ F.foldMap (\i -> "-" ++ show i) maybeId | (name, is) <- Map.toList $ queryShards q, maybeId <- Set.toList is ] options = concat [ ";" ++ k ++ "=" ++ v |
NationStates/Nation.hs view
@@ -93,10 +93,12 @@ ) where +import Control.Applicative import Data.Maybe import qualified Data.Map as Map import qualified Data.MultiSet as MultiSet import Text.XML.Light+import Prelude -- GHC 7.10 import NationStates.Core
NationStates/Region.hs view
@@ -53,6 +53,9 @@ ) where +import Control.Applicative+import Prelude -- GHC 7.10+ import NationStates.Core
README.md view
@@ -1,4 +1,4 @@-# NationStates for Haskell+# NationStates for Haskell [](https://travis-ci.org/lfairy/nationstates) [NationStates] is an online government simulation game, created by Max Barry. The site generates a wealth of data, some of which can be accessed through its [official API]. @@ -8,11 +8,31 @@ [official API]: https://www.nationstates.net/pages/api.html +## Features++* **Type safe**: you can't refer to a shard unless you explicitly request it.++* **Automatic rate limiting**, which can be disabled or overridden if you want.++* **HTTP support** via the [tls] library.++* **Free and open source** under the Apache License, version 2.0.++[tls]: https://hackage.haskell.org/package/tls++ ## Dependencies -* GHC 7.10+* GHC 7.6 or newer - + GHC 7.8 support is planned – patches welcome!++## Installation++`nationstates` is hosted on [Hackage].++ cabal install nationstates++[Hackage]: https://hackage.haskell.org/package/nationstates ## Example
nationstates.cabal view
@@ -1,5 +1,5 @@ name: nationstates-version: 0.1.0+version: 0.1.0.1 synopsis: NationStates API client description: NationStates API client@@ -24,7 +24,7 @@ NationStates.Region NationStates.Types build-depends:- base >= 4.8 && < 5,+ base >= 4.6 && < 5, bytestring, clock, containers,