Safe Haskell | None |
---|---|
Language | Haskell2010 |
HaskellCI.YamlSyntax
Documentation
This is not complete YAML document tree;
only as much as we need in haskell-ci
.
Constructors
YString ann String | |
YBool ann Bool | |
YList ann [Yaml ann] | |
YKeyValues ann [(ann, String, Yaml ann)] | |
YValue ann Value | inline JSON (for compactness) |
Instances
Functor Yaml Source # | |
Foldable Yaml Source # | |
Defined in HaskellCI.YamlSyntax Methods fold :: Monoid m => Yaml m -> m # foldMap :: Monoid m => (a -> m) -> Yaml a -> m # foldr :: (a -> b -> b) -> b -> Yaml a -> b # foldr' :: (a -> b -> b) -> b -> Yaml a -> b # foldl :: (b -> a -> b) -> b -> Yaml a -> b # foldl' :: (b -> a -> b) -> b -> Yaml a -> b # foldr1 :: (a -> a -> a) -> Yaml a -> a # foldl1 :: (a -> a -> a) -> Yaml a -> a # elem :: Eq a => a -> Yaml a -> Bool # maximum :: Ord a => Yaml a -> a # | |
Traversable Yaml Source # | |
Eq ann => Eq (Yaml ann) Source # | |
Show ann => Show (Yaml ann) Source # | |
Monoid ann => IsString (Yaml ann) Source # | |
Defined in HaskellCI.YamlSyntax Methods fromString :: String -> Yaml ann # | |
ann ~ [String] => ToYaml (Yaml ann) Source # | |
Instances
ToYaml Bool Source # | |
ToYaml Value Source # | |
ToYaml TravisAllowFailure Source # | |
Defined in HaskellCI.Travis.Yaml | |
ToYaml TravisAddons Source # | |
Defined in HaskellCI.Travis.Yaml | |
ToYaml TravisJob Source # | |
ToYaml TravisMatrix Source # | |
Defined in HaskellCI.Travis.Yaml | |
ToYaml TravisIRC Source # | |
ToYaml TravisNotifications Source # | |
Defined in HaskellCI.Travis.Yaml | |
ToYaml TravisBranches Source # | |
Defined in HaskellCI.Travis.Yaml | |
ToYaml TravisCache Source # | |
Defined in HaskellCI.Travis.Yaml | |
ToYaml TravisGit Source # | |
ToYaml Travis Source # | |
ToYaml a => ToYaml [a] Source # | |
ann ~ [String] => ToYaml (Yaml ann) Source # | |
prettyYaml :: forall ann. (ann -> [String]) -> Yaml ann -> String Source #
Convert Yaml
to String
. ann
can be converted to comments.
Examples
>>>
let demo = putStr . prettyYaml lines
>>>
demo "foo"
foo
>>>
demo "foo: bar"
"foo: bar"
>>>
demo $ YString "a comment" "foo"
# a comment foo
>>>
demo $ YBool "a comment" True
# a comment true
>>>
demo $ YList "" []
[]
>>>
demo $ YList "" ["foo", "foo: bar"]
- foo - "foo: bar"
>>>
demo $ YList "comment1" [YString "comment2" "foo", YString "comment3" "foo: bar"]
# comment1 # # comment2 - foo # comment3 - "foo: bar"
>>>
demo $ YKeyValues "" []
{}
>>>
demo $ YKeyValues "" [("", "foo", "bar"), ("", "help", "welcome")]
foo: bar help: welcome
>>>
let nested = YKeyValues "comment1" [("comment2", "foo", YString "comment3" "bar"), ("comment4", "help", YString "comment5" "welcome")]
>>>
demo nested
# comment1 # # comment2 # # comment3 foo: bar # comment4 # # comment5 help: welcome
>>>
demo $ YKeyValues "top" [("", "nested", nested)]
# top nested: # comment1 # # comment2 # # comment3 foo: bar # comment4 # # comment5 help: welcome
>>>
demo $ YValue "inline json" $ Aeson.toJSON [True, False, True]
# inline json [true,false,true]
>>>
demo $ YKeyValues "" [ ("", "addons", YValue "" $ Aeson.toJSON $ [Just "foo", Just "bar", Nothing]) ]
addons: ["foo","bar",null]
>>>
demo $ YString "" $ unlines ["foo","bar","baz"]
"foo\nbar\nbaz\n"
>>>
let multiline = YString "" $ unlines ["foo", "bar", "baz"]
>>>
demo $ YList "" [multiline, multiline]
- | foo bar baz - | foo bar baz
>>>
demo $ YKeyValues "" [("", "keyA", multiline), ("", "keyB", multiline)]
keyA: | foo bar baz keyB: | foo bar baz