packages feed

keera-hails-reactivevalues-0.7.0: keera-hails-reactivevalues.cabal

-- Copyright   : (C) Keera Studios Ltd, 2013
-- License     : All Rights Reserved
-- Maintainer  : support@keera.co.uk
--
cabal-version: >= 1.10
build-type:    Simple

name:          keera-hails-reactivevalues
version:       0.7.0
author:        Ivan Perez
maintainer:    support@keera.co.uk
homepage:      http://www.keera.co.uk/blog/community/
license:       BSD3
license-file:  LICENSE
copyright:     (C) 2013 Keera Studios Ltd
category:      Development
synopsis:      Haskell on Rails - Reactive Values
description:
  This package contains a general definition of Reactive Values and several
  useful combinators. A reactive value is a /typed mutable value with access
  properties and change propagation/. Access property can be read-only,
  read-write or read-write.
  .
  How an RV is actually implemented, and when and how change propagation is
  executed is dependent on each RV. For instance, Gtk widget properties would
  normally use the standard event-handler installers to implement change
  propagation, whereas pure Haskell values might fork a thread (or not) and
  propagate changes asynchronously.
  .
  RVs can be created from pure models (see
  <https://github.com/keera-studios/keera-hails/tree/master/keera-hails-mvc-model-lightmodel
  keera-hails-mvc-model-lightmodel> and
  <https://github.com/keera-studios/keera-hails/tree/master/keera-hails-mvc-model-protectedmodel
  keera-hails-mvc-model-protectedmodel>), Gtk+\/WX\/Qt\/HTML DOM\/Android widget
  properties\/event handlers\/getters\/setters, files, sockets, FRP networks.
  Other backends are also available. See
  <https://github.com/keera-studios/keera-hails keera-hails> for a list of
  available backends, tutorials, etc.

tested-with:         GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.2

source-repository head
  type: git
  location: git://github.com/keera-studios/keera-hails
  subdir: keera-hails-reactivevalues

-- You can disable the hlint test suite with -f-test-hlint
flag test-hlint
  default:     True
  manual:      True

-- You can disable the haddock coverage test suite with -f-test-doc-coverage
flag test-doc-coverage
  default:     True
  manual:      True

flag test-unit-tests
  default:     True
  manual:      True


library

  exposed-modules:
    Control.GFunctor
    Data.ReactiveValue

  build-depends:
      base >= 4 && < 5
    , contravariant

  default-language:
    Haskell2010

  hs-source-dirs:
    src/

  ghc-options:
    -Wall -fno-warn-unused-do-bind -O2


test-suite hlint

  type:
    exitcode-stdio-1.0

  main-is:
    HLintMain.hs

  default-language:
    Haskell2010

  hs-source-dirs:
    tests

  if !flag(test-hlint)
    buildable:
      False
  else
    build-depends:
        base
      , hlint                >= 1.7


test-suite haddock-coverage

  type:
    exitcode-stdio-1.0

  main-is:
    HaddockCoverage.hs

  default-language:
    Haskell2010

  hs-source-dirs:
    tests

  ghc-options:
    -Wall

  if !flag(test-doc-coverage)
    buildable:
      False
  else
    build-depends:
        base                 >= 4        && < 5
      , directory
      , filepath
      , process
      , regex-posix

    build-tool-depends: cabal-install:cabal


test-suite unit-tests

  type:
    exitcode-stdio-1.0

  main-is:
    Tasty.hs

  default-language:
    Haskell2010

  hs-source-dirs:
    tests

  ghc-options:
    -Wall

  if !flag(test-unit-tests)
    buildable:
      False
  else
    build-depends:
        base >= 4 && < 5
      , HUnit
      , QuickCheck
      , keera-hails-reactivevalues
      , mtl
      , tasty
      , tasty-hunit
      , tasty-quickcheck