packages feed

hjson-query 1.0.1 → 1.0.2

raw patch · 2 files changed

+37/−39 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

hjson-query.cabal view
@@ -1,12 +1,11 @@ Name:                hjson-query-Version:             1.0.1+Version:             1.0.2 Synopsis:            library for querying from JSON Category:            Text Description:         library(HXT-like) for querying from JSON License:             BSD3 License-file:        LICENSE-Author:              YuriyIskra  <iskra.yw@gmail.com>-Maintainer:          YuriyIskra  <iskra.yw@gmail.com>+Author:              YuriyIskra Stability:           Experimental Copyright:           Copyright (c) 2010 Yuriy Iskra Build-type:          Simple@@ -23,7 +22,3 @@                        containers >= 0.2 && < 1                    hs-source-dirs:      src----Source-repository head---    Type: git---    Location: git://github.com/iskra/hjson-query.git
src/Text/HJson/Query.hs view
@@ -55,26 +55,26 @@  -- Building --- | create empty JSON object+-- | Create empty JSON object. emptyObj :: Json emptyObj = JObject (M.empty) --- | create JSON object+-- | Create single JSON object. (-->) :: String -> Json -> Json key --> val = JObject (M.singleton key val) --- | merge two JSON Objects+-- | Merge two JSON Objects. (<>) :: Json -> Json -> Json (JObject x ) <> (JObject y)  = JObject $ M.union x y-(<>) _  _ = emptyObj+(<>) x  _ = x  --- | recursive merge two JSON Objects+-- | Recursive merge two JSON Objects. (<.>) :: Json -> Json -> Json (JObject x) <.> (JObject y) = JObject $ M.unionWith (\m n ->  m <.> n) x y-(<.>) _  _  = emptyObj+(<.>) x  _  = x --- | merge list JSON Objects+-- | Merge list JSON Objects. merges :: [Json] -> Json merges [] = emptyObj merges js = foldl1 (<>) js@@ -117,48 +117,48 @@  -- Fitering --- | filter JSON objects +-- | Filter JSON objects . isObj :: JFilter isObj (JObject o) = [JObject o] isObj _              = [] --- | filter JSON arrays+-- | Filter JSON arrays. isArr :: JFilter isArr (JArray a)  = [JArray a] isArr _              = [] --- | filter JSON strings+-- | Filter JSON strings. isStr :: JFilter isStr (JString s)  = [JString s] isStr _            = [] --- | predicative filter JSON strings+-- | Predicative filter JSON strings. isStrBy :: (String -> Bool) -> JFilter isStrBy p (JString s)  = if p s then [JString s] else [] isStrBy _ _           = [] --- | filter JSON numbers+-- | Filter JSON numbers. isNum :: JFilter isNum (JNumber n) = [JNumber n] isNum _           = []  --- | predicative filter JSON numbers+-- | Predicative filter JSON numbers. isNumBy :: Fractional a => (a -> Bool) -> JFilter isNumBy p (JNumber n) = if p (fromRational n) then [JNumber n] else [] isNumBy _ _          = [] --- | filter JSON Bool+-- | Filter JSON Bool. isBool :: JFilter isBool (JBool p)   = [JBool p] isBool _           = [] --- | filter JSON null+-- | Filter JSON null. isNull :: JFilter isNull JNull = [JNull] isNull _ = [] --- | filter primitive types+-- | Filter primitive types. isPrimitive :: JFilter isPrimitive (JString s)  = [JString s] isPrimitive (JNumber n)  = [JNumber n]@@ -167,12 +167,12 @@ isPrimitive _            = []  --- | get elements from object with key+-- | Get elements from object with key. getFromKey :: String -> JFilter getFromKey k (JObject m) = Mb.catMaybes  [(M.lookup k m)] getFromKey _ _                = [] --- | get elements from object with keys+-- | Get elements from object with keys. --  --  Example: -- @@ -198,33 +198,35 @@ getFromKeys ks (JObject m) = Mb.catMaybes $ map (\k -> (M.lookup k m)) (L.nub ks)  getFromKeys _ _            = [] --- | get all elements from object+-- | Get all elements from object. getFromObj :: JFilter getFromObj (JObject o) = M.elems o getFromObj _              = [] --- | get all elements from array+-- | Get all elements from array. getFromArr :: JFilter getFromArr (JArray a)  = a getFromArr _           = [] --- | get element from array with index+-- | Get element from array with index. getFromIndex :: Int -> JFilter getFromIndex i (JArray a) = if i < length a  then [a !! i] else [] getFromIndex _ _          = [] --- | get elements from array with indexes+-- | Get elements from array with indexes. getFromIndexes :: [Int] -> JFilter getFromIndexes is ja        = concat [getFromIndex i ja | i <- is] --- | get all elements from object and array+-- | Get all elements from object and array. getChildern :: JFilter getChildern (JObject o) = M.elems o getChildern (JArray a)  = a getChildern _              = [] --- | Example:+-- | @(f >>> g)@  - Apply filter f, later filter g . --+--   Example:+-- -- > query2 = query1 >>> getFromObj  -- > json2 = query2 merg -- > ex2 = pputJsons json2@@ -239,11 +241,11 @@ (>>>)	    :: JFilter -> JFilter -> JFilter  (f >>> g) t =  concat [g t' | t' <- f t] --- | concat result two filters+-- | Concat result two filters. (<+>)	    :: JFilter -> JFilter -> JFilter (f <+> g) t =  f t ++ g t --- | +-- |  @(f `orElse` g)@ - Apply f, if @f@ returned @null@ apply @g@. orElse	:: JFilter -> JFilter -> JFilter orElse f g t   | null res1 = g t@@ -251,27 +253,27 @@   where   res1 = f t --- | +-- | @(f `when` g)@ - When @g@ returned @not null@, apply @f@.  when	:: JFilter -> JFilter -> JFilter when f g t   | null (g t) = [t]   | otherwise  = f t --- | +-- |  @(f `guards` g )@ - If @f@ returned null then @null@ else apply @g@. guards	:: JFilter -> JFilter -> JFilter guards g f t   | null (g t) = []   | otherwise  = f t --- | tree traversal filter for object+-- | Tree traversal filter for object. deepObj	:: JFilter -> JFilter deepObj f  = f `orElse` (getFromObj >>> deepObj f) --- | tree traversal filter for array+-- | Tree traversal filter for array. deepArr :: JFilter -> JFilter deepArr f  = f `orElse` (getFromArr >>> deepArr f) --- | tree traversal filter for objects and arrays+-- | Tree traversal filter for objects and arrays. -- -- Example: --@@ -291,6 +293,7 @@ -- > deep getFromArr -- > -- ---  See also: <www.haskell.org/haskellwiki/HXT> +-- See also: <http://www.haskell.org/haskellwiki/HXT#The_concept_of_filters>+ deep	:: JFilter -> JFilter deep f  = f `orElse` (getChildern >>> deep f)