Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:15.0:Update
ghc-taggy-lens
ghc-taggy-lens.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File ghc-taggy-lens.spec of Package ghc-taggy-lens
# # spec file for package ghc-taggy-lens # # Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # %global pkg_name taggy-lens %bcond_with tests Name: ghc-%{pkg_name} Version: 0.1.2 Release: 0 Summary: Lenses for the taggy html/xml parser License: BSD-3-Clause Group: Development/Libraries/Haskell URL: https://hackage.haskell.org/package/%{pkg_name} Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz BuildRequires: ghc-Cabal-devel BuildRequires: ghc-lens-devel BuildRequires: ghc-rpm-macros BuildRequires: ghc-taggy-devel BuildRequires: ghc-text-devel BuildRequires: ghc-unordered-containers-devel %if %{with tests} BuildRequires: ghc-doctest-devel BuildRequires: ghc-hspec-devel %endif %description Lenses, folds, traversals and prisms for <http://hackage.haskell.org/package/taggy taggy>. This greatly simplifies your life when dealing with the ugly world of Real Life HTML. Here's an <https://github.com/alpmestan/taggy-lens/blob/master/example/HackageNew.hs example>. It lists the date, author and package name of all the /recent package uploads/ entries from the hackage page of the same name. Note that it uses <http://hackage.haskell.org/package/wreq wreq> to /fetch/ the Hackage page. > module Main (main) where > > import Control.Lens (to, only,(^?),ix, toListOf) > import Data.ByteString.Lazy (ByteString) > import Data.Text (Text) > import Data.Text.Encoding.Error (lenientDecode) > import Data.Text.Lazy.Encoding (decodeUtf8With) > import Network.HTTP.Client (Response) > import Network.Wreq (responseBody, get) > import Text.Taggy (Node) > import Text.Taggy.Lens (html, elements, children, contents,allNamed) > > data Upload = > Upload Text -- ^ date > Text -- ^ author > Text -- ^ package name > deriving (Show) > > table :: [Node] -> Maybe Upload > table row = do > date <- row ^? ix 0 . contents > author <- row ^? ix 1 . contents > package <- row ^? ix 2 . elements . contents > return $ Upload date author package > > recentPackages :: Response ByteString -> [Maybe Upload] > recentPackages = toListOf > $ responseBody . to (decodeUtf8With lenientDecode) > . html . allNamed (only "tr") . children . to table > > main :: IO () > main = get "https://hackage.haskell.org/packages/recent" >>= print `fmap` recentPackages Report any problem on our <http://github.com/alpmestan/taggy-lens/issues issues> page on github. %package devel Summary: Haskell %{pkg_name} library development files Group: Development/Libraries/Haskell Requires: %{name} = %{version}-%{release} Requires: ghc-compiler = %{ghc_version} Requires(post): ghc-compiler = %{ghc_version} Requires(postun): ghc-compiler = %{ghc_version} %description devel This package provides the Haskell %{pkg_name} library development files. %prep %setup -q -n %{pkg_name}-%{version} %build %ghc_lib_build %install %ghc_lib_install %check %cabal_test %post devel %ghc_pkg_recache %postun devel %ghc_pkg_recache %files -f %{name}.files %doc LICENSE %files devel -f %{name}-devel.files %changelog
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor