ua-parser 0.7.1 → 0.7.2
raw patch · 6 files changed
+38/−15 lines, 6 filesdep −derivedep ~aesonPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies removed: derive
Dependency ranges changed: aeson
API changes (from Hackage documentation)
- Web.UAParser: instance Data.Aeson.Types.Class.FromJSON Web.UAParser.DevParser
- Web.UAParser: instance Data.Aeson.Types.Class.FromJSON Web.UAParser.OSParser
- Web.UAParser: instance Data.Aeson.Types.Class.FromJSON Web.UAParser.UAConfig
- Web.UAParser: instance Data.Aeson.Types.Class.FromJSON Web.UAParser.UAParser
+ Web.UAParser: instance Data.Aeson.Types.FromJSON.FromJSON Web.UAParser.DevParser
+ Web.UAParser: instance Data.Aeson.Types.FromJSON.FromJSON Web.UAParser.OSParser
+ Web.UAParser: instance Data.Aeson.Types.FromJSON.FromJSON Web.UAParser.UAConfig
+ Web.UAParser: instance Data.Aeson.Types.FromJSON.FromJSON Web.UAParser.UAParser
Files
- README.md +12/−0
- bench/Main.hs +5/−4
- changelog.md +2/−0
- src/Web/UAParser/SuiteUtils.hs +11/−2
- test/Main.hs +4/−5
- ua-parser.cabal +4/−4
+ README.md view
@@ -0,0 +1,12 @@+# uap-haskell is the ua-parser library for Haskell+[](https://travis-ci.org/ua-parser/uap-haskell)+[](https://hackage.haskell.org/package/ua-parser)++## Hackage++http://hackage.haskell.org/package/ua-parser++## Github++https://github.com/ua-parser/uap-haskell+
bench/Main.hs view
@@ -6,10 +6,9 @@ --------------------------------------------------------------------------------import Control.Applicative+import Control.Applicative as A import Control.DeepSeq import Criterion.Main-import Data.DeriveTH ------------------------------------------------------------------------------- import Web.UAParser import Web.UAParser.SuiteUtils@@ -18,7 +17,7 @@ main :: IO () main = do- uas <- take 100 <$> loadTests "test_resources/firefox_user_agent_strings.yaml"+ uas <- take 100 A.<$> loadTests "test_resources/firefox_user_agent_strings.yaml" oses <- take 100 <$> loadTests "test_resources/additional_os_tests.yaml" devs <- take 100 <$> loadTests "tests/test_device.yaml" defaultMain [ bench "Parsing 100 UAs" $ nf (map (parseUA . uatcString)) uas@@ -27,4 +26,6 @@ ] -$(derives [makeNFData] [''UAResult, ''OSResult, ''DevResult])+instance NFData UAResult+instance NFData OSResult+instance NFData DevResult
+ changelog.md view
@@ -0,0 +1,2 @@+0.7.2+* Allow for aeson 1.0
src/Web/UAParser/SuiteUtils.hs view
@@ -9,11 +9,13 @@ ------------------------------------------------------------------------------- import Control.Applicative-import Data.Aeson+import Control.Monad (join)+import Data.Aeson hiding ((.:?))+import qualified Data.Aeson as A import Data.ByteString (ByteString) import Data.Text (Text) import qualified Data.Text.Encoding as T-import Data.Yaml+import Data.Yaml hiding ((.:?)) import System.FilePath ------------------------------------------------------------------------------- @@ -90,3 +92,10 @@ <*> o .: "family" <*> nonBlank (o .:? "brand") <*> nonBlank (o .:? "model")+++-------------------------------------------------------------------------------+-- | Backport a more lenient version of .:? from newer versions of+-- aeson. It accepts an explicit null as well as an omitted field.+(.:?) :: (FromJSON a) => Object -> Text -> Parser (Maybe a)+o .:? k = join <$> (o A..:? k)
test/Main.hs view
@@ -4,7 +4,7 @@ --------------------------------------------------------------------------------import Control.Applicative+import Control.Applicative as A import qualified Data.ByteString.Char8 as B import Data.Monoid import qualified Data.Text as T@@ -18,12 +18,11 @@ main :: IO () main = do- uaCases <- mconcat <$> mapM loadTests ["test_resources/firefox_user_agent_strings.yaml"- ,"test_resources/pgts_browser_list.yaml"- ,"tests/test_ua.yaml"]+ uaCases <- mconcat A.<$> mapM loadTests ["test_resources/firefox_user_agent_strings.yaml"+ ,"test_resources/pgts_browser_list.yaml"+ ,"tests/test_ua.yaml"] osCases <- mconcat <$> mapM loadTests [ "test_resources/additional_os_tests.yaml" , "tests/test_os.yaml" ]- --TODO: stop limiting once tests pass devCases <- loadTests "tests/test_device.yaml" defaultMain $ testGroup "ua-parser" [ uaTests uaCases , osTests osCases
ua-parser.cabal view
@@ -1,6 +1,6 @@ name: ua-parser description: Please refer to the git/github README on the project for example usage.-version: 0.7.1+version: 0.7.2 synopsis: A library for parsing User-Agent strings, official Haskell port of ua-parser license: BSD3 license-file: LICENSE@@ -14,6 +14,8 @@ , GHC == 7.10.2 extra-source-files: src/Web/UAParser/SuiteUtils.hs+ README.md+ changelog.md data-files: ./deps/uap-core/*.yaml ./deps/uap-core/test_resources/*.yaml@@ -40,7 +42,7 @@ , text , pcre-light , yaml >= 0.7 && < 0.9- , aeson >= 0.7 && < 0.12+ , aeson >= 0.7 && < 1.1 , data-default , file-embed < 0.1 @@ -63,7 +65,6 @@ base , bytestring , text- , derive , HUnit , pcre-light , yaml >= 0.7@@ -85,7 +86,6 @@ , ua-parser , criterion , deepseq- , derive , bytestring , text , yaml