Skip to content

Instantly share code, notes, and snippets.

@mj-hd
Created May 19, 2015 08:02
Show Gist options
  • Save mj-hd/5760fa6bf02948c95807 to your computer and use it in GitHub Desktop.
Save mj-hd/5760fa6bf02948c95807 to your computer and use it in GitHub Desktop.
HDLキーワード抽出スクリプト(Ruby)
#!/usr/bin/ruby
#
# 2015/5/19
#
# hdl_keyword_extractor
# by mjhd <mjhd@devlion.net>
#
# 使い方:
# hdl_keyword_extractor.rb <HDLのデータベースファイル>
#
# HDLのデータベースファイルの在り処:
# 一度HDLを起動したのち、<APPDATA>\Hot Soup Processor\hdl_data_********.dbに生成されています。
#
require 'rubygems'
require 'sqlite3'
dbfile = ARGV[0]
puts "#{dbfile}を読み込みます..."
puts
db = SQLite3::Database.new(dbfile)
END {
db.close()
}
puts "展開するモジュール名を以下から選択してください(複数指定可, スペース区切り)"
i = 0
mods = db.execute("SELECT Mod FROM Help GROUP BY Mod;")
mods.each do |row|
puts "#{i}: #{row[0]}"
i += 1
end
mod_spec = STDIN.gets.chop
target_modnum = mod_spec.split(" ")
puts
puts "展開するモジュール名は、以下でよろしいでしょうか(Y/N)"
target_mods = []
target_modnum.each do |target|
target_mods << mods[target.to_i][0]
puts target_mods.last
end
answer = STDIN.gets.chop.capitalize
if answer != "Y" then
exit 1
end
keywords = Hash.new{|hash, key| hash[key] = []}
target_mods.each do |target|
db.execute("SELECT Name, Group3 FROM Help WHERE Mod='#{target}';") do |row|
keywords[row[1]].push(row[0])
end
end
puts "------------結果を出力します-------------"
line = ""
keywords.each do |key, val|
line = key + ": "
val.each do |v|
line += "#{v}|"
end
puts line
end
puts "-----------------------------------------"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment