Sha256: d9983e4a52cae36c58e27bd4ed0392fae0f8cced765d33d905cff5f1382eb2d8

Contents?: true

Size: 1.33 KB

Versions: 2

Compression:

Stored size: 1.33 KB

Contents

require 'jsduck/json_duck'
require 'jsduck/icons'
require 'jsduck/search_data'
require 'jsduck/stats'
require 'jsduck/meta_tag_registry'

module JsDuck

  # Creates big JS file with data for Docs app.
  class AppData
    attr_accessor :guides
    attr_accessor :videos
    attr_accessor :examples

    def initialize(relations, opts)
      @relations = relations
      @opts = opts
    end

    # Writes classes, guides, videos, and search data to one big .js file
    def write(filename)
      js = "Docs = " + JsonDuck.generate({
        :data => {
          :classes => Icons.new.create(@relations.classes),
          :guides => @guides.to_array,
          :videos => @videos.to_array,
          :examples => @examples.to_array,
          :search => SearchData.new.create(@relations.classes),
          :stats => @opts.stats ? Stats.new.create(@relations.classes) : [],
          :signatures => signatures,
          :localStorageDb => @opts.local_storage_db,
          :showPrintButton => @opts.seo,
          :touchExamplesUi => @opts.touch_examples_ui,
        }
      }) + ";\n"
      File.open(filename, 'w') {|f| f.write(js) }
    end

    def signatures
      sigs = MetaTagRegistry.instance.signatures
      # Inject private to meta tag signatures list
      sigs << {:key => 'private', :long => 'private', :short => 'PRI'}
      sigs
    end

  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
jsduck-3.4.1 lib/jsduck/app_data.rb
jsduck-3.4.0 lib/jsduck/app_data.rb