htaglib 1.1.1 → 1.2.0
raw patch · 12 files changed
+100/−73 lines, 12 filesdep +semigroupsdep ~basedep ~bytestringdep ~text
Dependencies added: semigroups
Dependency ranges changed: base, bytestring, text, transformers
Files
- CHANGELOG.md +9/−0
- LICENSE.md +1/−1
- README.md +1/−2
- Sound/HTagLib.hs +1/−1
- Sound/HTagLib/Getter.hs +1/−1
- Sound/HTagLib/Internal.hs +1/−1
- Sound/HTagLib/Setter.hs +16/−10
- Sound/HTagLib/Type.hs +1/−1
- htaglib.cabal +62/−55
- tests/Sound/HTagLib/GetterSpec.hs +2/−0
- tests/Sound/HTagLib/SetterSpec.hs +1/−0
- tests/Sound/HTagLib/Test/Util.hs +4/−1
CHANGELOG.md view
@@ -1,3 +1,12 @@+## HTagLib 1.2.0++* Compiles with GHC 8.4.1.++* Added `Semigroup` instance for `TagSetter`.++* All definitions are re-exported in the `Sound.HTagLib` module, so other+ modules have been hidden.+ ## HTagLib 1.1.1 * Improved/updated documentation and metadata.
LICENSE.md view
@@ -1,4 +1,4 @@-Copyright © 2015–2017 Mark Karpov+Copyright © 2015–2018 Mark Karpov All rights reserved.
README.md view
@@ -5,7 +5,6 @@ [](http://stackage.org/nightly/package/htaglib) [](http://stackage.org/lts/package/htaglib) [](https://travis-ci.org/mrkkrp/htaglib)-[](https://coveralls.io/github/mrkkrp/htaglib?branch=master) * [Alternatives](#alternatives) * [A note for FLAC users](#a-note-for-flac-users)@@ -193,6 +192,6 @@ ## License -Copyright © 2015–2017 Mark Karpov+Copyright © 2015–2018 Mark Karpov Distributed under BSD 3 clause license.
Sound/HTagLib.hs view
@@ -1,6 +1,6 @@ -- | -- Module : Sound.HTagLib--- Copyright : © 2015–2017 Mark Karpov+-- Copyright : © 2015–2018 Mark Karpov -- License : BSD 3 clause -- -- Maintainer : Mark Karpov <markkarpov92@gmail.com>
Sound/HTagLib/Getter.hs view
@@ -1,6 +1,6 @@ -- | -- Module : Sound.HTagLib.Getter--- Copyright : © 2015–2017 Mark Karpov+-- Copyright : © 2015–2018 Mark Karpov -- License : BSD 3 clause -- -- Maintainer : Mark Karpov <markkarpov92@gmail.com>
Sound/HTagLib/Internal.hs view
@@ -1,6 +1,6 @@ -- | -- Module : Sound.HTagLib.Internal--- Copyright : © 2015–2017 Mark Karpov+-- Copyright : © 2015–2018 Mark Karpov -- License : BSD 3 clause -- -- Maintainer : Mark Karpov <markkarpov92@gmail.com>
Sound/HTagLib/Setter.hs view
@@ -1,6 +1,6 @@ -- | -- Module : Sound.HTagLib.Setter--- Copyright : © 2015–2017 Mark Karpov+-- Copyright : © 2015–2018 Mark Karpov -- License : BSD 3 clause -- -- Maintainer : Mark Karpov <markkarpov92@gmail.com>@@ -31,11 +31,12 @@ import Control.Applicative ((<|>)) import Control.Monad.IO.Class import Data.Foldable (forM_)+import Data.Semigroup (Semigroup (..)) import Sound.HTagLib.Type import qualified Sound.HTagLib.Internal as I #if !MIN_VERSION_base(4,8,0)-import Data.Monoid+import Data.Monoid hiding ((<>)) #endif -- | A composable entity that can be used together with the 'setTags' or the@@ -56,6 +57,18 @@ , sdYear :: Maybe (Maybe Year) , sdTrackNumber :: Maybe (Maybe TrackNumber) } +-- | @since 1.2.0++instance Semigroup TagSetter where+ x <> y = let f g = g x <|> g y in TagSetter+ { sdTitle = f sdTitle+ , sdArtist = f sdArtist+ , sdAlbum = f sdAlbum+ , sdComment = f sdComment+ , sdGenre = f sdGenre+ , sdYear = f sdYear+ , sdTrackNumber = f sdTrackNumber }+ instance Monoid TagSetter where mempty = TagSetter { sdTitle = Nothing@@ -65,14 +78,7 @@ , sdGenre = Nothing , sdYear = Nothing , sdTrackNumber = Nothing }- mappend x y = let f g = g x <|> g y in TagSetter- { sdTitle = f sdTitle- , sdArtist = f sdArtist- , sdAlbum = f sdAlbum- , sdComment = f sdComment- , sdGenre = f sdGenre- , sdYear = f sdYear- , sdTrackNumber = f sdTrackNumber }+ mappend = (<>) -- | Set tags in specified file using the given setter. --
Sound/HTagLib/Type.hs view
@@ -1,6 +1,6 @@ -- | -- Module : Sound.HTagLib.Type--- Copyright : © 2015–2017 Mark Karpov+-- Copyright : © 2015–2018 Mark Karpov -- License : BSD 3 clause -- -- Maintainer : Mark Karpov <markkarpov92@gmail.com>
htaglib.cabal view
@@ -1,65 +1,72 @@-name: htaglib-version: 1.1.1-cabal-version: >= 1.10-tested-with: GHC==7.8.4, GHC==7.10.3, GHC==8.0.2, GHC==8.2.1-license: BSD3-license-file: LICENSE.md-author: Mark Karpov <markkarpov92@gmail.com>-maintainer: Mark Karpov <markkarpov92@gmail.com>-homepage: https://github.com/mrkkrp/htaglib-bug-reports: https://github.com/mrkkrp/htaglib/issues-category: Sound, Foreign-synopsis: Bindings to TagLib, audio meta-data library-build-type: Simple-description: Bindings to TagLib, audio meta-data library.-extra-doc-files: CHANGELOG.md- , README.md- , audio-samples/README.md-data-files: audio-samples/*.flac- , audio-samples/*.mp3+name: htaglib+version: 1.2.0+cabal-version: 1.18+tested-with: GHC==7.8.4, GHC==7.10.3, GHC==8.0.2, GHC==8.2.2, GHC==8.4.1+license: BSD3+license-file: LICENSE.md+author: Mark Karpov <markkarpov92@gmail.com>+maintainer: Mark Karpov <markkarpov92@gmail.com>+homepage: https://github.com/mrkkrp/htaglib+bug-reports: https://github.com/mrkkrp/htaglib/issues+category: Sound, Foreign+synopsis: Bindings to TagLib, audio meta-data library+build-type: Simple+description: Bindings to TagLib, audio meta-data library.+extra-doc-files: CHANGELOG.md+ , README.md+ , audio-samples/README.md+data-files: audio-samples/*.flac+ , audio-samples/*.mp3 +source-repository head+ type: git+ location: https://github.com/mrkkrp/htaglib.git+ flag dev- description: Turn on development settings.- manual: True- default: False+ description: Turn on development settings.+ manual: True+ default: False library- build-depends: base >= 4.7 && < 5.0- , bytestring >= 0.9 && < 0.11- , text >= 1.0 && < 1.3- , transformers >= 0.4 && < 0.6- extra-libraries: tag_c- exposed-modules: Sound.HTagLib- , Sound.HTagLib.Type- , Sound.HTagLib.Getter- , Sound.HTagLib.Setter- other-modules: Sound.HTagLib.Internal+ build-depends: base >= 4.7 && < 5.0+ , bytestring >= 0.9 && < 0.11+ , text >= 1.0 && < 1.3+ , transformers >= 0.4 && < 0.6+ if !impl(ghc >= 8.0)+ build-depends: semigroups == 0.18.*+ extra-libraries: tag_c+ exposed-modules: Sound.HTagLib+ other-modules: Sound.HTagLib.Type+ , Sound.HTagLib.Getter+ , Sound.HTagLib.Setter+ , Sound.HTagLib.Internal if flag(dev)- ghc-options: -O0 -Wall -Werror+ ghc-options: -Wall -Werror else- ghc-options: -O2 -Wall- default-language: Haskell2010+ ghc-options: -O2 -Wall+ if flag(dev) && impl(ghc >= 8.0)+ ghc-options: -Wcompat+ -Wincomplete-record-updates+ -Wincomplete-uni-patterns+ -Wnoncanonical-monad-instances+ -Wnoncanonical-monadfail-instances+ default-language: Haskell2010 test-suite tests- main-is: Spec.hs- hs-source-dirs: tests- type: exitcode-stdio-1.0+ main-is: Spec.hs+ hs-source-dirs: tests+ type: exitcode-stdio-1.0 if flag(dev)- ghc-options: -O0 -Wall -Werror+ ghc-options: -Wall -Werror else- ghc-options: -O2 -Wall- other-modules: Sound.HTagLib.GetterSpec- , Sound.HTagLib.SetterSpec- , Sound.HTagLib.Test.Util- build-depends: base >= 4.7 && < 5.0- , directory >= 1.2 && < 1.4- , filepath >= 1.4 && < 2.0- , hspec >= 2.0 && < 3.0- , htaglib- default-extensions:- CPP- default-language: Haskell2010--source-repository head- type: git- location: https://github.com/mrkkrp/htaglib.git+ ghc-options: -O2 -Wall+ other-modules: Sound.HTagLib.GetterSpec+ , Sound.HTagLib.SetterSpec+ , Sound.HTagLib.Test.Util+ build-depends: base >= 4.7 && < 5.0+ , directory >= 1.2 && < 1.4+ , filepath >= 1.4 && < 2.0+ , hspec >= 2.0 && < 3.0+ , htaglib+ build-tools: hspec-discover >= 2.0 && < 3.0+ default-language: Haskell2010
tests/Sound/HTagLib/GetterSpec.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE CPP #-}+ module Sound.HTagLib.GetterSpec (spec) where import Sound.HTagLib
tests/Sound/HTagLib/SetterSpec.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE OverloadedStrings #-} module Sound.HTagLib.SetterSpec (spec) where
tests/Sound/HTagLib/Test/Util.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE OverloadedStrings #-} module Sound.HTagLib.Test.Util@@ -10,12 +11,14 @@ where import Data.Maybe (fromJust)-import Data.Monoid import Sound.HTagLib import Test.Hspec #if !MIN_VERSION_base(4,8,0) import Control.Applicative+#endif+#if !MIN_VERSION_base(4,11,0)+import Data.Monoid #endif data AudioTags = AudioTags