diff options
| author | 2017-01-12 19:21:15 +0100 | |
|---|---|---|
| committer | 2017-01-12 19:21:15 +0100 | |
| commit | 780c93c3f167ca3df26229024e42843358b916ad (patch) | |
| tree | 3d2cf27972feebae9a7fd8c53a93fc31ad9403b1 | |
| parent | a3ee36d21175204774462ca5a420874fd7f6503b (diff) | |
| download | askama-780c93c3f167ca3df26229024e42843358b916ad.tar.gz askama-780c93c3f167ca3df26229024e42843358b916ad.tar.bz2 askama-780c93c3f167ca3df26229024e42843358b916ad.zip | |
Use 'else if' instead of 'elif' to align more with Rust
Diffstat (limited to '')
| -rw-r--r-- | askama/src/parser.rs | 20 | ||||
| -rw-r--r-- | testing/templates/elif.html | 1 | ||||
| -rw-r--r-- | testing/templates/else-if.html | 1 | ||||
| -rw-r--r-- | testing/tests/simple.rs | 8 | 
4 files changed, 12 insertions, 18 deletions
| diff --git a/askama/src/parser.rs b/askama/src/parser.rs index 89fccff..96f123c 100644 --- a/askama/src/parser.rs +++ b/askama/src/parser.rs @@ -62,20 +62,18 @@ named!(expr_node<Node>, map!(      delimited!(tag_s!("{{"), ws!(expr_filtered), tag_s!("}}")),      Node::Expr)); -named!(cond_elif<(Option<Expr>, Nodes)>, do_parse!( -    tag_s!("{%") >> -    ws!(tag_s!("elif")) >> +named!(cond_if<Expr>, do_parse!( +    ws!(tag_s!("if")) >>      cond: ws!(expr_filtered) >> -    tag_s!("%}") >> -    block: parse_template >> -    (Some(cond), block))); +    (cond))); -named!(cond_else<Nodes>, do_parse!( +named!(cond_block<(Option<Expr>, Nodes)>, do_parse!(      tag_s!("{%") >>      ws!(tag_s!("else")) >> +    cond: opt!(cond_if) >>      tag_s!("%}") >>      block: parse_template >> -    (block))); +    (cond, block)));  named!(block_if<Node>, do_parse!(      tag_s!("{%") >> @@ -83,8 +81,7 @@ named!(block_if<Node>, do_parse!(      cond: ws!(expr_filtered) >>      tag_s!("%}") >>      block: parse_template >> -    elifs: many0!(cond_elif) >> -    rest: opt!(cond_else) >> +    elifs: many0!(cond_block) >>      tag_s!("{%") >>      ws!(tag_s!("endif")) >>      tag_s!("%}") >> @@ -92,9 +89,6 @@ named!(block_if<Node>, do_parse!(          let mut res = Vec::new();          res.push((Some(cond), block));          res.extend(elifs); -        if let Some(else_block) = rest { -            res.push((None, else_block)); -        }          Node::Cond(res)      }))); diff --git a/testing/templates/elif.html b/testing/templates/elif.html deleted file mode 100644 index ad0cbae..0000000 --- a/testing/templates/elif.html +++ /dev/null @@ -1 +0,0 @@ -{% if cond %}true{% elif check %}checked{% else %}false{% endif %} diff --git a/testing/templates/else-if.html b/testing/templates/else-if.html new file mode 100644 index 0000000..469e08e --- /dev/null +++ b/testing/templates/else-if.html @@ -0,0 +1 @@ +{% if cond %}true{% else if check %}checked{% else %}false{% endif %} diff --git a/testing/tests/simple.rs b/testing/tests/simple.rs index 61f5fa4..697dbd2 100644 --- a/testing/tests/simple.rs +++ b/testing/tests/simple.rs @@ -55,14 +55,14 @@ fn test_else() {  #[derive(Template)] -#[template(path = "elif.html")] -struct ElIfTemplate { +#[template(path = "else-if.html")] +struct ElseIfTemplate {      cond: bool,      check: bool,  }  #[test] -fn test_elif() { -    let s = ElIfTemplate { cond: false, check: true }; +fn test_else_if() { +    let s = ElseIfTemplate { cond: false, check: true };      assert_eq!(s.render(), "checked\n");  } | 
