Skip to content

Specify template root path #192

Open

Description

@jasonm

When using Jammit, we run into a slightly sticky issue as an app grows from one template subdirectory to multiple template subdirectories.

Let's say you place templates in app/templates. You work for a while on the "Tasks" feature, placing templates under app/templates/tasks. So, window.JST looks something like:

JST['form']
JST['show']
JST['index']

Now, you add another directory under app/templates, say app/templates/user. Now, all JST references are prefixed with their parent directory name so they are unambiguous:

JST['tasks/form']
JST['tasks/show']
JST['tasks/index']
JST['users/new']
JST['users/show']
JST['users/index']

This breaks existing JST references. We've worked around this in new apps by monkeypatching the jammit base template path to a fixed parent directory from the get-go:

Jammit::Compressor.class_eval do
  private
  def find_base_path(path)
    File.expand_path(Rails.root.join('app','templates'))
  end
end

What do you think of either allowing a configurable option? Say, an assets.yml entry template_base_path which, if present, is always used as the template base path. In the absence of this option, the current logic would be preserved.

Activity

  1. shakerlxxv commented on Aug 16, 2011

    @shakerlxxv

    +1 for the configurable option.

  2. jasonm commented on Aug 19, 2011

    @jasonm
    Author

    Thoughts from the authors? Would you accept a pull request adding the configurable option?

  3. jashkenas commented on Aug 19, 2011

    @jashkenas
    Member

    Sounds good to me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions