An open API service indexing awesome lists of open source software.

https://github.com/nickjer/handlebars_switch

Adds a `{{#switch}}` helper to handlebars-rust
https://github.com/nickjer/handlebars_switch

Last synced: about 1 year ago
JSON representation

Adds a `{{#switch}}` helper to handlebars-rust

Awesome Lists containing this project

README

          

# Handlebars Switch Helper

[![Latest Version](https://img.shields.io/crates/v/handlebars_switch.svg)](https://crates.io/crates/handlebars_switch)
[![Downloads](https://img.shields.io/crates/d/handlebars_switch.svg)](https://crates.io/crates/handlebars_switch)
[![License](https://img.shields.io/github/license/nickjer/handlebars_switch.svg)](https://github.com/nickjer/handlebars_switch)
[![Docs](https://docs.rs/handlebars_switch/badge.svg)](https://docs.rs/handlebars_switch/)

This provides a [Handlebars](http://handlebarsjs.com/) `{{#switch}}` helper to
the already incredible [handlebars-rust](https://github.com/sunng87/handlebars-rust)
crate.

Links of interest:

- [Documentation](https://docs.rs/handlebars_switch)
- [handlebars-rust](https://github.com/sunng87/handlebars-rust)
- [Handlebars](http://handlebarsjs.com)

## Quick Start

You can easily add the ``{{#switch}}`` helper to a rust Handlebars object using
the `Handlebars#register_helper` method:

```rust
use handlebars::Handlebars;
use handlebars_switch::SwitchHelper;

let mut handlebars = Handlebars::new();
handlebars.register_helper("switch", Box::new(SwitchHelper));
```

### Example

Below is an example that renders a different page depending on the user's
access level:

```rust
extern crate handlebars_switch;
extern crate handlebars;
#[macro_use] extern crate serde_json;

use handlebars::Handlebars;
use handlebars_switch::SwitchHelper;

fn main() {
let mut handlebars = Handlebars::new();
handlebars.register_helper("switch", Box::new(SwitchHelper));

let tpl = "\
{{#switch access}}\
{{#case \"admin\"}}Admin{{/case}}\
{{#default}}User{{/default}}\
{{/switch}}\
";

assert_eq!(
handlebars.template_render(tpl, &json!({"access": "admin"})).unwrap(),
"Admin"
);

assert_eq!(
handlebars.template_render(tpl, &json!({"access": "nobody"})).unwrap(),
"User"
);
}
```