Module: Libv8::Node::Paths
- Defined in:
- ext/libv8-node/paths.rb
Class Method Summary collapse
- .available_platform_directories ⇒ Object
- .config ⇒ Object
- .construct_ideal_platform_name ⇒ Object
- .determine_platform ⇒ Object
- .fallback_platform ⇒ Object
- .include_paths ⇒ Object
- .musl_platform? ⇒ Boolean
- .object_paths ⇒ Object
- .platform ⇒ Object
- .platform_directory_exists?(name) ⇒ Boolean
- .vendored_source_path ⇒ Object
Class Method Details
.available_platform_directories ⇒ Object
55 56 57 |
# File 'ext/libv8-node/paths.rb', line 55 def available_platform_directories Dir.glob(File.join(vendored_source_path, '*')).select { |d| File.directory?(d) }.map { |d| File.basename(d) } - ['include'] end |
.config ⇒ Object
59 60 61 |
# File 'ext/libv8-node/paths.rb', line 59 def config RbConfig::MAKEFILE_CONFIG end |
.construct_ideal_platform_name ⇒ Object
35 36 37 38 39 40 |
# File 'ext/libv8-node/paths.rb', line 35 def construct_ideal_platform_name local = Gem::Platform.local parts = [local.cpu, local.os, local.version] parts[2] = 'musl' if musl_platform? parts.compact.reject(&:empty?).join('-').gsub(/-darwin-?\d+/, '-darwin') end |
.determine_platform ⇒ Object
28 29 30 31 32 33 |
# File 'ext/libv8-node/paths.rb', line 28 def determine_platform ideal = construct_ideal_platform_name return ideal if platform_directory_exists?(ideal) fallback_platform end |
.fallback_platform ⇒ Object
50 51 52 53 |
# File 'ext/libv8-node/paths.rb', line 50 def fallback_platform available = available_platform_directories available.size == 1 ? available.first : construct_ideal_platform_name end |
.include_paths ⇒ Object
12 13 14 |
# File 'ext/libv8-node/paths.rb', line 12 def include_paths [Shellwords.escape(File.join(vendored_source_path, 'include'))] end |
.musl_platform? ⇒ Boolean
42 43 44 |
# File 'ext/libv8-node/paths.rb', line 42 def musl_platform? RUBY_PLATFORM =~ /musl/ end |
.object_paths ⇒ Object
16 17 18 19 20 21 22 |
# File 'ext/libv8-node/paths.rb', line 16 def object_paths [Shellwords.escape(File.join(vendored_source_path, platform, 'libv8', 'obj', "libv8_monolith.#{config['LIBEXT']}"))] end |
.platform ⇒ Object
24 25 26 |
# File 'ext/libv8-node/paths.rb', line 24 def platform @platform ||= determine_platform end |
.platform_directory_exists?(name) ⇒ Boolean
46 47 48 |
# File 'ext/libv8-node/paths.rb', line 46 def platform_directory_exists?(name) File.directory?(File.join(vendored_source_path, name)) end |
.vendored_source_path ⇒ Object
63 64 65 |
# File 'ext/libv8-node/paths.rb', line 63 def vendored_source_path File.('../../vendor/v8', __dir__) end |