directive-parser.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. module.exports = function (comment) {
  2. var pos = 0
  3. var value = comment.text
  4. var match = value.match(/^\s*!?\s*rtl:/)
  5. var meta
  6. if (match) {
  7. meta = {
  8. 'source': comment,
  9. 'name': '',
  10. 'param': '',
  11. 'begin': true,
  12. 'end': true,
  13. 'blacklist': false,
  14. 'preserve': false
  15. }
  16. value = value.slice(match[0].length)
  17. pos = value.indexOf(':')
  18. if (pos > -1) {
  19. meta.name = value.slice(0, pos)
  20. // begin/end are always true, unless one of them actually exists.
  21. meta.begin = meta.name !== 'end'
  22. meta.end = meta.name !== 'begin'
  23. if (meta.name === 'begin' || meta.name === 'end') {
  24. value = value.slice(meta.name.length + 1)
  25. pos = value.indexOf(':')
  26. if (pos > -1) {
  27. meta.name = value.slice(0, pos)
  28. value = value.slice(pos)
  29. meta.param = value.slice(1)
  30. } else {
  31. meta.name = value
  32. }
  33. } else {
  34. meta.param = value.slice(pos + 1)
  35. }
  36. } else {
  37. meta.name = value
  38. }
  39. }
  40. return meta
  41. }