Sha256: 14abbabd8cdf92208827367e0b211f379db5bbc2199a686c67cc50fdcd552b18
Contents?: true
Size: 1.87 KB
Versions: 6
Compression:
Stored size: 1.87 KB
Contents
module Opal def self.gem_dir File.expand_path('../..', __FILE__.untaint) end def self.core_dir File.expand_path('../../../opal', __FILE__.untaint) end def self.std_dir File.expand_path('../../../stdlib', __FILE__.untaint) end # Add a file path to opals load path. Any gem containing ruby code that Opal # has access to should add a load path through this method. Load paths added # here should only be paths which contain code targeted at being compiled by # Opal. def self.append_path(path) append_paths(path) end # Same as #append_path but can take multiple paths. def self.append_paths(*paths) @paths.concat(paths) nil end module UseGem # Adds the "require_paths" (usually `lib/`) of gem with the given name to # Opal paths. By default will include the "require_paths" from all the # dependent gems. # # @param gem_name [String] the name of the gem # @param include_dependencies [Boolean] whether or not to add recursively # the gem's dependencies def use_gem(gem_name, include_dependencies = true) append_paths(*require_paths_for_gem(gem_name, include_dependencies)) end private def require_paths_for_gem(gem_name, include_dependencies) paths = [] spec = Gem::Specification.find_by_name(gem_name) spec.runtime_dependencies.each do |dependency| paths += require_paths_for_gem(dependency.name, include_dependencies) end if include_dependencies gem_dir = spec.gem_dir spec.require_paths.map do |path| paths << File.join(gem_dir, path) end paths end end extend UseGem def self.paths @paths.dup.freeze end # Resets Opal.paths to the default value (includes `corelib`, `stdlib`, `opal/lib`) def self.reset_paths! @paths = [core_dir.untaint, std_dir.untaint, gem_dir.untaint] nil end reset_paths! end
Version data entries
6 entries across 6 versions & 1 rubygems
Version | Path |
---|---|
opal-0.9.4 | lib/opal/paths.rb |
opal-0.9.3 | lib/opal/paths.rb |
opal-0.9.2 | lib/opal/paths.rb |
opal-0.9.0 | lib/opal/paths.rb |
opal-0.9.0.rc1 | lib/opal/paths.rb |
opal-0.9.0.beta2 | lib/opal/paths.rb |