Class: Qor::Test::Gemfile
- Inherits:
-
Object
- Object
- Qor::Test::Gemfile
- Defined in:
- lib/qor_test/gemfile.rb
Instance Attribute Summary collapse
-
#options ⇒ Object
Returns the value of attribute options.
Instance Method Summary collapse
- #generate_gemfiles ⇒ Object
- #generate_gems_entry(gems_from_config, gems_from_gemfile) ⇒ Object
- #group_name ⇒ Object
-
#initialize(options = {}) ⇒ Gemfile
constructor
A new instance of Gemfile.
- #ruby_versions ⇒ Object
- #write_gemfile(gems_from_config, gems_from_gemfile, filename) ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ Gemfile
Returns a new instance of Gemfile.
6 7 8 |
# File 'lib/qor_test/gemfile.rb', line 6 def initialize ={} self. = end |
Instance Attribute Details
#options ⇒ Object
Returns the value of attribute options.
4 5 6 |
# File 'lib/qor_test/gemfile.rb', line 4 def @options end |
Instance Method Details
#generate_gemfiles ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/qor_test/gemfile.rb', line 19 def generate_gemfiles gems_set_from_config = Qor::Test::Configuration.gems_set_from_config() gems_hash_from_gemfile = Qor::Test::Configuration.gems_hash_from_gemfile() gemfile_length = [gems_set_from_config.length, 1].max gemfile_dir = File.join(Qor::Test::CLI.temp_directory, Qor::Test::Configuration.configuration_digest()) if File.exist?(gemfile_dir) Dir[File.join(gemfile_dir, '*')].select {|x| x !~ /.lock$/ } else FileUtils.mkdir_p(gemfile_dir) (0...gemfile_length).map do |index| filename = File.join(gemfile_dir, "Gemfile.#{index}") write_gemfile(gems_set_from_config[index] || {}, gems_hash_from_gemfile, filename) end end end |
#generate_gems_entry(gems_from_config, gems_from_gemfile) ⇒ Object
38 39 40 41 42 43 44 |
# File 'lib/qor_test/gemfile.rb', line 38 def generate_gems_entry(gems_from_config, gems_from_gemfile) gem_names = [gems_from_config.keys, gems_from_gemfile.keys].flatten.compact.uniq gem_names.map do |name| gems_from_config[name] || gems_from_gemfile[name] end.compact.map(&:to_s).join("\n") end |
#group_name ⇒ Object
15 16 17 |
# File 'lib/qor_test/gemfile.rb', line 15 def group_name Qor::Test::Configuration.envs()[0] end |
#ruby_versions ⇒ Object
10 11 12 13 |
# File 'lib/qor_test/gemfile.rb', line 10 def ruby_versions versions = Qor::Test::Configuration.ruby_versions() versions.empty? ? [RUBY_VERSION] : versions end |
#write_gemfile(gems_from_config, gems_from_gemfile, filename) ⇒ Object
46 47 48 49 50 51 52 |
# File 'lib/qor_test/gemfile.rb', line 46 def write_gemfile(gems_from_config, gems_from_gemfile, filename) File.open(filename, "w+") do |f| f << Qor::Test::Configuration.combined_sources() f << Qor::Test::Configuration.combined_gemspecs() f << generate_gems_entry(gems_from_config, gems_from_gemfile) end.path end |