Class: Def::Dictionary
- Inherits:
-
Object
- Object
- Def::Dictionary
- Defined in:
- lib/def.rb
Constant Summary collapse
- STORAGE =
"#{ENV['HOME']}/.defs"
Instance Method Summary collapse
- #clear ⇒ Object
- #define(word) ⇒ Object
- #get_from_history(word) ⇒ Object
- #highlight_word(word, definition) ⇒ Object
- #history ⇒ Object
-
#initialize ⇒ Dictionary
constructor
A new instance of Dictionary.
- #save_to_history(word, definition) ⇒ Object
- #setup_db ⇒ Object
Constructor Details
#initialize ⇒ Dictionary
Returns a new instance of Dictionary.
7 8 9 10 |
# File 'lib/def.rb', line 7 def initialize @db = SQLite3::Database.new(STORAGE) setup_db end |
Instance Method Details
#clear ⇒ Object
38 39 40 |
# File 'lib/def.rb', line 38 def clear @db.query('DROP TABLE d') end |
#define(word) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/def.rb', line 12 def define(word) definition = get_from_history(word) if definition return highlight_word(word, definition) end definition = `curl -s dict://dict.org/d:#{word}`.split("\n") definition = definition.slice(4, definition.size-6) if definition.nil? "No definition found for \033[0;32m#{word}\033[0m" else definition = definition.join("\n") save_to_history(word, definition) highlight_word(word, definition) end end |
#get_from_history(word) ⇒ Object
46 47 48 |
# File 'lib/def.rb', line 46 def get_from_history(word) @db.get_first_value("SELECT d FROM d WHERE w = ?", word) end |
#highlight_word(word, definition) ⇒ Object
42 43 44 |
# File 'lib/def.rb', line 42 def highlight_word(word, definition) definition.gsub(/(#{word})/i, "\033[0;32m\\1\033[0m") end |
#history ⇒ Object
30 31 32 33 34 35 36 |
# File 'lib/def.rb', line 30 def history ret = '' @db.query('SELECT w FROM d').each do |w| ret += w[0].to_s + "\n" end ret end |
#save_to_history(word, definition) ⇒ Object
50 51 52 |
# File 'lib/def.rb', line 50 def save_to_history(word, definition) @db.execute('INSERT INTO d (w, d) VALUES (?, ?)', word, definition) end |
#setup_db ⇒ Object
54 55 56 |
# File 'lib/def.rb', line 54 def setup_db @db.query('CREATE TABLE IF NOT EXISTS d(w TEXT PRIMARY KEY, d TEXT NOT NULL);') end |