Module: Codic

Defined in:
lib/codic.rb,
lib/codic/cli.rb,
lib/codic/version.rb

Defined Under Namespace

Modules: ContentCushion Classes: CLI, CodicError

Constant Summary collapse

URL_ROOT =
"http://codic.jp"
VERSION =
"0.0.3"

Class Method Summary collapse

Class Method Details

.display(result) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/codic.rb', line 56

def display(result)
  case result[:type]
  when "english"
    unless result[:flections] == ""
      puts result[:flections] 
      puts
    end
    result[:words].each do |w|
      puts "#{w[:no]}. #{w[:translated]} [#{w[:class_ja]}]" 
    end
  when "naming"
    result[:words].each do |w|
      puts "#{w[:translated]} [#{w[:class_ja]}]"
      unless w[:description] == ""
        puts "  #{w[:description]}" 
        puts 
      end
    end
  when "suggest"
    result[:suggests].each do |s|
      puts "#{s[:title]} #{s[:description]}"
    end
  else
    raise ArgumentError, "Invalid Type"
  end
end

.search(word) ⇒ Object

Raises:

  • (ArgumentError)


43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/codic.rb', line 43

def search(word)
  raise ArgumentError, "word is empty" if word.gsub(/\s/, "") == ""
  @doc = Nokogiri::HTML(open(URI.encode("#{Codic::URL_ROOT}/search?q=#{word}")))
  raise CodicError, "Not Found" unless found?

  case entry_type 
  when "english"
    analyse_english
  when "naming"
    analyse_naming
  end
end

.suggest(word, dic) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/codic.rb', line 24

def suggest(word, dic)
  res =  JSON.parse(open(URI.encode("#{Codic::URL_ROOT}/suggest?q=#{word}&dic=#{dic}"),
                    "Accept" => "application/json, text/javascript, */*; q=0.01",
                    "X-Requested-With" => "XMLHttpRequest").read)
  res["titles"].map! { |t| t.gsub(/\<\/?mark\>/, '') }
  suggests = res["titles"].zip(res["descriptions"], res["urls"]).map do |t, d, u|
    {
      title: t,
      description: d,
      url: u
    }
  end

  {
    type: "suggest",
    suggests: suggests
  }
end