Module: Dezo

Defined in:
lib/dezo.rb,
lib/dezo/version.rb

Defined Under Namespace

Classes: Error

Constant Summary collapse

GET_ID_ENDPOINT =
"http://public.dejizo.jp/NetDicV09.asmx/SearchDicItemLite"
GET_ITEM_ENDPOINT =
"http://public.dejizo.jp/NetDicV09.asmx/GetDicItemLite"
VERSION =
"0.1.3"

Class Method Summary collapse

Class Method Details

.search(word) ⇒ Object



13
14
15
16
17
# File 'lib/dezo.rb', line 13

def search(word)
  is_japanese = word =~ /(?:\p{Hiragana}|\p{Katakana}|[一-龠々])/
  dic_type = is_japanese ? "EdictJE" : "EJdict"
  search_service(dic_type, word)
end

.search_service(dic_type, word) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/dezo.rb', line 19

def search_service(dic_type, word)
  id_url = GET_ID_ENDPOINT + id_params(dic_type, word)
  id_uri = URI.parse(URI.encode(id_url))
  id_response = Net::HTTP.get_response(id_uri)
  item_id = id_response.body.match(/<ItemID>(.+)<\/ItemID>/)[1] rescue return

  item_url = GET_ITEM_ENDPOINT + item_params(dic_type, item_id)
  item_uri = URI.parse(URI.encode(item_url))
  item_response = Net::HTTP.get_response(item_uri)

  words = CGI.unescape(item_response.body).match(/<div>(.+)<\/div>/)[1] rescue return

  list = words.tr("0-9A-Za-z", "0-9A-Za-z").split("\t")
  puts list.map{|item| "- #{item}"}
  puts ""
  return list
end