Sha256: e230b8c77ecf6423f6e92a7c64f40f77fc79f3ed300d6e743ae0c74d554defee

Contents?: true

Size: 645 Bytes

Versions: 1

Compression:

Stored size: 645 Bytes

Contents

angular.module('EssayApp.directives').directive "countWords", ['$timeout', ($timeout) ->
  restrict: 'A'
  scope: false
  require: "ngModel"
  link: (scope, element, attrs, ngModel) ->
    PUNCTUATION = /[\u2000-\u2013\u2015-\u2018\u201A-\u206F\u2E00-\u2E7F\\!"#$%&\(\)*+,\.\/:;<=>?\[\]^_{|}~\uFF0C\u3002]+|$|^/g
    SPACES = /[\s]+/g

    fn = ->
      return 0 unless ngModel?.$modelValue?.length > 0
      flatten = ngModel.$modelValue.replace(PUNCTUATION, ' ')
      flatten.split(SPACES).length - 2

    init = ->
      scope.$watch fn, (words, old_cnt)->
        scope.$eval("#{attrs.countWords}=#{words}")

    $timeout init, 10, false
]

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
translation_cms-0.1.5 app/assets/javascripts/app/directives/count_words.js.coffee