Class: RubyEnv

Inherits:
Object
  • Object
show all
Defined in:
lib/shared/adapters/helpers/ruby_env.rb

Class Method Summary collapse

Class Method Details

.bundler?(project_path) ⇒ Boolean

Returns:

  • (Boolean)


2
3
4
# File 'lib/shared/adapters/helpers/ruby_env.rb', line 2

def self.bundler?(project_path)
  gem_exists?("bundler") && File.exists?("#{project_path}/Gemfile")
end

.gem_exists?(gem) ⇒ Boolean

Returns:

  • (Boolean)


6
7
8
9
10
11
12
13
14
15
# File 'lib/shared/adapters/helpers/ruby_env.rb', line 6

def self.gem_exists?(gem)
  if Gem::Specification.respond_to?(:find_by_name)
    Gem::Specification.find_by_name(gem)
  else
    # older depricated method
    Gem.available?(gem)
  end
rescue Gem::LoadError
  false
end

.ruby_command(project_path, opts = {}) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/shared/adapters/helpers/ruby_env.rb', line 17

def self.ruby_command(project_path, opts = {})
  ruby_interpreter = opts[:ruby_interpreter] || "ruby"

  if opts[:script] && File.exists?("#{project_path}/#{opts[:script]}")
    command = opts[:script]
  elsif opts[:bin]
    command = opts[:bin]
  else
    command = nil
  end

  if bundler?(project_path)
    "#{rvm_prefix(project_path)} #{ruby_interpreter} -S bundle exec #{command}".strip
  else
    "#{rvm_prefix(project_path)} #{ruby_interpreter} -S #{command}".strip
  end
end

.rvm?Boolean

Returns:

  • (Boolean)


44
45
46
# File 'lib/shared/adapters/helpers/ruby_env.rb', line 44

def self.rvm?
  system("rvm info") != nil
end

.rvm_prefix(project_path) ⇒ Object



35
36
37
38
39
40
41
42
# File 'lib/shared/adapters/helpers/ruby_env.rb', line 35

def self.rvm_prefix(project_path)
  if rvm?
    rvmrc_path = File.join project_path, ".rvmrc"
    if File.exists?(rvmrc_path)
      File.read(rvmrc_path).to_s.strip + " exec"
    end
  end
end