Class: Gem::Install
Instance Method Summary collapse
- #curl(url) ⇒ Object
- #full_name ⇒ Object
- #gem_home ⇒ Object
- #gems_dir ⇒ Object
-
#initialize(name, version) ⇒ Install
constructor
A new instance of Install.
- #latest_version(name) ⇒ Object
- #perform ⇒ Object
- #specs_dir ⇒ Object
- #version ⇒ Object
Constructor Details
#initialize(name, version) ⇒ Install
Returns a new instance of Install
5 6 7 8 |
# File 'opal/stdlib/nodejs/rubygems.rb', line 5 def initialize(name, version) @name = name @version = version end |
Instance Method Details
#curl(url) ⇒ Object
49 50 51 |
# File 'opal/stdlib/nodejs/rubygems.rb', line 49 def curl url "curl -L #{url}" end |
#full_name ⇒ Object
20 21 22 |
# File 'opal/stdlib/nodejs/rubygems.rb', line 20 def full_name "#{name}-#{version}" end |
#gem_home ⇒ Object
24 25 26 |
# File 'opal/stdlib/nodejs/rubygems.rb', line 24 def gem_home ENV['HOME']+'/.opal-node/opal-gems/#{RUBY_ENGINE_VERSION}' end |
#gems_dir ⇒ Object
28 29 30 |
# File 'opal/stdlib/nodejs/rubygems.rb', line 28 def gems_dir File.join(gem_home, :gems) end |
#latest_version(name) ⇒ Object
14 15 16 17 18 |
# File 'opal/stdlib/nodejs/rubygems.rb', line 14 def latest_version(name) command = curl("https://rubygems.org/api/v1/versions/#{name}.json") versions = JSON.parse system(command) versions.first['number'] end |
#perform ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'opal/stdlib/nodejs/rubygems.rb', line 36 def perform gem_dir = File.join(gems_dir, full_name) spec_dir = File.join(specs_dir, full_name+'.yml') system "mkdir -p #{gem_dir} #{spec_dir}" Dir.chdir gem_dir do system curl("https://rubygems.org/downloads/#{name}-#{version}.gem") + '| tar -xv' system "gunzip metadata.gz --stdout > #{specs_dir}/#{full_name}.yml" system "gunzip data.tar.gz" system "tar -xvf data.tar" end end |
#specs_dir ⇒ Object
32 33 34 |
# File 'opal/stdlib/nodejs/rubygems.rb', line 32 def specs_dir File.join(gem_home, :specs) end |
#version ⇒ Object
10 11 12 |
# File 'opal/stdlib/nodejs/rubygems.rb', line 10 def version @version ||= latest_version(name) end |