class JsDuck::Examples

Reads in examples JSON file

Public Class Methods

create(filename, opts) click to toggle source

Creates Examples object from filename.

# File lib/jsduck/examples.rb, line 10
def self.create(filename, opts)
  if filename
    Examples.new(filename, opts)
  else
    Util::NullObject.new(:to_array => [], :[] => nil)
  end
end
new(filename, opts) click to toggle source

Parses examples config file

# File lib/jsduck/examples.rb, line 19
def initialize(filename, opts)
  @groups = Util::Json.read(filename)
  @opts = opts
  fix_examples_data
  build_map_by_name
end

Public Instance Methods

fix_examples_data() click to toggle source

Prefix all relative URL-s in examples list with path given in –examples-base-url

For backwards compatibility:

  • Create names for each example when not present

  • Create title from text

  • Create description from desc

# File lib/jsduck/examples.rb, line 34
def fix_examples_data
  each_item do |ex|
    ex["name"] = ex["url"] unless ex["name"]

    unless ex["url"] =~ /^https?:\/\//
      ex["url"] = @opts.examples_base_url + ex["url"]
    end
    unless ex["icon"] =~ /^https?:\/\//
      ex["icon"] = @opts.examples_base_url + ex["icon"]
    end

    unless ex["title"]
      ex["title"] = ex["text"]
      ex.delete("text")
    end
    unless ex["description"]
      ex["description"] = ex["desc"]
      ex.delete("desc")
    end
  end
end
icon_url(example) click to toggle source

Extracts example icon URL from example hash

# File lib/jsduck/examples.rb, line 57
def icon_url(example)
  example["icon"]
end