Sha256: 55c67d761d6a673ffe69e3123d32fb24d481742f1b97d192f313b65fc8693d85
Contents?: true
Size: 1.28 KB
Versions: 18
Compression:
Stored size: 1.28 KB
Contents
# =========================================================================== # Project: Abbot - SproutCore Build Tools # Copyright: ©2009 Apple Inc. # portions copyright @2006-2009 Sprout Systems, Inc. # and contributors # =========================================================================== require "sproutcore/builders/base" require 'fileutils' require 'json' module SC # This builder is used to generate a file containing all of the loc strings # for a particular manifest. The strings file is used when generating # HTML try to map localized strings class Builder::Strings < Builder::Base def build(dst_path) data = parse_strings_js(entry[:source_path]) writelines dst_path, [data.to_json] end def parse_strings_js(source_path) return {} if !File.exists?(source_path) # read the file in and strip out comments... str = File.read(source_path) str = str.gsub(/\/\/.*$/,'').gsub(/\/\*.*\*\//m,'') # Now build the hash ret = {} str.scan(/['"](.+)['"]\s*:\s*['"](.+)['"],?\s*$/) do |x,y| # x & y are JS strings that must be evaled as such.. #x = eval(%("#{x}")) y = eval(%[<<__EOF__\n#{y}\n__EOF__]).chop ret[x] = y end return ret end end end
Version data entries
18 entries across 18 versions & 1 rubygems