Guest User

Untitled

a guest
Jun 18th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.78 KB | None | 0 0
  1. #==========================================================
  2. # *** Cache Extension
  3. # par Wawower
  4. # ~~~~~~~~~~~~~~~~~~~~~~
  5. # Systèmatisation de la création de dossiers contenant les ressources graphiques
  6. # et de l'indexation dans le module RPG::Cache de ses dernières via une méthode.
  7. #==========================================================
  8. module RPG; module Cache
  9. # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  10. # * RPG::Cache.add
  11. # directory : le nom du chemin où créer le Dossier
  12. # meth_name : le nom de la méthode de RPG::Cache.
  13. # ----------------------------------------------
  14. # Méthode de creation du dossier et de la methode :
  15. # Possibilité de spécifier ou non, un nom de méthode.
  16. # Si non spécifié, le nom sera crée selon le standard Rmxp :
  17. # Pour un chemin de la forme "Dossier/.../DossierN/Imagefiles"
  18. # la méthode sera "RPG::Cache.imagefile(pict_name,hue=0)" .
  19. # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  20. def self.add(directory_path,meth_name=directory_path.to_methname)
  21. # Création des Dossiers ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  22. if $DEBUG
  23. dirpath = "Graphics/"
  24. directory_path.each('/') { |dirname|
  25. dirpath << dirname
  26. Dir.mkdir(dirpath) rescue nil
  27. }
  28. end
  29. # Création de la Méthode ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  30. metaclass.class_eval {
  31. define_method(meth_name) { |args|
  32. self.load_bitmap("Graphics/#{directory_path}/", *args)
  33. }
  34. }
  35. end
  36. # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  37. # * Alias de la méthode "add" => RPG::Cache << "Path/Directoryfiles"
  38. # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  39. class << self; alias << add; end
  40. # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  41. # * RPG::Cache.metaclass (private)
  42. # ----------------------------------------------
  43. # Méthode privée d'accession à la métaclass
  44. # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  45. def self.metaclass; class << self; return self; end; end
  46. private_class_method(:metaclass)
  47. # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  48. end; end
  49.  
  50. # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  51. # ** String
  52. # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  53. class String
  54. # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  55. # * String#to_methname
  56. # ----------------------------------------------
  57. # Méthode renvoyant a partir du chemin du dossier le nom
  58. # de la méthode de Cache correspondante
  59. # "Dossier1/.../DossierN/Imagefiles" => "imagefile"
  60. # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  61. def to_methname
  62. str = (self[-1] == "s") ? self[0..-2] : self
  63. return str.split('/').last.downcase
  64. end
  65. # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  66. end
Add Comment
Please, Sign In to add comment