angular.module('snap')
  .directive('snapToggle', function() {
      'use strict';
      return function (scope, element, attrs) {
        element.bind('click', function() {
            if (scope.snapper !== undefined) {
              if (attrs.snapToggle) {
                scope.snapper.toggle(attrs.snapToggle);
              } else {
                scope.snapper.toggle('left');
              }
            }
        });
      };
  });

angular.module('snap')
  .directive('snapToggle', function() {
      'use strict';
      return {
        restrict: 'A',
        link: function (scope, element, attrs) {
          element.bind('click', function() {
              if (scope.snapper !== undefined) {
                if (attrs.snapToggle) {
                  scope.snapper.toggle(attrs.snapToggle);
                } else {
                  scope.snapper.toggle('left');
                }
              }
          });
        }
      };
  });

Make required attribute status explicit
style: Make required attribute status explicit

We'll let the user decide if they want to use a button or  tag
