Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #==========================================================
- # *** Cache Extension
- # par Wawower
- # ~~~~~~~~~~~~~~~~~~~~~~
- # Systèmatisation de la création de dossiers contenant les ressources graphiques
- # et de l'indexation dans le module RPG::Cache de ses dernières via une méthode.
- #==========================================================
- module RPG; module Cache
- # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- # * RPG::Cache.add
- # directory : le nom du chemin où créer le Dossier
- # meth_name : le nom de la méthode de RPG::Cache.
- # ----------------------------------------------
- # Méthode de creation du dossier et de la methode :
- # Possibilité de spécifier ou non, un nom de méthode.
- # Si non spécifié, le nom sera crée selon le standard Rmxp :
- # Pour un chemin de la forme "Dossier/.../DossierN/Imagefiles"
- # la méthode sera "RPG::Cache.imagefile(pict_name,hue=0)" .
- # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- def self.add(directory_path,meth_name=directory_path.to_methname)
- # Création des Dossiers ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- if $DEBUG
- dirpath = "Graphics/"
- directory_path.each('/') { |dirname|
- dirpath << dirname
- Dir.mkdir(dirpath) rescue nil
- }
- end
- # Création de la Méthode ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- metaclass.class_eval {
- define_method(meth_name) { |args|
- self.load_bitmap("Graphics/#{directory_path}/", *args)
- }
- }
- end
- # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- # * Alias de la méthode "add" => RPG::Cache << "Path/Directoryfiles"
- # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- class << self; alias << add; end
- # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- # * RPG::Cache.metaclass (private)
- # ----------------------------------------------
- # Méthode privée d'accession à la métaclass
- # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- def self.metaclass; class << self; return self; end; end
- private_class_method(:metaclass)
- # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- end; end
- # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- # ** String
- # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- class String
- # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- # * String#to_methname
- # ----------------------------------------------
- # Méthode renvoyant a partir du chemin du dossier le nom
- # de la méthode de Cache correspondante
- # "Dossier1/.../DossierN/Imagefiles" => "imagefile"
- # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- def to_methname
- str = (self[-1] == "s") ? self[0..-2] : self
- return str.split('/').last.downcase
- end
- # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- end
Add Comment
Please, Sign In to add comment