Class: Appraisal::Appraisal
- Inherits:
-
Object
- Object
- Appraisal::Appraisal
- Defined in:
- lib/appraisal/appraisal.rb
Overview
Represents one appraisal and its dependencies
Constant Summary collapse
- DEFAULT_INSTALL_OPTIONS =
{ "jobs" => 1 }.freeze
Instance Attribute Summary collapse
-
#gemfile ⇒ Object
readonly
Returns the value of attribute gemfile.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Instance Method Summary collapse
- #gem(*args) ⇒ Object
- #gemfile_path ⇒ Object
- #gemspec(options = {}) ⇒ Object
- #git(*args, &block) ⇒ Object
- #git_source(*args, &block) ⇒ Object
- #group(*args, &block) ⇒ Object
-
#initialize(name, source_gemfile) ⇒ Appraisal
constructor
A new instance of Appraisal.
- #install(options = {}) ⇒ Object
- #install_if(*args, &block) ⇒ Object
- #path(*args, &block) ⇒ Object
- #platforms(*args, &block) ⇒ Object
- #relative_gemfile_path ⇒ Object
- #relativize ⇒ Object
- #remove_gem(*args) ⇒ Object
- #ruby(*args) ⇒ Object
- #source(*args, &block) ⇒ Object
- #update(gems = []) ⇒ Object
- #write_gemfile ⇒ Object
Constructor Details
#initialize(name, source_gemfile) ⇒ Appraisal
Returns a new instance of Appraisal.
17 18 19 20 |
# File 'lib/appraisal/appraisal.rb', line 17 def initialize(name, source_gemfile) @name = name @gemfile = source_gemfile.dup end |
Instance Attribute Details
#gemfile ⇒ Object (readonly)
Returns the value of attribute gemfile.
15 16 17 |
# File 'lib/appraisal/appraisal.rb', line 15 def gemfile @gemfile end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
15 16 17 |
# File 'lib/appraisal/appraisal.rb', line 15 def name @name end |
Instance Method Details
#gem(*args) ⇒ Object
22 23 24 |
# File 'lib/appraisal/appraisal.rb', line 22 def gem(*args) gemfile.gem(*args) end |
#gemfile_path ⇒ Object
95 96 97 98 99 100 101 |
# File 'lib/appraisal/appraisal.rb', line 95 def gemfile_path unless gemfile_root.exist? gemfile_root.mkdir end gemfile_root.join(gemfile_name).to_s end |
#gemspec(options = {}) ⇒ Object
58 59 60 |
# File 'lib/appraisal/appraisal.rb', line 58 def gemspec( = {}) gemfile.gemspec() end |
#git(*args, &block) ⇒ Object
38 39 40 |
# File 'lib/appraisal/appraisal.rb', line 38 def git(*args, &block) gemfile.git(*args, &block) end |
#git_source(*args, &block) ⇒ Object
62 63 64 |
# File 'lib/appraisal/appraisal.rb', line 62 def git_source(*args, &block) gemfile.git_source(*args, &block) end |
#group(*args, &block) ⇒ Object
46 47 48 |
# File 'lib/appraisal/appraisal.rb', line 46 def group(*args, &block) gemfile.group(*args, &block) end |
#install(options = {}) ⇒ Object
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/appraisal/appraisal.rb', line 74 def install( = {}) commands = [install_command().join(" ")] if ["without"].nil? || ["without"].empty? commands.unshift(check_command.join(" ")) end command = commands.join(" || ") if Bundler.settings[:path] env = { "BUNDLE_DISABLE_SHARED_GEMS" => "1" } Command.new(command, env: env).run else Command.new(command).run end end |
#install_if(*args, &block) ⇒ Object
50 51 52 |
# File 'lib/appraisal/appraisal.rb', line 50 def install_if(*args, &block) gemfile.install_if(*args, &block) end |
#path(*args, &block) ⇒ Object
42 43 44 |
# File 'lib/appraisal/appraisal.rb', line 42 def path(*args, &block) gemfile.path(*args, &block) end |
#platforms(*args, &block) ⇒ Object
54 55 56 |
# File 'lib/appraisal/appraisal.rb', line 54 def platforms(*args, &block) gemfile.platforms(*args, &block) end |
#relative_gemfile_path ⇒ Object
103 104 105 |
# File 'lib/appraisal/appraisal.rb', line 103 def relative_gemfile_path File.join("gemfiles", gemfile_name) end |
#relativize ⇒ Object
107 108 109 110 111 112 113 114 115 116 117 118 |
# File 'lib/appraisal/appraisal.rb', line 107 def relativize current_directory = Pathname.new(Dir.pwd) relative_path = current_directory.relative_path_from(gemfile_root).cleanpath lockfile_content = File.read(lockfile_path) File.open(lockfile_path, "w") do |file| file.write lockfile_content.gsub( / #{current_directory}/, " #{relative_path}" ) end end |
#remove_gem(*args) ⇒ Object
26 27 28 |
# File 'lib/appraisal/appraisal.rb', line 26 def remove_gem(*args) gemfile.remove_gem(*args) end |
#ruby(*args) ⇒ Object
34 35 36 |
# File 'lib/appraisal/appraisal.rb', line 34 def ruby(*args) gemfile.ruby(*args) end |
#source(*args, &block) ⇒ Object
30 31 32 |
# File 'lib/appraisal/appraisal.rb', line 30 def source(*args, &block) gemfile.source(*args, &block) end |