# grunt-retro

> Add grunt@0.4 functionality to grunt@0.3 plugins

Latest version **0.7.0** (published 2014-01-26) · 0 weekly downloads

## Install

```sh
npm install grunt-retro
pnpm add grunt-retro
yarn add grunt-retro
bun add grunt-retro
```

## Health

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

Positive: no vulnerabilities.

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

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.7.0 |
| Published | 2014-01-26 |
| First published | 2013-02-26 |
| Weekly downloads | 0 |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >= 0.8.0 |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1 |
| Author | Todd Wolfson |
| Maintainers | twolfson |
| Keywords | grunt, gruntplugin, retrofit, grunt@0.3, legacy |

## Links

- npm: https://www.npmjs.com/package/grunt-retro
- Repository: https://github.com/twolfson/grunt-retro
- Issues: https://github.com/twolfson/grunt-retro/issues
- npm.io page: https://npm.io/package/grunt-retro

## Recent versions

- 0.7.0 (latest) — 2014-01-26
- 0.6.4 — 2013-09-16
- 0.6.3 — 2013-06-19
- 0.6.2 — 2013-05-26
- 0.6.1 — 2013-05-24
- 0.6.0 — 2013-03-06
- 0.5.0 — 2013-03-04
- 0.4.0 — 2013-03-01
- 0.3.1 — 2013-02-28
- 0.3.0 — 2013-02-28
- 0.2.1 — 2013-02-28
- 0.2.0 — 2013-02-28
- 0.1.0 — 2013-02-26

## README

# grunt-retro [![Build status](https://travis-ci.org/twolfson/grunt-retro.png?branch=master)](https://travis-ci.org/twolfson/grunt-retro)

Add grunt@0.4 functionality to grunt@0.3 plugins

## Getting Started
Install this grunt plugin next to your project's [grunt.js gruntfile][getting_started] with: `npm install grunt-retro`

Then inside your grunt plugin or grunt.js (depending on the scope of your intent), load and bind `grunt-retro` to `grunt`:

```javascript
// Inside of grunt plugin (MUST BE DONE IMMEDIATELY AFTER module.exports)
module.exports = function (grunt) {
  grunt = require('grunt-retro')(grunt);

  // Continue with normal actions
};
```

[grunt]: http://gruntjs.com/
[getting_started]: https://github.com/gruntjs/grunt/blob/master/docs/getting_started.md

## Documentation
`grunt-retro` takes care of the gotchas between `grunt@0.3` and `grunt@0.4`. Below is a list of what we guarantee to work:

- Define `this.file` to match the `0.3` specification; `{src, file}`
- Fallback `this.utils` to be an object of `grunt` utilites
- Allow for `registerTask` to alias multiple tasks via single string

```js
grunt.registerTask('multi-task', 'lint clean test');
```

- Add back `grunt.helper` and `grunt.registerHelper` system

### Nuances
- Plugins will receive the same `array` or `non-array` input from `this.file.src`
    - In `0.4`, this is normalized to always be an `array`.
- Fallback `grunt.file.glob.minimatch`

## Examples
### grunt plugin

```js
module.exports = function (grunt) {
  // Bind retro functionality
  grunt = require('grunt-retro')(grunt);

  // Create and register our task
  grunt.registerTask('rot13', 'Rotate a file by 13', function () {
    // Grab file locations -- normally, we would expandFiles(src)
    var file = this.file,
        src = file.src,
        dest = file.dest;

    // Rotate content
    var input = grunt.file.read(src),
        output = grunt.helper('rot13', input);

    // Write out content
    grunt.file.write(dest, output);
  });

  // Register a helper for performing rot13
  grunt.registerHelper('rot13', rot13Fn);
};
```

### grunt.js
```js
module.exports = function (grunt) {
  // Bind retro functionality
  grunt = require('grunt-retro')(grunt);

  // Set up config
  grunt.initConfig({...});

  // Register default task
  grunt.registerTask('default', 'lint test');
};
```

## Donating
Support this project and [others by twolfson][gittip] via [gittip][].

[![Support via Gittip][gittip-badge]][gittip]

[gittip-badge]: https://rawgithub.com/twolfson/gittip-badge/master/dist/gittip.png
[gittip]: https://www.gittip.com/twolfson/

## Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint your code using [grunt][grunt] and test via `npm test`.

## Unlicense
As of Sep 15 2013, Todd Wolfson has released this repository and its contents to the public domain.

It has been released under the [UNLICENSE][].

[UNLICENSE]: UNLICENSE

Prior to Sep 15 2013, this repository and its contents were licensed under the [MIT license][].

[MIT license]: https://github.com/twolfson/grunt-retro/blob/2a6242f6d4560c66a2b17db7846103e85ccd4866/LICENSE-MIT

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