haskmon 0.2.1.0 → 0.2.2.0
raw patch · 13 files changed
+55/−69 lines, 13 filesdep ~aesondep ~vectorPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: aeson, vector
API changes (from Hackage documentation)
+ Haskmon.Types.Internals: EvolutionMega :: EvolutionMethod
Files
- haskmon.cabal +45/−42
- src/Haskmon/Client.hs +0/−5
- src/Haskmon/Resource.hs +1/−3
- src/Haskmon/Types/Ability.hs +0/−1
- src/Haskmon/Types/Description.hs +0/−1
- src/Haskmon/Types/EggGroup.hs +0/−1
- src/Haskmon/Types/Game.hs +0/−1
- src/Haskmon/Types/Internals.hs +9/−10
- src/Haskmon/Types/MetaData.hs +0/−1
- src/Haskmon/Types/Move.hs +0/−1
- src/Haskmon/Types/Pokemon.hs +0/−1
- src/Haskmon/Types/Sprite.hs +0/−1
- src/Haskmon/Types/Type.hs +0/−1
haskmon.cabal view
@@ -1,46 +1,49 @@-name: haskmon-version: 0.2.1.0-synopsis: A haskell wrapper for PokeAPI.co (www.pokeapi.co)-description: This is a haskell wrapper for the RESTful api www.pokeapi.co.- It defines most of the types and functions in the API.-license: MIT-license-file: LICENSE-author: Pedro Rodriguez-maintainer: P.J.Rodriguez.T@gmail.com-category: Web, Game+name: haskmon+version: 0.2.2.0+cabal-version: >=1.10+build-type: Simple+license: MIT+license-file: LICENSE+maintainer: P.J.Rodriguez.T@gmail.com+synopsis: A haskell wrapper for PokeAPI.co (www.pokeapi.co)+description:+ This is a haskell wrapper for the RESTful api www.pokeapi.co.+ It defines most of the types and functions in the API.+category: Web, Game+author: Pedro Rodriguez -build-type: Simple-cabal-version: >=1.10+source-repository head+ type: git+ location: https://github.com/pjrt/Haskmon.git library- hs-source-dirs: src- exposed-modules: Haskmon,- Haskmon.Client,- Haskmon.Resource,- Haskmon.Types,- Haskmon.Types.Internals- other-modules:- Haskmon.Types.Game- Haskmon.Types.Move- Haskmon.Types.Type- Haskmon.Types.Sprite- Haskmon.Types.Ability- Haskmon.Types.Pokemon- Haskmon.Types.MetaData- Haskmon.Types.EggGroup- Haskmon.Types.Description- Haskmon.Types.Evolutions- build-depends: base >=4.8 && <4.9,- http-streams >=0.8 && < 0.9,- bytestring >=0.10.0.2 && < 0.11,- io-streams >=1.3 && < 1.4,- aeson >=0.8 && < 0.9,- time >= 1.5 && < 1.6,- vector >=0.10 && < 0.11,- containers >=0.5.5.1 && < 0.6- default-language: Haskell2010--source-repository head- type: git- location: https://github.com/pjrt/Haskmon.git+ exposed-modules:+ Haskmon+ Haskmon.Client+ Haskmon.Resource+ Haskmon.Types+ Haskmon.Types.Internals+ build-depends:+ base >=4.8 && <4.9,+ http-streams ==0.8.*,+ bytestring >=0.10.0.2 && <0.11,+ io-streams ==1.3.*,+ aeson >=0.8 && <0.10,+ time ==1.5.*,+ vector >=0.10 && <0.12,+ containers >=0.5.5.1 && <0.6+ default-language: Haskell2010+ hs-source-dirs: src+ other-modules:+ Haskmon.Types.Game+ Haskmon.Types.Move+ Haskmon.Types.Type+ Haskmon.Types.Sprite+ Haskmon.Types.Ability+ Haskmon.Types.Pokemon+ Haskmon.Types.MetaData+ Haskmon.Types.EggGroup+ Haskmon.Types.Description+ Haskmon.Types.Evolutions+ ghc-options: -Wall
src/Haskmon/Client.hs view
@@ -14,12 +14,7 @@ import Haskmon.Types import Haskmon.Resource(getResource)-import Data.Word import Data.Aeson(FromJSON)-import Data.List(find)-import Data.Char(toLower)-import Control.Applicative((<$>))-import qualified Data.Traversable as T type ID = Word
src/Haskmon/Resource.hs view
@@ -1,15 +1,13 @@ -- Resource getter. Used by everything else module Haskmon.Resource(getResource) where -import Data.Word import Data.Aeson-import Data.Either import Network.Http.Client import qualified Data.ByteString as B import qualified Data.ByteString.Char8 as B8-import Control.Applicative((<$>)) -- | Host of the API+host :: String host = "http://pokeapi.co/" -- | Uri of the resource
src/Haskmon/Types/Ability.hs view
@@ -3,7 +3,6 @@ I.Ability, I.MetaAbility ) where -import Data.Word import Haskmon.Types.Internals(MetaData, MetaAbility, Ability) import qualified Haskmon.Types.Internals as I
src/Haskmon/Types/Description.hs view
@@ -3,7 +3,6 @@ I.Description, I.MetaDescription ) where -import Data.Word import Haskmon.Types.Internals(MetaData, MetaPokemon, MetaGame, MetaDescription, Description) import qualified Haskmon.Types.Internals as I
src/Haskmon/Types/EggGroup.hs view
@@ -3,7 +3,6 @@ I.EggGroup, I.MetaEggGroup ) where -import Data.Word import Haskmon.Types.Internals(MetaData, MetaEggGroup, EggGroup, MetaPokemon) import qualified Haskmon.Types.Internals as I
src/Haskmon/Types/Game.hs view
@@ -1,6 +1,5 @@ module Haskmon.Types.Game where -import Data.Word import Haskmon.Types.Internals(MetaData, MetaGame, Game) import qualified Haskmon.Types.Internals as I
src/Haskmon/Types/Internals.hs view
@@ -1,17 +1,11 @@ {-# LANGUAGE OverloadedStrings #-} module Haskmon.Types.Internals where -import Data.Word-import Data.Vector(toList) import Data.Aeson import Data.Aeson.Types import Data.Time.Format import Data.Time.Clock-import Data.List(find) -import Data.Time.Format (parseTimeOrError)--import Control.Applicative import Control.Monad(mzero) import Haskmon.Resource(getResource)@@ -30,11 +24,12 @@ convert (v .: "created") <*> convert (v .: "modified") where convert :: Parser String -> Parser UTCTime- convert ps = readTime defaultTimeLocale formatStr <$> ps- readTime = parseTimeOrError True+ convert ps = readTime' defaultTimeLocale formatStr <$> ps+ readTime' = parseTimeOrError True formatStr = "%FT%R:%S%Q" -- Alias for withObject+withO :: Value -> (Object -> Parser a) -> Parser a withO o f = withObject "object" f o -- }}}@@ -48,7 +43,8 @@ show p = "<Pokedex - " ++ pokedexName p ++ ">" instance FromJSON MetaPokemon where- parseJSON (Object o) = MetaPokemon <$> o .: "name" <*> (getResource <$> o .: "resource_uri")+ parseJSON v = withO v $+ \o -> MetaPokemon <$> o .: "name" <*> (getResource <$> o .: "resource_uri") instance FromJSON Pokedex where parseJSON (Object o) = Pokedex <$> o .: "name" <*> o .: "pokemon"@@ -119,6 +115,7 @@ | EvolutionFriendship | EvolutionStone | EvolutionHappiness+ | EvolutionMega -- ^ @since 0.2.2.0 | EvolutionTrade | EvolutionOther -- Plain other...no info whatsoever deriving Show@@ -135,11 +132,13 @@ "stone" -> return EvolutionStone "level_up" -> EvolutionLevelUp <$> maybe LevelSpecial Level <$> v .:? "level" "other" -> go $ v .:? "detail"+ els -> fail $ "Expected an Evolution type. Got " ++ els where go pt = do str <- pt case str of Nothing -> return EvolutionOther- Just "happiness" -> return EvolutionHappiness+ Just "happiness" -> return EvolutionHappiness Just "friendship" -> return EvolutionFriendship+ Just "mega" -> return EvolutionMega Just l -> fail $ "Expected happiness or friendship, got " ++ l instance FromJSON Evolution where
src/Haskmon/Types/MetaData.hs view
@@ -3,7 +3,6 @@ I.MetaData ) where -import Data.Word import Data.Time.Clock import Haskmon.Types.Internals(MetaData) import qualified Haskmon.Types.Internals as I
src/Haskmon/Types/Move.hs view
@@ -3,7 +3,6 @@ I.Move, I.MetaMove ) where -import Data.Word import Haskmon.Types.Internals(MetaData, MetaMove, Move, MetaMoveLearnType) import qualified Haskmon.Types.Internals as I
src/Haskmon/Types/Pokemon.hs view
@@ -3,7 +3,6 @@ I.Pokemon, I.Pokedex, I.MetaPokemon ) where -import Data.Word import Haskmon.Types.Internals(MetaData, MetaPokemon, MetaAbility,
src/Haskmon/Types/Sprite.hs view
@@ -3,7 +3,6 @@ I.Sprite, I.MetaSprite ) where -import Data.Word import Haskmon.Types.Internals(MetaPokemon, MetaSprite, Sprite) import qualified Haskmon.Types.Internals as I
src/Haskmon/Types/Type.hs view
@@ -3,7 +3,6 @@ I.Type, I.MetaType ) where -import Data.Word import Haskmon.Types.Internals(MetaData, MetaType, Type) import qualified Haskmon.Types.Internals as I