J'ai le fichier de coupe suivant pour créer une version statique de mon application sinatra, volé http://github.com/semanticart/stuff-site/blob/master/Rakefilecomment stocker le nom des fichiers imbriqués dans une variable et une boucle à travers eux en râteau
class View
attr_reader :permalink
def initialize(path)
filename = File.basename(path)
@permalink = filename[0..-6]
end
end
view_paths = Dir.glob(File.join(File.dirname(__FILE__), 'views/pages', '*.haml'))
ALL_VIEWS = view_paths.map {|path| View.new(path) }
task :build do
def dump_request_to_file url, file
Dir.mkdir(File.dirname(file)) unless File.directory?(File.dirname(file))
File.open(file, 'w'){|f| f.print @request.get(url).body}
end
static_dir = File.join(File.dirname(__FILE__), 'public')
require 'sinatra'
require 'c4eo'
@request = Rack::MockRequest.new(Sinatra::Application)
ALL_VIEWS.each do |view|
puts view
dump_request_to_file("/#{view.permalink}", File.join(static_dir, view.permalink+'.html'))
end
end
ALL_VIEWS
est maintenant un tableau contenant tous les fichiers Haml à la racine de mon répertoire 'views/pages'.
Comment puis-je modifier ALL_VIEWS
et la méthode dump_request_to_file
pour parcourir tous les sous-répertoires de mon répertoire views/pages?
Ma vues ressemble un peu à ceci: http://i45.tinypic.com/167unpw.gif
Si cela rend la vie beaucoup plus facile, je pouvais avoir tous mes fichiers nommés index.haml, répertoires à l'intérieur.
Merci
Merci pour cela, des idées comment je pourrais produire la partie relative du lien? –
Ajouté un exemple de la façon d'adresser le chemin relatif –
Merci d'avoir pris le temps, c'est un excellent ajout. –