コード例 #1
0
 def FindResourceGivenRelativePath(self, relative_path):
     """Returns a Resource for the given relative path."""
     absolute_path = None
     for script_path in self.source_paths:
         absolute_path = os.path.join(script_path, relative_path)
         if os.path.exists(absolute_path):
             return resource_module.Resource(script_path, absolute_path)
     return None
コード例 #2
0
    def FindResourceGivenAbsolutePath(self, absolute_path):
        """Returns a Resource for the given absolute path."""
        candidate_paths = []
        for source_path in self.source_paths:
            if absolute_path.startswith(source_path):
                candidate_paths.append(source_path)
        if len(candidate_paths) == 0:
            return None

        # Sort by length. Longest match wins.
        candidate_paths.sort(lambda x, y: len(x) - len(y))
        longest_candidate = candidate_paths[-1]
        return resource_module.Resource(longest_candidate, absolute_path)
コード例 #3
0
  def LoadRawScript(self, relative_raw_script_path):
    resource = None
    for source_path in self.source_paths:
      possible_absolute_path = os.path.join(source_path, relative_raw_script_path)
      if os.path.exists(possible_absolute_path):
        resource = resource_module.Resource(source_path, possible_absolute_path)
        break
    if not resource:
      raise module.DepsException('Could not find a file for raw script %s in %s' % (
        relative_raw_script_path, self.source_paths))
    assert relative_raw_script_path == resource.unix_style_relative_path, \
        'Expected %s == %s' % (relative_raw_script_path, resource.unix_style_relative_path)

    if resource.absolute_path in self.loaded_raw_scripts:
      return self.loaded_raw_scripts[resource.absolute_path]

    raw_script = module.RawScript(resource)
    self.loaded_raw_scripts[resource.absolute_path] = raw_script
    return raw_script
コード例 #4
0
 def testBasic(self):
     r = resource.Resource('/a', '/a/b/c.js')
     self.assertEquals('b.c', r.name)
     self.assertEquals(os.path.join('b', 'c.js'), r.relative_path)
     self.assertEquals('b/c.js', r.unix_style_relative_path)
コード例 #5
0
 def testBasic(self):
     r = resource.Resource("/a", "/a/b/c.js")
     self.assertEquals("b.c", r.name)
     self.assertEquals("b/c.js", r.relative_path)
     self.assertEquals("b/c.js", r.unix_style_relative_path)