Sha256: da5e94a0265c4c7849717f540967f0c556691ce64eb2703e017df1e3db23eba3

Contents?: true

Size: 1.27 KB

Versions: 28

Compression:

Stored size: 1.27 KB

Contents

# ===========================================================================
# Project:   Abbot - SproutCore Build Tools
# Copyright: ©2009 Apple Inc.
#            portions copyright @2006-2011 Strobe 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

28 entries across 28 versions & 1 rubygems

Version Path
sproutcore-1.6.0.1-java lib/sproutcore/builders/strings.rb
sproutcore-1.6.0.1 lib/sproutcore/builders/strings.rb
sproutcore-1.6.0.1-x86-mingw32 lib/sproutcore/builders/strings.rb
sproutcore-1.6.0 lib/sproutcore/builders/strings.rb
sproutcore-1.6.0-java lib/sproutcore/builders/strings.rb
sproutcore-1.6.0.rc.2-x86-mingw32 lib/sproutcore/builders/strings.rb
sproutcore-1.6.0.rc.2 lib/sproutcore/builders/strings.rb
sproutcore-1.6.0.rc.2-java lib/sproutcore/builders/strings.rb
sproutcore-1.6.0.rc.1-x86-mingw32 lib/sproutcore/builders/strings.rb
sproutcore-1.6.0.rc.1 lib/sproutcore/builders/strings.rb
sproutcore-1.6.0.rc.1-java lib/sproutcore/builders/strings.rb
sproutcore-1.6.0.beta.3-x86-mingw32 lib/sproutcore/builders/strings.rb
sproutcore-1.6.0.beta.3-java lib/sproutcore/builders/strings.rb
sproutcore-1.6.0.beta.3 lib/sproutcore/builders/strings.rb
sproutcore-1.6.0.beta.2-x86-mingw32 lib/sproutcore/builders/strings.rb
sproutcore-1.6.0.beta.2-java lib/sproutcore/builders/strings.rb
sproutcore-1.6.0.beta.2 lib/sproutcore/builders/strings.rb
sproutcore-1.6.0.beta.1 lib/sproutcore/builders/strings.rb
sproutcore-1.5.0-java lib/sproutcore/builders/strings.rb
sproutcore-1.5.0 lib/sproutcore/builders/strings.rb