/scalate-core/src/main/scala/org/fusesource/scalate/console/Archetype.scala

http://github.com/scalate/scalate · Scala · 53 lines · 18 code · 7 blank · 28 comment · 2 complexity · 49ef33bf54aa861a4c9ea530bba92f21 MD5 · raw file

  1. /**
  2. * Copyright (C) 2009-2011 the original author or authors.
  3. * See the notice.md file distributed with this work for additional
  4. * information regarding copyright ownership.
  5. *
  6. * Licensed under the Apache License, Version 2.0 (the "License");
  7. * you may not use this file except in compliance with the License.
  8. * You may obtain a copy of the License at
  9. *
  10. * http://www.apache.org/licenses/LICENSE-2.0
  11. *
  12. * Unless required by applicable law or agreed to in writing, software
  13. * distributed under the License is distributed on an "AS IS" BASIS,
  14. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15. * See the License for the specific language governing permissions and
  16. * limitations under the License.
  17. */
  18. package org.fusesource.scalate.console
  19. import java.io.File
  20. /**
  21. * Represents a template archetype (namely a template used to generate other templates that can then be customized)
  22. *
  23. * @version $Revision: 1.1 $
  24. */
  25. case class Archetype(file: File) {
  26. def uri = file.getName
  27. def name = file.getName
  28. /**
  29. * Returns the extension of the template archetype
  30. */
  31. def extension = {
  32. val i = uri.lastIndexOf('.')
  33. if (i > 0) {
  34. uri.substring(i + 1)
  35. } else {
  36. uri
  37. }
  38. }
  39. def archetype = file.getPath
  40. /**
  41. * Returns the URI to post to that generates the new template for this archetype
  42. */
  43. def createUri(newTemplatePrefix: String) = {
  44. "/scalate/createTemplate?name=" + newTemplatePrefix + "archetype=" + file.getPath
  45. }
  46. }