11# frozen_string_literal: true
22
3+ dest = File . absolute_path ( 'sass' , ENV . fetch ( 'RUBYARCHDIR' , File . absolute_path ( '../../lib' , __dir__ ) ) )
4+ FileUtils . mkdir_p ( dest )
5+ Dir . chdir ( dest )
6+
37require 'rake/clean'
48
59require_relative '../../lib/sass/elf'
@@ -8,9 +12,7 @@ ELF = Sass.const_get(:ELF)
812
913task default : %i[ install clean ]
1014
11- task install : %w[ cli.rb ] do
12- Rake ::Task [ 'embedded_sass_pb.rb' ] . invoke unless File . exist? ( 'embedded_sass_pb.rb' )
13- end
15+ task install : %w[ cli.rb ]
1416
1517CLEAN . include %w[
1618 protoc.exe
@@ -57,6 +59,11 @@ rescue StandardError
5759end
5860
5961file 'node_modules/sass' do
62+ cp File . absolute_path ( 'package.json' , __dir__ ) , './'
63+
64+ # TODO: remove after https://github.com/sass/dart-sass/pull/2413
65+ cp File . absolute_path ( "sass-#{ SassConfig . dart_sass_version } .tgz" , __dir__ ) , './'
66+
6067 sh 'npm' , 'install'
6168rescue StandardError
6269 begin
@@ -135,7 +142,7 @@ file 'cli.rb' => %w[dart-sass] do |t|
135142 File . write ( t . name , <<~CLI_RB )
136143 # frozen_string_literal: true
137144
138- require_relative '../../lib/ sass/elf'
145+ require ' sass/elf'
139146
140147 module Sass
141148 module CLI
@@ -487,7 +494,7 @@ module SassConfig
487494 end
488495
489496 def dart_sass_version
490- package_json [ 'dependencies' ] [ 'sass' ]
497+ package_json ( __dir__ ) [ 'dependencies' ] [ 'sass' ]
491498 # TODO: remove after https://github.com/sass/dart-sass/pull/2413
492499 . delete_prefix ( 'file:sass-' ) . delete_suffix ( '.tgz' )
493500 end
@@ -599,8 +606,9 @@ module SassConfig
599606
600607 def embedded_sass_protocol
601608 require 'json'
609+ require_relative File . absolute_path ( 'cli' )
602610
603- version = Utils . capture ( RbConfig . ruby ,
611+ version = Utils . capture ( RbConfig . ruby , '-I' , 'lib' , '--' ,
604612 File . absolute_path ( '../../exe/sass' , __dir__ ) ,
605613 '--embedded' ,
606614 '--version' )
0 commit comments