Class: Node::Compiler::Npm
- Inherits:
-
Object
- Object
- Node::Compiler::Npm
- Defined in:
- lib/node/compiler/npm.rb
Instance Method Summary collapse
- #get_entrance(bin_name) ⇒ Object
-
#initialize(module_name, module_version, tmpdir) ⇒ Npm
constructor
A new instance of Npm.
Constructor Details
#initialize(module_name, module_version, tmpdir) ⇒ Npm
Returns a new instance of Npm.
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/node/compiler/npm.rb', line 15 def initialize(module_name, module_version, tmpdir) @module_name = module_name @module_version = module_version @work_dir = File.("#{@module_name}-#{@module_version}", tmpdir) FileUtils.mkdir_p(@work_dir) @package_path = File.join(@work_dir, "node_modules/#{@module_name}/package.json") Utils.chdir(@work_dir) do File.open("package.json", "w") do |f| package = %Q({"dependencies": {"#{@module_name}": "#{@module_version}"}}) f.puts package end Utils.run("npm -v") Utils.run("npm install") end end |
Instance Method Details
#get_entrance(bin_name) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/node/compiler/npm.rb', line 31 def get_entrance(bin_name) @bin_name = bin_name unless File.exist?(@package_path) raise Error, "No package.json exist at #{@package_path}." end @package_json = JSON.parse File.read @package_path @binaries = @package_json['bin'] if @binaries STDERR.puts "Detected binaries: #{@binaries}" else raise Error, "No binaries detected inside #{@package_path}." end if @binaries[@bin_name] STDERR.puts "Using #{@bin_name} at #{@binaries[@bin_name]}" else raise Error, "No such binary: #{@bin_name}" end return File.("node_modules/#{@module_name}/#{@binaries[@bin_name]}", @work_dir) end |