class BatchRequire

Public Class Methods

new(*gems) click to toggle source
# File lib/batch-require.rb, line 5
def initialize *gems

  gem_list_local , gem_list_server = `gem list -l`.split("\n") , internet_connection? ? `gem list -r`.split("\n") : []
  gem_list_local , gem_list_server = require_list_modify(gem_list_local) , require_list_modify(gem_list_server)
  gem_list_inbuilt = require_inbuilt_modify(Dir.entries(inbuilt_path()).keep_if { |inbuilt| (inbuilt.end_with? ".rb")})
  all_gems = (gem_list_local + gem_list_server + gem_list_inbuilt).uniq

  gems.each do |each_gem|
    if all_gems.include? each_gem
      if gem_list_local.include? each_gem
        require "#{each_gem}"
      elsif gem_list_inbuilt.include? each_gem
        require "#{each_gem}"
      elsif gem_list_server.include? each_gem 
        if internet_connection?
          `gem install #{each_gem}`
          require "#{each_gem}"
        else
          puts "#{each_gem} gem couldn't be downloaded due to no internet connection"
        end        
      end
    else
      puts "Invalid gem : #{each_gem}."
    end  
  end

end