ohloh-hs-0.0.1: Web/Ohloh/ContributorLanguageFact.hs
-- Copyright © 2012 Frank S. Thomas <frank@timepit.eu>
-- All rights reserved.
--
-- Use of this source code is governed by a BSD-style license that
-- can be found in the LICENSE file.
-- | Ohloh API Reference: <http://meta.ohloh.net/referencecontributor_language_fact/>
module Web.Ohloh.ContributorLanguageFact (
ContributorLanguageFact(..),
xpContributorLanguageFact
) where
import Text.XML.HXT.Arrow.Pickle
import Web.Ohloh.Common
-- | 'ContributorLanguageFact' contains a selection of
-- 'Web.Ohloh.Language.Language'-specific statistics about a single person
-- who commited source code to a 'Web.Ohloh.Project.Project'.
data ContributorLanguageFact = ContributorLanguageFact {
clfAnalysisId :: String,
clfContributorId :: String,
clfContributorName :: String,
clfLanguageId :: String,
clfLanguageNiceName :: String,
clfCommentRatio :: Double,
clfManMonths :: Int,
clfCommits :: Int,
clfMedianCommits :: Int
} deriving (Eq, Read, Show)
instance XmlPickler ContributorLanguageFact where
xpickle = xpContributorLanguageFact
instance ReadXmlString ContributorLanguageFact
instance ShowXmlString ContributorLanguageFact
xpContributorLanguageFact :: PU ContributorLanguageFact
xpContributorLanguageFact =
xpElem "contributor_language_fact" $
xpWrap (uncurry9 ContributorLanguageFact,
\(ContributorLanguageFact ai ci cn li lnn cr mm c mc) ->
(ai, ci, cn, li, lnn, cr, mm, c, mc)) $
xp9Tuple (xpElem "analysis_id" xpText0)
(xpElem "contributor_id" xpText0)
(xpElem "contributor_name" xpText0)
(xpElem "language_id" xpText0)
(xpElem "language_nice_name" xpText0)
(xpElem "comment_ratio" xpPrim)
(xpElem "man_months" xpInt)
(xpElem "commits" xpInt)
(xpElem "median_commits" xpInt)