File ghc-ansigraph.spec of Package ghc-ansigraph

#
# spec file for package ghc-ansigraph
#
# 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 ansigraph
%bcond_with tests
Name:           ghc-%{pkg_name}
Version:        0.3.0.2
Release:        0
Summary:        Terminal-based graphing via ANSI and Unicode
License:        MIT
Group:          Development/Languages/Other
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-ansi-terminal-devel
BuildRequires:  ghc-rpm-macros
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
%if %{with tests}
BuildRequires:  ghc-QuickCheck-devel
BuildRequires:  ghc-hspec-devel
%endif

%description
Ansigraph is an ultralightweight terminal-based graphing utility. It uses
Unicode characters and ANSI escape codes to display and animate colored graphs
of vectors/functions in real and complex variables.

This functionality is provided by a 'Graphable' type class, whose method
'graphWith' draws a graph at the terminal. Another function 'animateWith' takes
a list of Graphable elements and displays an animation by rendering them in
sequence. Both of these functions take an options record as an argument.
The 'graph' and 'animate' functions are defined to use the default options, and
the user can define similar functions based on their own settings.

There are two main ways to use the package. Importing
"System.Console.Ansigraph" provides all the functionality we typically use.
This includes the /FlexibleInstances/ extension, which makes it marginally more
convenient to use graphing functions by allowing instances like 'Graphable
[Double]'.

If you want to use the package without activating /FlexibleInstances/ then you
can import "System.Console.Ansigraph.Core", which provides everything except
these instances. Then you must use one of a few newtype wrappers, namely:
'Graph', 'PosGraph', 'CGraph', 'Mat', 'CMat'. These wrappers are also available
from the standard 'Ansigraph' module.

The "System.Console.Ansigraph.Examples" module contains examples of all the
graph types, and also shows the available ANSI colors.

%package devel
Summary:        Haskell %{pkg_name} library development files
Group:          Development/Libraries/Other
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
%defattr(-,root,root,-)
%doc LICENSE

%files devel -f %{name}-devel.files
%defattr(-,root,root,-)
%doc CHANGELOG.md README.md

%changelog
openSUSE Build Service is sponsored by