Sha256: a253b6f3c3ae54fbf8afc87a5c6a2f5035877ab57a706e4b2411310659ef27fa

Contents?: true

Size: 932 Bytes

Versions: 52

Compression:

Stored size: 932 Bytes

Contents

require 'jsduck/util/json'
require 'jsduck/util/null_object'
require 'jsduck/grouped_asset'

module JsDuck

  # Reads in videos JSON file
  class Videos < GroupedAsset
    # Parses videos config file
    def self.create(filename)
      if filename
        Videos.new(filename)
      else
        Util::NullObject.new(:to_array => [], :[] => nil)
      end
    end

    def initialize(filename)
      @groups = Util::Json.read(filename)
      add_names_if_missing
      build_map_by_name
    end

    # Each video should have a name, which is used in URL to reference the video.
    # For backwards compatibility, when name is missing, we turn the "id" (that must exist)
    # into a name.
    def add_names_if_missing
      each_item do |video|
        video["name"] = video["id"] unless video["name"]
      end
    end

    # Extracts video icon URL from video hash
    def icon_url(video)
      video["thumb"]
    end

  end

end

Version data entries

52 entries across 52 versions & 3 rubygems

Version Path
solvas-jsduck-6.0.0.30539 lib/jsduck/videos.rb
solvas-jsduck-6.0.0.9571 lib/jsduck/videos.rb
solvas-jsduck-6.0.0.6154 lib/jsduck/videos.rb
solvas-jsduck-6.0.0.4021 lib/jsduck/videos.rb
solvas-jsduck-6.0.0.2554 lib/jsduck/videos.rb
solvas-jsduck-6.0.0.1891 lib/jsduck/videos.rb
solvas-jsduck-6.0.0.beta.1888 lib/jsduck/videos.rb
jsduck-troopjs-0.0.10 lib/jsduck/videos.rb
jsduck-troopjs-0.0.9 lib/jsduck/videos.rb
jsduck-troopjs-0.0.8 lib/jsduck/videos.rb
jsduck-troopjs-0.0.7 lib/jsduck/videos.rb
jsduck-troopjs-0.0.5 lib/jsduck/videos.rb
jsduck-troopjs-0.0.4 lib/jsduck/videos.rb
jsduck-troopjs-0.0.3 lib/jsduck/videos.rb
jsduck-troopjs-0.0.1 lib/jsduck/videos.rb
jsduck-6.0.0beta lib/jsduck/videos.rb
jsduck-5.3.4 lib/jsduck/videos.rb
jsduck-5.3.3 lib/jsduck/videos.rb
jsduck-5.3.2 lib/jsduck/videos.rb
jsduck-5.3.1 lib/jsduck/videos.rb