Commit 55ff8cbe authored by Rene Saarsoo's avatar Rene Saarsoo
Browse files

Extract Jsb class from Options::Porcessor.

parent 7f0ab8b5
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
require 'jsduck/util/json'

module JsDuck
  module Options

    # Handles reading of JSB3 files.
    class Jsb

      # Extracts files of first build in JSB3 file.
      def self.read(filename)
        json = Util::Json.read(filename)
        basedir = File.dirname(filename)

        return json["builds"][0]["packages"].map do |package_id|
          package = json["packages"].find {|p| p["id"] == package_id }
          (package ? package["files"] : []).map do |file|
            File.expand_path(basedir + "/" + file["path"] + file["name"])
          end
        end.flatten
      end

    end

  end
end
+2 −14
Original line number Diff line number Diff line
require 'jsduck/options/jsb'
require 'jsduck/logger'
require 'jsduck/util/json'
require 'jsduck/util/os'
@@ -58,7 +59,7 @@ module JsDuck
          if File.directory?(fname)
            Dir[fname+"/**/*.{js,css,scss}"].each {|f| files << f }
          elsif fname =~ /\.jsb3$/
            extract_jsb_files(fname).each {|fn| read_filenames(fn) }
            Options::Jsb.read(fname).each {|fn| read_filenames(fn) }
          else
            files << fname
          end
@@ -69,19 +70,6 @@ module JsDuck
        files
      end

      # Extracts files of first build in jsb file
      def extract_jsb_files(jsb_file)
        json = Util::Json.read(jsb_file)
        basedir = File.dirname(jsb_file)

        return json["builds"][0]["packages"].map do |package_id|
          package = json["packages"].find {|p| p["id"] == package_id }
          (package ? package["files"] : []).map do |file|
            File.expand_path(basedir + "/" + file["path"] + file["name"])
          end
        end.flatten
      end

      # Removes the files matching exclude_paths from list of files
      def exclude_files!(files, exclude_paths)
        exclude_paths.each do |exclude_path|