| Index: grit/gather/json_loader.py
 | 
| ===================================================================
 | 
| --- grit/gather/json_loader.py	(revision 0)
 | 
| +++ grit/gather/json_loader.py	(revision 0)
 | 
| @@ -0,0 +1,53 @@
 | 
| +# Copyright (c) 2010 The Chromium Authors. All rights reserved.
 | 
| +# Use of this source code is governed by a BSD-style license that can be
 | 
| +# found in the LICENSE file.
 | 
| +
 | 
| +
 | 
| +import types
 | 
| +
 | 
| +from grit.gather import interface
 | 
| +from grit import util
 | 
| +
 | 
| +
 | 
| +class JsonLoader(interface.GathererBase):
 | 
| +  '''A simple gatherer that loads and parses a JSON file.'''
 | 
| +
 | 
| +  def __init__(self, json_text):
 | 
| +    '''Initializes a gatherer object with JSON input.
 | 
| +
 | 
| +    Args:
 | 
| +      json_text: A string containing a JSON expression.
 | 
| +    '''
 | 
| +    super(type(self), self).__init__()
 | 
| +    self._json_text = json_text
 | 
| +    self._data = None
 | 
| +
 | 
| +  def Parse(self):
 | 
| +    '''Parses the text of self._json_text into the data structure in
 | 
| +    self._data.
 | 
| +    '''
 | 
| +    globs = {}
 | 
| +    exec('data = ' + self._json_text, globs)
 | 
| +    self._data = globs['data']
 | 
| +
 | 
| +  def GetData(self):
 | 
| +    '''Returns the parsed JSON data.'''
 | 
| +    return self._data
 | 
| +
 | 
| +  def FromFile(filename_or_stream, extkey, encoding):
 | 
| +    '''Creates a JSONLoader instance from a file or stream.
 | 
| +
 | 
| +    Args:
 | 
| +      filename_or_stream: The source of JSON data.
 | 
| +      extkey: Unused, see interface.py.
 | 
| +      encoding: The encoding used in the JSON file. (Note that it should
 | 
| +        not contain localized strings.)
 | 
| +
 | 
| +    Returns:
 | 
| +      The JSONLoader instance holding the JSON data unparsed.
 | 
| +    '''
 | 
| +    if isinstance(filename_or_stream, types.StringTypes):
 | 
| +      filename_or_stream = \
 | 
| +          util.WrapInputStream(file(filename_or_stream, 'rU'), encoding)
 | 
| +    return JsonLoader(filename_or_stream.read())
 | 
| +  FromFile = staticmethod(FromFile)
 | 
| 
 | 
| Property changes on: grit/gather/json_loader.py
 | 
| ___________________________________________________________________
 | 
| Added: svn:eol-style
 | 
|    + LF
 | 
| 
 | 
| 
 |