Composable helpers for Ember that enables more declarative templating. These helpers can be composed together to form powerful ideas:
To install:
ember install ember-composable-helpers
Watch a free video overview presented by EmberMap:
This addon performs optional tree-shaking – you can specify which helpers to whitelist or blacklist using only
or except
within your config/environment.js
:
module.exports = function(environment) {
var ENV = {
'ember-composable-helpers': {
only: ['inc', 'dec', 'pipe'],
except: ['pipe', 'filter-by']
}
};
Both only
and except
can be safely used together (the addon computes the diff), although it's best if you only use one for your own sanity.
except: ['pipe'] // imports all helpers except `pipe`
only: ['pipe'] // imports only `pipe`
This addon is built with composability in mind, and in order to faciliate that, the ordering of arguments is somewhat different then you might be used to.
For all non-unary helpers, the subject of the helper function will always be the last argument. This way the arguments are better readable if you compose together multiple helpers:
For action helpers, this will mean better currying semantics:
Pipes the return values of actions in a sequence of actions. This is useful to compose a pipeline of actions, so each action can do only one thing.
The pipe
helper is Promise-aware, meaning that if any action in the pipeline returns a Promise, its return value will be piped into the next action. If the Promise rejects, the rest of the pipeline will be aborted.
The pipe
helper can also be used directly as a closure action (using pipe-action
) when being passed into a Component, which provides an elegant syntax for composing actions:
Calls an action as a template helper.
Toggles a boolean value.
toggle
can also be used directly as a closure action using toggle-action
:
toggle
also accepts optional values to rotate through:
Allows for the passed in action to not exist.
Camelizes a string using Ember.String.camelize
.
Capitalizes a string using Ember.String.capitalize
.
Classifies a string using Ember.String.classify
.
Capitalizes a string using Ember.String.dasherize
.
Truncates a string with a characterLimit.
Capitalizes a string using Ember.String.underscore
.
Splits a string on whitespace and/or turns multiple words into an array
or:
See also: Ember w
documentation
Maps an array on a property.
Sort an array by given properties.
You can append :desc
to properties to sort in reverse order.
Filters an array by a property.
If you omit the second argument it will test if the property is truthy.
You can also pass an action as second argument:
The inverse of filter by.
If you omit the third argument it will test if the property is falsey.
You can also pass an action as third argument:
Returns the first entry matching the given value.
Creates an array of unique values that are included in all given arrays.
Invokes a method on an object, or on each object of an array.
Joins arrays to create an array of unique values. When applied to a single array, has the same behavior as uniq
.
Returns the first n
entries of a given array.
Returns an array with the first n
entries omitted.
Repeats n
times. This can be useful for making an n-length arbitrary list for iterating upon (you can think of this form as a times helper, a la Ruby's 5.times { ... }
):
You can also give it a value to repeat:
Reverses the order of the array.
Generates a range of numbers between a min
and max
value.
It can also be set to inclusive
:
And works with a negative range:
Joins the given array with an optional separator into a string.
Removes blank items from an array.
Checks if a given value or sub-array is contained within an array.
Appends the given arrays and/or values into a single flat array.
Returns the given array split into sub-arrays the length of the given value.
Returns the given array without the given item(s).
Similar to the hash
helper, this lets you compose arrays directly in the template:
Shuffles an array with a randomizer function, or with Math.random
as a default. Your randomizer function should return a number between 0 and 1.
Flattens an array to a single dimension.
Returns the object at the given index of an array.
Returns an object where the keys are the unique values of the given property, and the values are an array with all items of the array that have the same value of that property.
Increments by 1
or step
.
Decrements by 1
or step
.
DockYard, Inc © 2016