template = """
⁄
⁄
""" define ["app", "angularAMD", "lodash", "services/rationals"], (app, angularAMD, _, rationals) -> angularAMD.directive "ratInput", () -> directive = restrict: 'E', template: template scope: ngModel: "=" ngDisabled: "=" controller: [ '$scope', "rationals", ($scope, rationals) -> $scope.getNominator = ()-> if _.contains($scope.ngModel, "/") return Number($scope.ngModel.substr(0, $scope.ngModel.indexOf("/"))) Number($scope.ngModel) $scope.getDenominator = () -> if _.contains($scope.ngModel, "/") return Number($scope.ngModel.substr($scope.ngModel.indexOf("/") + 1)) 1 $scope.changeModel = ()-> $scope.ngModel = rationals.newRat($scope.nominator, $scope.denominator) $scope.enableEdit = () -> if not $scope.ngDisabled $scope.edit = true $scope.init = () -> $scope.nominator = rationals.getNominator($scope.ngModel) $scope.denominator = $scope.getDenominator() $scope.$watch 'ngModel', () -> $scope.init() $scope.init() ] return directive