|
3 | 3 | module Bundler |
4 | 4 | module RubyDsl |
5 | 5 | def ruby(*ruby_version) |
6 | | - options = ruby_version.last.is_a?(Hash) ? ruby_version.pop : {} |
| 6 | + options = ruby_version.pop if ruby_version.last.is_a?(Hash) |
7 | 7 | ruby_version.flatten! |
8 | 8 |
|
9 | | - raise GemfileError, "Please define :engine_version" if options[:engine] && options[:engine_version].nil? |
10 | | - raise GemfileError, "Please define :engine" if options[:engine_version] && options[:engine].nil? |
| 9 | + if options |
| 10 | + patchlevel = options[:patchlevel] |
| 11 | + engine = options[:engine] |
| 12 | + engine_version = options[:engine_version] |
11 | 13 |
|
12 | | - if options[:file] |
13 | | - raise GemfileError, "Do not pass version argument when using :file option" unless ruby_version.empty? |
14 | | - ruby_version << normalize_ruby_file(options[:file]) |
15 | | - end |
| 14 | + raise GemfileError, "Please define :engine_version" if engine && engine_version.nil? |
| 15 | + raise GemfileError, "Please define :engine" if engine_version && engine.nil? |
| 16 | + |
| 17 | + if options[:file] |
| 18 | + raise GemfileError, "Do not pass version argument when using :file option" unless ruby_version.empty? |
| 19 | + ruby_version << normalize_ruby_file(options[:file]) |
| 20 | + end |
16 | 21 |
|
17 | | - if options[:engine] == "ruby" && options[:engine_version] && |
18 | | - ruby_version != Array(options[:engine_version]) |
19 | | - raise GemfileEvalError, "ruby_version must match the :engine_version for MRI" |
| 22 | + if engine == "ruby" && engine_version && ruby_version != Array(engine_version) |
| 23 | + raise GemfileEvalError, "ruby_version must match the :engine_version for MRI" |
| 24 | + end |
20 | 25 | end |
21 | | - @ruby_version = RubyVersion.new(ruby_version, options[:patchlevel], options[:engine], options[:engine_version]) |
| 26 | + |
| 27 | + @ruby_version = RubyVersion.new(ruby_version, patchlevel, engine, engine_version) |
22 | 28 | end |
23 | 29 |
|
24 | 30 | # Support the various file formats found in .ruby-version files. |
|
0 commit comments