2011-12-06 10 views
0

私はJakeの新しい投稿を作成するためのRakefileのタスクを持っています。 (私はOctopressから借りた)。rakeファイルを含むMacアプリケーションでドキュメントを開きます

新しいマークアップファイルを作成し、デフォルトのヘッダー情報を追加してIA Writerで開くようにハックしようとしました。ファイルを作成して情報を追加しますが、ファイルを開くのはファイルではありません。ファイル名変数がシステムコマンドに渡されていないように見えますが、どのように書き込むべきかわかりません。ラインsystem...変更'

# Usage rake new_post['Title of the Post'] 
desc "Beginning a new post in _posts" 
task :new_post, :title do |t, args| 
    args.with_defaults(:title => 'new-post') 
    title = args.title 
    filename = "_posts/#{Time.now.strftime('%Y-%m-%d')}-#{title.to_url}.markdown" 
    open_filename = "#{Time.now.strftime('%Y-%m-%d')}-#{title.to_url}.markdown" 
    if File.exist?(filename) 
    abort("rake aborted!") if ask("#{filename} already exists. Do you want to overwrite?", ['y', 'n']) == 'n' 
    end 
    puts "Creating new post: #{filename}" 
    open(filename, 'w') do |post| 
    post.puts "---" 
    post.puts "layout: post" 
    post.puts "title: \"#{title.gsub(/&/,'&')}\"" 
    post.puts "date: #{Time.now.strftime('%Y-%m-%d %H:%M')}" 
    post.puts "categories: " 
    post.puts "---" 
    end 
    puts "Opening: #{filename}" 
    system('open -a IA\ Writer ~/Dropbox/Archive/jdb/#{filename}') 
end 

答えて

0

"へ:

は、ここでは、コードです。で'ルビーは変数を使用しません、例:

001 > filename = "test" 
=> "test" 
002 > puts '#{filename}' 
=> #{filename} 
003 > puts "#{filename}" 
=> test 
+0

ありがとう!私はそれを捕まえたことはないだろう。変数が渡された後も、 "Writer"というファイルを探していたために失敗しました。だから、私はIA \ Writerを一重引用符で囲む必要がありました。今は完璧に動作します。 –

関連する問題