execjs 1.2.9 → 1.2.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/execjs/external_runtime.rb +29 -13
- data/lib/execjs/version.rb +1 -1
- metadata +4 -4
| @@ -94,7 +94,7 @@ module ExecJS | |
| 94 94 | 
             
                  @test_args   = options[:test_args]
         | 
| 95 95 | 
             
                  @test_match  = options[:test_match]
         | 
| 96 96 | 
             
                  @encoding    = options[:encoding]
         | 
| 97 | 
            -
                  @binary      =  | 
| 97 | 
            +
                  @binary      = nil
         | 
| 98 98 | 
             
                end
         | 
| 99 99 |  | 
| 100 100 | 
             
                def exec(source)
         | 
| @@ -113,16 +113,37 @@ module ExecJS | |
| 113 113 |  | 
| 114 114 | 
             
                def available?
         | 
| 115 115 | 
             
                  require "multi_json"
         | 
| 116 | 
            -
                   | 
| 116 | 
            +
                  binary ? true : false
         | 
| 117 117 | 
             
                end
         | 
| 118 118 |  | 
| 119 | 
            +
                private
         | 
| 120 | 
            +
                  def binary
         | 
| 121 | 
            +
                    @binary ||= locate_binary
         | 
| 122 | 
            +
                  end
         | 
| 123 | 
            +
             | 
| 124 | 
            +
                  def which_windows(name)
         | 
| 125 | 
            +
                    result = `#{shell_escape("#{ExecJS.root}/support/which.bat", name)}`
         | 
| 126 | 
            +
                    result.strip.split("\n").first
         | 
| 127 | 
            +
                  end
         | 
| 128 | 
            +
             | 
| 129 | 
            +
                  def which_unix(name)
         | 
| 130 | 
            +
                    if File.executable? cmd
         | 
| 131 | 
            +
                      cmd
         | 
| 132 | 
            +
                    else
         | 
| 133 | 
            +
                      path = ENV['PATH'].split(File::PATH_SEPARATOR).find { |path|
         | 
| 134 | 
            +
                        File.executable? File.join(path, cmd)
         | 
| 135 | 
            +
                      }
         | 
| 136 | 
            +
                      path && File.expand_path(cmd, path)
         | 
| 137 | 
            +
                    end
         | 
| 138 | 
            +
                  end
         | 
| 139 | 
            +
             | 
| 119 140 | 
             
                protected
         | 
| 120 141 | 
             
                  def runner_source
         | 
| 121 142 | 
             
                    @runner_source ||= IO.read(@runner_path)
         | 
| 122 143 | 
             
                  end
         | 
| 123 144 |  | 
| 124 145 | 
             
                  def exec_runtime(filename)
         | 
| 125 | 
            -
                    output = sh("#{shell_escape(*( | 
| 146 | 
            +
                    output = sh("#{shell_escape(*(binary.split(' ') << filename))} 2>&1")
         | 
| 126 147 | 
             
                    if $?.success?
         | 
| 127 148 | 
             
                      output
         | 
| 128 149 | 
             
                    else
         | 
| @@ -142,19 +163,14 @@ module ExecJS | |
| 142 163 | 
             
                  end
         | 
| 143 164 |  | 
| 144 165 | 
             
                  def which(command)
         | 
| 145 | 
            -
                    Array(command). | 
| 166 | 
            +
                    Array(command).find do |name|
         | 
| 146 167 | 
             
                      name, args = name.split(/\s+/, 2)
         | 
| 147 | 
            -
                       | 
| 148 | 
            -
                        `#{shell_escape("#{ExecJS.root}/support/which.bat", name)}`
         | 
| 149 | 
            -
                      else
         | 
| 150 | 
            -
                        `#{shell_escape('command', '-v', name)} 2>/dev/null`
         | 
| 151 | 
            -
                      end
         | 
| 168 | 
            +
                      path = ExecJS.windows? ? which_windows(name) : which_unix(name)
         | 
| 152 169 |  | 
| 153 | 
            -
                       | 
| 154 | 
            -
             | 
| 155 | 
            -
                       | 
| 170 | 
            +
                      next unless path
         | 
| 171 | 
            +
             | 
| 172 | 
            +
                      args ? "#{path} #{args}" : path
         | 
| 156 173 | 
             
                    end
         | 
| 157 | 
            -
                    nil
         | 
| 158 174 | 
             
                  end
         | 
| 159 175 |  | 
| 160 176 | 
             
                  if "".respond_to?(:force_encoding)
         | 
    
        data/lib/execjs/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,13 +1,13 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: execjs
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            -
              hash:  | 
| 4 | 
            +
              hash: 11
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
              segments: 
         | 
| 7 7 | 
             
              - 1
         | 
| 8 8 | 
             
              - 2
         | 
| 9 | 
            -
              -  | 
| 10 | 
            -
              version: 1.2. | 
| 9 | 
            +
              - 10
         | 
| 10 | 
            +
              version: 1.2.10
         | 
| 11 11 | 
             
            platform: ruby
         | 
| 12 12 | 
             
            authors: 
         | 
| 13 13 | 
             
            - Sam Stephenson
         | 
| @@ -16,7 +16,7 @@ autorequire: | |
| 16 16 | 
             
            bindir: bin
         | 
| 17 17 | 
             
            cert_chain: []
         | 
| 18 18 |  | 
| 19 | 
            -
            date: 2011- | 
| 19 | 
            +
            date: 2011-12-05 00:00:00 -06:00
         | 
| 20 20 | 
             
            default_executable: 
         | 
| 21 21 | 
             
            dependencies: 
         | 
| 22 22 | 
             
            - !ruby/object:Gem::Dependency 
         |