class SourceMap

Attributes

file[RW]

The name of the file containing the code that this SourceMap describes. (default “”)

mappings[RW]

A list of mapping objects.

names[RW]

A list of names (used during parsing/generating) (default [])

source_root[RW]

The URL/directory that contains the original source files.

This is prefixed to the entries in ['sources'] (default “”)

sources[RW]

The list of sources (used during parsing/generating) These are relative to the source_root. (default [])

version[RW]

The version of the SourceMap spec we're using. (default 3)

Public Class Methods

from_json(json) click to toggle source

Load a SourceMap from a Hash such as might be returned by {SourceMap#as_json}.

# File lib/source_map/parser.rb, line 8
def self.from_json(json)
  raise ParserError, "Cannot parse version: #{json['version']} of SourceMap" unless json['version'] == 3

  map = new(:file => json['file'],
            :source_root => json['sourceRoot'],
            :sources => json['sources'],
            :names => json['names'])

  map.parse_mappings(json['mappings'] || '')
  map
end
from_s(str) click to toggle source

Load a SourceMap from a String.

# File lib/source_map/parser.rb, line 21
def self.from_s(str)
  from_json JSON.parse(str)
end
load(filename) click to toggle source

Load a SourceMap from a file.

# File lib/source_map/parser.rb, line 26
def self.load(filename)
  from_s File.read(filename)
end
new(opts={}) click to toggle source

Create a new blank SourceMap

Options may include:

:file => String # See {#file} :source_root => String # See {#source_root} :generated_output => IO # See {#generated_output}

:sources => Array # See {#sources} :names => Array # See {#names}

:version => 3 # Which version of SourceMap to use (only 3 is allowed)

# File lib/source_map.rb, line 25
def initialize(opts={})
  unless (remain = opts.keys - [:generated_output, :file, :source_root, :sources, :names, :version]).empty?
    raise ArgumentError, "Unsupported options to SourceMap.new: #{remain.inspect}"
  end
  self.generated_output = opts[:generated_output]
  self.file = opts[:file] || ''
  self.source_root = opts[:source_root] || ''
  self.version = opts[:version] || 3
  self.sources = opts[:sources] || []
  self.names = opts[:names] || []
  self.mappings = []
  raise "version #{opts[:version]} not supported" if version != 3
end