<commit_before>__Breaking changes:__
- Set constructor takes a single param -- an array of members https://github.com/batmanjs/batman/pull/1042
- `hasMany` sets serialize to objects with index keys https://github.com/batmanjs/batman/pull/1065

  This means form data gets sent like:

  ```
    parent[children][0][name]=firstChild
    parent[children][1][name]=secondChild
  ```
  
  This works with Rails out-of-the-box, but might break for other frameworks.
  
### Batman helpers 
- `toSentence` doesnt the array passed to it https://github.com/batmanjs/batman/pull/1055
- `toSentence`, `ordinalize` and `titleize` added as view filters https://github.com/batmanjs/batman/pull/1064

### Batman.Set
- `Set::mappedTo` passed to `SetProxy`, too https://github.com/batmanjs/batman/pull/1052
- Set constructor takes a single param -- an array of members https://github.com/batmanjs/batman/pull/1042
- `Set::addArray` and `Set::removeArray` for adding and removing arrays https://github.com/batmanjs/batman/pull/1042

### Batman.App
- Can update params without redirecting: https://github.com/batmanjs/batman/pull/1048

### Batman.Model 
- `if`/`unless` handles multiple keys: https://github.com/batmanjs/batman/pull/1058
- primaryKeys that look like integers are coerced by default https://github.com/batmanjs/batman/pull/1071
- `Model::_loadIdentity` coerces its value to an integer if possible https://github.com/batmanjs/batman/pull/1071
- more messages for association-related errors https://github.com/batmanjs/batman/pull/1072
- association sets aren't `transaction`'d or `applyChanges`'d twice https://github.com/batmanjs/batman/pull/1062
- `@validate presence: true` will check for `proxy.target` if the value is a proxy https://github.com/batmanjs/batman/pull/1063
- `@urlNestsUnder` accepts deeply nested routes https://github.com/batmanjs/batman/pull/1068
- `Model::destroy` passes options to storage adapter https://github.com/batmanjs/batman/pull/1075
- `hasMany` sets serialize to objects with index keys https://github.com/batmanjs/batman/pull/1065

### Batman.Paginator 
- ModelPaginator can get totalCount from the server response https://github.com/batmanjs/batman/pull/1067

### Batman.StorageAdapter 
- Storage errors respond to `toJSON` https://github.com/batmanjs/batman/pull/1066
- Storage adapters keep the last storage error at `@lastError` https://github.com/batmanjs/batman/pull/1066

### Batman.Controller 
- params that look like integers are coerced to integers https://github.com/batmanjs/batman/pull/1071

### Batman.View
- Fix `View.isInDOM` throws `undefined method` from the render cache https://github.com/batmanjs/batman/pull/1050
- `data-showif`/`data-hideif` checks for `proxy.target` if the value is a proxy https://github.com/batmanjs/batman/pull/1063

## 0.16.0

Besides lots of bug fixes, documentation updates, etc, here some major changes:

- batman.js node package was removed
- Travis uploads successful, tagged builds to `http://batman.js.s3.amazonaws.com/batman-#{tag}.tar.gz`. Also, `master` is available at http://batman.js.s3.amazonaws.com/batman-master.tar.gz.
- added `cake build` and `cake build:dist` for compiling batman.js https://github.com/batmanjs/batman/pull/864

### Batman helpers
- `toSentence` added https://github.com/batmanjs/batman/pull/1035
- `capitalize` became `titlize`, `capitalize` gets a deprecation warning https://github.com/batmanjs/batman/pull/1035

### Batman.Object
- `Batman.Object.delegate` was added https://github.com/batmanjs/batman/pull/830
- `@delegate` handles `set` and `unset` too https://github.com/batmanjs/batman/pull/982
- `@classDelegate` to delegate `classAccessor` https://github.com/batmanjs/batman/pull/1001

### Batman.Set
- `::toJSON` iterates over members and calls `toJSON` on them https://github.com/batmanjs/batman/pull/905
- `::mappedTo` returns a `Batman.SetMapping` https://github.com/batmanjs/batman/pull/1018

### Batman.Hash
- `::toJSON` iterates over members and calls `toJSON` on them https://github.com/batmanjs/batman/pull/905

### Batman.Request<commit_msg>Update CHANGELOG [skip ci]<commit_after>__Breaking changes:__
- Set constructor takes a single param -- an array of members https://github.com/batmanjs/batman/pull/1042

### Batman helpers 
- `toSentence` doesnt the array passed to it https://github.com/batmanjs/batman/pull/1055
- `toSentence`, `ordinalize` and `titleize` added as view filters https://github.com/batmanjs/batman/pull/1064
- `increment` `decrement` and `toggle` filters added https://github.com/batmanjs/batman/pull/1081 

### Batman.Object
- `increment`, `decrement` and `toggle` functions for operating on properties https://github.com/batmanjs/batman/pull/1080

### Batman.Set
- `Set::mappedTo` passed to `SetProxy`, too https://github.com/batmanjs/batman/pull/1052
- Set constructor takes a single param -- an array of members https://github.com/batmanjs/batman/pull/1042
- `Set::addArray` and `Set::removeArray` for adding and removing arrays https://github.com/batmanjs/batman/pull/1042

### Batman.Proxy 
- `delegatesToTarget` creates functions that delegate to the target

### Batman.App
- Can update params without redirecting: https://github.com/batmanjs/batman/pull/1048

### Batman.Model 
- `if`/`unless` handles multiple keys: https://github.com/batmanjs/batman/pull/1058
- primaryKeys that look like integers are coerced by default https://github.com/batmanjs/batman/pull/1071
- `Model::_loadIdentity` coerces its value to an integer if possible https://github.com/batmanjs/batman/pull/1071
- more messages for association-related errors https://github.com/batmanjs/batman/pull/1072
- association sets aren't `transaction`'d or `applyChanges`'d twice https://github.com/batmanjs/batman/pull/1062
- `@validate presence: true` will check for `proxy.target` if the value is a proxy https://github.com/batmanjs/batman/pull/1063
- `@urlNestsUnder` accepts deeply nested routes https://github.com/batmanjs/batman/pull/1068
- `Model::destroy` passes options to storage adapter https://github.com/batmanjs/batman/pull/1075
- `hasMany` sets serialize to objects with index keys https://github.com/batmanjs/batman/pull/1065
- `@hasMany encodeWithIndexes: true` encodes children as an object instead of an array  https://github.com/batmanjs/batman/pull/1065
- AssociationProxy delegates `destroy`, `save`, `transaction` and `validate` to their targets https://github.com/batmanjs/batman/pull/1078
- `Transaction.save` and `Transaction.applyChanges` allow `only` and `except` options https://github.com/batmanjs/batman/pull/1089
- Fix for associations like `@hasOne 'address'` which was wrongly singularized https://github.com/batmanjs/batman/pull/1090

### Batman.Paginator 
- ModelPaginator can get totalCount from the server response https://github.com/batmanjs/batman/pull/1067

### Batman.StorageAdapter 
- Storage errors respond to `toJSON` https://github.com/batmanjs/batman/pull/1066
- Storage adapters keep the last storage error at `@lastError` https://github.com/batmanjs/batman/pull/1066

### Batman.Controller 
- params that look like integers are coerced to integers https://github.com/batmanjs/batman/pull/1071

### Batman.View
- Fix `View.isInDOM` throws `undefined method` from the render cache https://github.com/batmanjs/batman/pull/1050
- `data-showif`/`data-hideif` checks for `proxy.target` if the value is a proxy https://github.com/batmanjs/batman/pull/1063

### Batman Rails extra
- `@encodesNestedAttributesFor` to help with nested attributes https://github.com/batmanjs/batman/pull/1074

## 0.16.0

Besides lots of bug fixes, documentation updates, etc, here some major changes:

- batman.js node package was removed
- Travis uploads successful, tagged builds to `http://batman.js.s3.amazonaws.com/batman-#{tag}.tar.gz`. Also, `master` is available at http://batman.js.s3.amazonaws.com/batman-master.tar.gz.
- added `cake build` and `cake build:dist` for compiling batman.js https://github.com/batmanjs/batman/pull/864

### Batman helpers
- `toSentence` added https://github.com/batmanjs/batman/pull/1035
- `capitalize` became `titlize`, `capitalize` gets a deprecation warning https://github.com/batmanjs/batman/pull/1035

### Batman.Object
- `Batman.Object.delegate` was added https://github.com/batmanjs/batman/pull/830
- `@delegate` handles `set` and `unset` too https://github.com/batmanjs/batman/pull/982
- `@classDelegate` to delegate `classAccessor` https://github.com/batmanjs/batman/pull/1001

### Batman.Set
- `::toJSON` iterates over members and calls `toJSON` on them https://github.com/batmanjs/batman/pull/905
- `::mappedTo` returns a `Batman.SetMapping` https://github.com/batmanjs/batman/pull/1018

### Batman.Hash
- `::toJSON` iterates over members and calls `toJSON` on them https://github.com/batmanjs/batman/pull/905

### Batman.Request
{'fraction_non_alphanumeric': 0.1338092000906413, 'fraction_numerical': 0.0321776569227283, 'mean_word_length': 4.600888324873097, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 70, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '445672', 'n_tokens_mistral': 3031, 'n_tokens_neox': 2824, 'n_words': 716}