From 1715bf35d38d545907579ffe31a1bd27250f820d Mon Sep 17 00:00:00 2001
From: Lucas Nussbaum <lucas.nussbaum@loria.fr>
Date: Thu, 10 May 2018 18:59:33 +0200
Subject: [PATCH] Reorganize code to avoid duplicate requires

---
 generators/wiki/cpu_parameters.rb           | 5 ++---
 generators/wiki/disk_reservation.rb         | 5 ++---
 generators/wiki/hardware.rb                 | 6 ++----
 generators/wiki/{ => lib}/mw_utils.rb       | 7 +++++--
 generators/wiki/{ => lib}/wiki_generator.rb | 7 +++++--
 generators/wiki/oar_properties.rb           | 6 ++----
 generators/wiki/site_hardware.rb            | 9 ++-------
 generators/wiki/site_hardware_data.rb       | 6 ------
 generators/wiki/site_network.rb             | 7 ++-----
 9 files changed, 22 insertions(+), 36 deletions(-)
 rename generators/wiki/{ => lib}/mw_utils.rb (96%)
 rename generators/wiki/{ => lib}/wiki_generator.rb (96%)
 delete mode 100644 generators/wiki/site_hardware_data.rb

diff --git a/generators/wiki/cpu_parameters.rb b/generators/wiki/cpu_parameters.rb
index 88f18d7944b..e7ebc7c69cc 100644
--- a/generators/wiki/cpu_parameters.rb
+++ b/generators/wiki/cpu_parameters.rb
@@ -1,6 +1,5 @@
-require_relative '../lib/input_loader'
-require_relative './wiki_generator'
-require_relative './mw_utils'
+$LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), 'lib')))
+require 'wiki_generator'
 
 class CPUParametersGenerator < WikiGenerator
 
diff --git a/generators/wiki/disk_reservation.rb b/generators/wiki/disk_reservation.rb
index 1b781d9445f..cb9b409cbda 100644
--- a/generators/wiki/disk_reservation.rb
+++ b/generators/wiki/disk_reservation.rb
@@ -1,7 +1,6 @@
 # coding: utf-8
-require_relative '../lib/input_loader'
-require_relative './wiki_generator'
-require_relative './mw_utils'
+$LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), 'lib')))
+require 'wiki_generator'
 
 class DiskReservationGenerator < WikiGenerator
 
diff --git a/generators/wiki/hardware.rb b/generators/wiki/hardware.rb
index 2d43ecc6c6a..0b9484786ac 100644
--- a/generators/wiki/hardware.rb
+++ b/generators/wiki/hardware.rb
@@ -1,8 +1,6 @@
 # coding: utf-8
-require 'pp'
-require_relative '../lib/input_loader'
-require_relative './wiki_generator'
-require_relative './mw_utils'
+$LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), 'lib')))
+require 'wiki_generator'
 require_relative './site_hardware.rb'
 
 class G5KHardwareGenerator < WikiGenerator
diff --git a/generators/wiki/mw_utils.rb b/generators/wiki/lib/mw_utils.rb
similarity index 96%
rename from generators/wiki/mw_utils.rb
rename to generators/wiki/lib/mw_utils.rb
index c4743d015d0..b1722f36dca 100644
--- a/generators/wiki/mw_utils.rb
+++ b/generators/wiki/lib/mw_utils.rb
@@ -5,7 +5,10 @@ require 'net/http'
 require 'net/https'
 require 'mediawiki_api'
 
-require_relative "../lib/input_loader"
+# also add generators/lib to load path
+$LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), '../../lib')))
+require 'input_loader'
+
 
 #Adding method to mediawiki_api client
 module MediawikiApi
@@ -109,7 +112,7 @@ module G5K
   @@global_hash = nil
   def self.get_global_hash
     if @@global_hash.nil?
-      @@global_hash = load_yaml_file_hierarchy(File.expand_path("../../input/grid5000/", File.dirname(__FILE__)))
+      @@global_hash = load_yaml_file_hierarchy(File.expand_path("../../../input/grid5000/", File.dirname(__FILE__)))
     end
     # return a deep copy of global_hash
     return Marshal.load(Marshal.dump(@@global_hash))
diff --git a/generators/wiki/wiki_generator.rb b/generators/wiki/lib/wiki_generator.rb
similarity index 96%
rename from generators/wiki/wiki_generator.rb
rename to generators/wiki/lib/wiki_generator.rb
index c3fb47e2669..ebd5cbd4af4 100644
--- a/generators/wiki/wiki_generator.rb
+++ b/generators/wiki/lib/wiki_generator.rb
@@ -1,8 +1,11 @@
+# also add generators/lib to load path
+$LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), '../../lib')))
+
+require 'input_loader'
 require "optparse"
 require "mediawiki_api"
 require "diffy"
-
-require_relative "./mw_utils"
+require "mw_utils"
 
 class WikiGenerator
 
diff --git a/generators/wiki/oar_properties.rb b/generators/wiki/oar_properties.rb
index e99a8704cf6..be0b19cfccc 100644
--- a/generators/wiki/oar_properties.rb
+++ b/generators/wiki/oar_properties.rb
@@ -1,10 +1,8 @@
 # coding: utf-8
-require 'pp'
+$LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), 'lib')))
+require 'wiki_generator'
 
-require_relative '../lib/input_loader'
 require_relative '../oar-properties/lib/lib-oar-properties'
-require_relative './wiki_generator'
-require_relative './mw_utils'
 
 class OarPropertiesGenerator < WikiGenerator
 
diff --git a/generators/wiki/site_hardware.rb b/generators/wiki/site_hardware.rb
index 54e8efa6295..d63be846b7d 100644
--- a/generators/wiki/site_hardware.rb
+++ b/generators/wiki/site_hardware.rb
@@ -1,11 +1,6 @@
 # coding: utf-8
-require 'optparse'
-require 'date'
-require 'pp'
-
-require_relative '../lib/input_loader'
-require_relative './wiki_generator'
-require_relative './mw_utils'
+$LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), 'lib')))
+require 'wiki_generator'
 
 class SiteHardwareGenerator < WikiGenerator
 
diff --git a/generators/wiki/site_hardware_data.rb b/generators/wiki/site_hardware_data.rb
deleted file mode 100644
index b62d23c25f0..00000000000
--- a/generators/wiki/site_hardware_data.rb
+++ /dev/null
@@ -1,6 +0,0 @@
-# coding: utf-8
-require 'pp'
-require_relative './site_hardware.rb'
-require_relative './mw_utils.rb'
-
-pp get_hardware(G5K::SITES)
diff --git a/generators/wiki/site_network.rb b/generators/wiki/site_network.rb
index 3ccf2355bea..38f3f3df412 100644
--- a/generators/wiki/site_network.rb
+++ b/generators/wiki/site_network.rb
@@ -1,10 +1,7 @@
 # coding: utf-8
-require 'optparse'
-require 'date'
+$LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), 'lib')))
+require 'wiki_generator'
 
-require_relative '../lib/input_loader'
-require_relative './wiki_generator'
-require_relative './mw_utils'
 require_relative '../input-validators/check-network-description'
 
 # This class generates the network description of each site, in .dot
-- 
GitLab