diff options
| author | Misko Hevery | 2011-11-02 16:32:46 -0700 | 
|---|---|---|
| committer | Misko Hevery | 2011-11-14 16:39:33 -0800 | 
| commit | bd04316a89a0909e7a4e483839d573ce857f7622 (patch) | |
| tree | 0378c33976ba524b7090a3665cd7729638f1545e /src/service/cookies.js | |
| parent | ed36b9da3be338fe9eb36f3eeea901d6f51cd768 (diff) | |
| download | angular.js-bd04316a89a0909e7a4e483839d573ce857f7622.tar.bz2 | |
refactor(services): migrate angular.service -> module
Diffstat (limited to 'src/service/cookies.js')
| -rw-r--r-- | src/service/cookies.js | 122 | 
1 files changed, 62 insertions, 60 deletions
| diff --git a/src/service/cookies.js b/src/service/cookies.js index 2cd2b9d6..16e14847 100644 --- a/src/service/cookies.js +++ b/src/service/cookies.js @@ -13,80 +13,82 @@   *   * @example   */ -angularServiceInject('$cookies', function($rootScope, $browser) { -  var cookies = {}, -      lastCookies = {}, -      lastBrowserCookies, -      runEval = false; +function $CookiesProvider() { +  this.$get = ['$rootScope', '$browser', function ($rootScope, $browser) { +    var cookies = {}, +        lastCookies = {}, +        lastBrowserCookies, +        runEval = false; -  //creates a poller fn that copies all cookies from the $browser to service & inits the service -  $browser.addPollFn(function() { -    var currentCookies = $browser.cookies(); -    if (lastBrowserCookies != currentCookies) { //relies on browser.cookies() impl -      lastBrowserCookies = currentCookies; -      copy(currentCookies, lastCookies); -      copy(currentCookies, cookies); -      if (runEval) $rootScope.$apply(); -    } -  })(); +    //creates a poller fn that copies all cookies from the $browser to service & inits the service +    $browser.addPollFn(function() { +      var currentCookies = $browser.cookies(); +      if (lastBrowserCookies != currentCookies) { //relies on browser.cookies() impl +        lastBrowserCookies = currentCookies; +        copy(currentCookies, lastCookies); +        copy(currentCookies, cookies); +        if (runEval) $rootScope.$apply(); +      } +    })(); -  runEval = true; +    runEval = true; -  //at the end of each eval, push cookies -  //TODO: this should happen before the "delayed" watches fire, because if some cookies are not -  //      strings or browser refuses to store some cookies, we update the model in the push fn. -  $rootScope.$watch(push); +    //at the end of each eval, push cookies +    //TODO: this should happen before the "delayed" watches fire, because if some cookies are not +    //      strings or browser refuses to store some cookies, we update the model in the push fn. +    $rootScope.$watch(push); -  return cookies; +    return cookies; -  /** -   * Pushes all the cookies from the service to the browser and verifies if all cookies were stored. -   */ -  function push() { -    var name, -        value, -        browserCookies, -        updated; +    /** +     * Pushes all the cookies from the service to the browser and verifies if all cookies were stored. +     */ +    function push() { +      var name, +          value, +          browserCookies, +          updated; -    //delete any cookies deleted in $cookies -    for (name in lastCookies) { -      if (isUndefined(cookies[name])) { -        $browser.cookies(name, undefined); +      //delete any cookies deleted in $cookies +      for (name in lastCookies) { +        if (isUndefined(cookies[name])) { +          $browser.cookies(name, undefined); +        }        } -    } -    //update all cookies updated in $cookies -    for(name in cookies) { -      value = cookies[name]; -      if (!isString(value)) { -        if (isDefined(lastCookies[name])) { -          cookies[name] = lastCookies[name]; -        } else { -          delete cookies[name]; +      //update all cookies updated in $cookies +      for(name in cookies) { +        value = cookies[name]; +        if (!isString(value)) { +          if (isDefined(lastCookies[name])) { +            cookies[name] = lastCookies[name]; +          } else { +            delete cookies[name]; +          } +        } else if (value !== lastCookies[name]) { +          $browser.cookies(name, value); +          updated = true;          } -      } else if (value !== lastCookies[name]) { -        $browser.cookies(name, value); -        updated = true;        } -    } -    //verify what was actually stored -    if (updated){ -      updated = false; -      browserCookies = $browser.cookies(); +      //verify what was actually stored +      if (updated){ +        updated = false; +        browserCookies = $browser.cookies(); -      for (name in cookies) { -        if (cookies[name] !== browserCookies[name]) { -          //delete or reset all cookies that the browser dropped from $cookies -          if (isUndefined(browserCookies[name])) { -            delete cookies[name]; -          } else { -            cookies[name] = browserCookies[name]; +        for (name in cookies) { +          if (cookies[name] !== browserCookies[name]) { +            //delete or reset all cookies that the browser dropped from $cookies +            if (isUndefined(browserCookies[name])) { +              delete cookies[name]; +            } else { +              cookies[name] = browserCookies[name]; +            } +            updated = true;            } -          updated = true;          }        }      } -  } -}, ['$rootScope', '$browser']); +  }]; +} | 
