angular.module 'NgBoolean', ['Factories', 'FactoryName','RailsUpdater']
.directive 'ngBoolean', ($injector,factoryName,RailsUpdater) -> restrict: 'A' require: ['ngModel','?ngCallback','?ngTrackBy'] link: (scope, element, attributes, ngControllers) -> updater = RailsUpdater.new(scope,ngControllers,attributes.ngModel,attributes.ngOverride) element.bind 'click', -> if element[0].tagName == 'INPUT' updater.update(element.val()) else bool = !ngControllers[0].$modelValue updater.update(bool) ngControllers[0].$setViewValue(bool)