# angular-eha.capitalize

> Capitalization tools (directive + filter) for Angular.js

Latest version **1.1.0** (published 2015-03-06) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install angular-eha.capitalize
pnpm add angular-eha.capitalize
yarn add angular-eha.capitalize
bun add angular-eha.capitalize
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.0 |
| Published | 2015-03-06 |
| First published | 2015-03-03 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 2 |
| Author | eHealthAfrica |
| Maintainers | ehealthafrica |
| Keywords | capitalize,  directive,  filter,  angularjs |

## Links

- npm: https://www.npmjs.com/package/angular-eha.capitalize
- Repository: https://github.com/eHealthAfrica/angular-eha.capitalize
- Homepage: http://ehealthafrica.org
- Issues: https://github.com/eHealthAfrica/angular-eha.capitalize/issues
- npm.io page: https://npm.io/package/angular-eha.capitalize

## Recent versions

- 1.1.0 (latest) — 2015-03-06
- 1.0.1 — 2015-03-04
- 1.0.0 — 2015-03-03

## README

# angular-eha.capitalize

[![Build Status](https://travis-ci.org/eHealthAfrica/angular-eha.capitalize.svg)](https://travis-ci.org/eHealthAfrica/angular-eha.capitalize) ![Dependecy Status](https://david-dm.org/eHealthAfrica/angular-eha.capitalize.svg) ![Dev Dependecy Status](https://david-dm.org/eHealthAfrica/angular-eha.capitalize/dev-status.svg)

## Usage

### Filter

The filter supports two modes; 'first' (default) and 'words' which can be passed to the filter like so:

#### default
```html
{{ 'i am a string' | capitalize }} <!-- I am a string -->
```

```javascript
$filter('capitalize')('i am a string'); // I am a string
```

#### first
```html
{{ 'i am a string' | capitalize:'first' }} <!-- I am a string -->
```

```javascript
$filter('capitalize')('i am a string', 'first'); // I am a string
```

#### words
```html
{{ 'i am a string' | capitalize:'words' }} <!-- I Am A String -->
```

```javascript
$filter('capitalize')('i am a string', 'words'); // I Am A String
```

#### Example

```html
<html ng-app="capitalizeFilterExample">
  <head>
    <title>Back Button Example</title>
    <script src="bower_components/angular/angular.js"></script>
    <script src="bower_components/angular/angular-eha.capitalize.js"></script>
    <script>
       angular.module('capitalizeFilterExample',[
         'eha.capitalize.filter'
       ])
       .controller('TestCtrl', function($scope) {
         $scope.str = 'i am a lowercase str';
       });
    </script>
  </head>
  <body>
    <p>{{ str | capitalize }}</p>
  </body>
</html>
```

### Directive

The directive leverages `$filter('capitalize')` supporting exactly the same functionality via a slightly different interface. Mode is passed via the `capitalize` attribute.

#### default

```html
<p capitalize ng-bind="i am a string"></p> <!-- I am a string -->
``` 

#### first
```html
<p capitalize="first" ng-bind="i am a string"></p> <!-- I am a string -->
```

#### words
```html
<p capitalize="words" ng-bind="i am a string"></p> <!-- I Am A String -->
```

#### Example

```html
<html ng-app="capitalizeDirectiveExample">
  <head>
    <title>Back Button Example</title>
    <script src="bower_components/angular/angular.js"></script>
    <script src="bower_components/angular/angular-eha.capitalize.js"></script>
    <script>
       angular.module('capitalizeDirectiveExample',[
         'eha.capitalize.directive'
       ])
       .controller('TestCtrl', function($scope) {
         $scope.str = 'i am a lowercase str';
       });
    </script>
  </head>
  <body>
    <p capitalize ng-bind="str"></p>
  </body>
</html>
```

## Installation

Install with npm:

    npm install --save angular-eha.capitalize

Or alternatively bower:

    bower install --save angular-eha.capitalize

The distribution bundle comes in 2 flavours, one with templates, one without - as well as providing both minified and unminfied versions of both, so take your pick:

- *dist/angular-eha.capitalize.js*
- *dist/angular-eha.capitalize.min.js*

Then simply add `eha.capitalize` as a dependency somewhere in your project that makes sense and you're good to go.

#### A note on wiredep

If you're using wiredep `dist/angular-eha.capitalize.js` will be injected by default. If you don't want that to happen you'll like want to employ something along the following lines in your `Gruntfile`:

```javascript
wiredep: {
 ...
  options: {
    exclude: [
      'bower_components/angular-eha.capitalize/dist/angular-eha.capitalize.js'
    ]
  }
  ...
}
```

Then you're free to include whichever bundle you prefer in what ever manner you prefer.


## Contributing

### Prerequisites

- Firefox (for running test suite)
- node (0.12.0)
- bower (1.3.12)
- grunt-cli (0.1.7)
- grunt (0.4.5)


### Installation

```bash
# Fork the upstream repo on github and pull down your fork
git clone git@github.com:yourusername/angular-eha.capitalize.git
# change into project folder
cd angular-eha.capitalize
# Add the upstream as a remote
git remote add upstream  git@github.com:eHealthAfrica/angular-eha.capitalize.git
# Install the dev dependencies
npm install
```

### Docs

Code should be documented following the guidelines set out by [jsdoc](http://usejsdoc.org/) and [ngdoc](https://github.com/angular/angular.js/wiki/Writing-AngularJS-Documentation). We can then leverage [Dgeni](http://github.com/angular/dgeni) or something simlary to generate documentation in any format we like.

### Test Suite

The test suite is configured to run in Firefox and is powered by:

- Karma
- Mocha
- Chai (as promised)
- Sinon (chai)

The library is conducive to TDD.  `grunt test:watch` is your friend. As modules (and templates) are exposed on their own namespaces you can easily isolate areas of the codebase for true unit testing without being forced to pull in the whole library or stub/mock modules irrelevent to the feature(s) you're testing.

#### Running Tests

##### Single run

```bash
grunt test
```

##### Watch

```bash
grunt test:watch
```

### Transpiling templates (html2js)

Transpiling our html templates into js allows us to neatly push them into the `$templateCache`.

To transpile the templates it's another simple grunt command:

```bash
grunt templates
```

This will compile the templates to the `dist/` folder. But it's probably best to avoid this all together. Both the `grunt test` and `grunt release` commands take care of all of this for you.

If you need to override the default template, simply replace what's already in the `$templateCache` with what ever you want. One way to achieve this is like this:

```html
<script id="templates/back-button.directive.tpl.html" type="text/html">
    <button>I'm a button!</button>
</script>
```

## Release Process

To make a release, ensure you have issued `grunt build`, committed the distribution package and tagged the commit with an appropriate version according to the [SemVer spec](http://semver.org/).

To make this easy for you, there's a handy grunt task. Simply issue `grunt release:major|minor|patch` and grunt will take care of building, committing and tagging for you. Then make a PR to the master branch of the upstream, merge upon CI build success and then all that's left to do is to push the tags to the upstream.

e.g:

```bash
  grunt release:minor
  git pull-request -b eHealthAfrica:master
  git push upstream --tags
```

### Publishing to npm

To publish a new version to npm, simply issue from the command line prior making a release (i.e.issuing a `grunt release` and pushing both commits and tags to the upstream):

```
npm publish
```

### Publishing to bower

Publishing to bower is slightly simpler in so far that you only have to do it once, and not explicitly for every release like npm:

e.g.

```
bower register angular-eha.capitalize https://github.com/eHealthAfrica/angular-eha.capitalizegit
```
## License

Copyright 2015 Matt Richards (eHealthAfrica)

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.  You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the specific language governing permissions and limitations under the License.

---
_Source: https://npm.io/package/angular-eha.capitalize · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
