Module: SvelteOnRails::GemUtils
- Defined in:
- lib/svelte_on_rails/installer/gem_utils.rb
Class Method Summary collapse
Class Method Details
.check_gem_version(gem_name) ⇒ Object
5 6 7 8 9 10 11 12 13 14 |
# File 'lib/svelte_on_rails/installer/gem_utils.rb', line 5 def self.check_gem_version(gem_name) gl = File.read(Rails.root.join('Gemfile.lock')) regex = /(?<=#{Regexp.escape(gem_name)})[<>=\(~0-9\. \),]+/ match = gl.match(regex) if match match.to_s.gsub('(','').gsub(')','').strip end end |
.install_gem(gem_name, group: nil) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/svelte_on_rails/installer/gem_utils.rb', line 16 def self.install_gem(gem_name, group: nil) v = check_gem_version(gem_name) if v puts "Gem #{gem_name} already installed, version: #{v} " else cmd = [ "bundle add #{gem_name}", (group ? "--group=#{group}" : nil) ].compact.join(' ') stdout, stderr, status = Open3.capture3(cmd) if stderr.present? raise stderr else puts "Successfully installed #{gem_name} version #{check_gem_version(gem_name)}" end end end |