jumping_words 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.gitignore ADDED
@@ -0,0 +1,5 @@
1
+ *.swp
2
+ *.gem
3
+ .bundle
4
+ Gemfile.lock
5
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in jwords.gemspec
4
+ gemspec
data/README.rdoc ADDED
@@ -0,0 +1,30 @@
1
+ = Jumping Words
2
+ Программа для Ubuntu произносит и выводит в поп-ап окне слово(фразу), а затем переводимое слово(фразу).
3
+
4
+ == Зависимости
5
+ sudo apt-get install libnotify-bin
6
+
7
+ == Дейсвия
8
+ Запуск
9
+ ./word -s
10
+
11
+ Просмотр списка слов
12
+ ./word -l
13
+
14
+ 1 to write: писать
15
+ 2 root: корень
16
+ 3 list: список
17
+ ...
18
+
19
+ Добавление слов в базу
20
+ ./word -a root: корень
21
+ ./word -a to game: играть
22
+
23
+ Удаление слова из базы(указывается индекс слова)
24
+ ./word -d 1
25
+ ./word -d 1 2
26
+
27
+ == Установка
28
+
29
+ git clone git://github.com/devmen/jumping_words.git
30
+
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
data/bin/jword ADDED
@@ -0,0 +1,58 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: utf-8
3
+ require 'optparse'
4
+ require 'pp'
5
+
6
+ $:.push File.expand_path("../../lib", __FILE__)
7
+ require 'jumping_words'
8
+
9
+ options = {}
10
+ optparse = OptionParser.new do|opts|
11
+
12
+ #The command addes a word
13
+ opts.on( '-a', '--add', 'Add the word' ) do
14
+ if ARGV.empty? or ARGV.size < 2
15
+ puts 'You mast set 2 words! Firs is word, second is translate. Like this: "./word -a to run: бежать"'
16
+ exit
17
+ else
18
+ db = DbWords.new(ARGV)
19
+ db.add
20
+ exit
21
+ end
22
+ end
23
+
24
+ #The command deletes a word
25
+ opts.on( '-d', '--destroy', 'Delete the word' ) do
26
+ if ARGV.empty?
27
+ puts 'You mast set number of word!'
28
+ exit
29
+ else
30
+ db = DbWords.new(ARGV)
31
+ db.destroy
32
+ exit
33
+ end
34
+ end
35
+
36
+ #The list of words
37
+ opts.on( '-l', '--list', 'List of words' ) do
38
+ db = DbWords.new
39
+ db.list
40
+ exit
41
+ end
42
+
43
+ #run the application
44
+ opts.on( '-s', '--start', 'Start of app' ) do
45
+ db = DbWords.new
46
+ app = SayWords.new(db.collection, :show_message => SHOW_MESSAGE, :space_words => SPACE_WORDS, :space_interation => SPACE_INTERATION)
47
+
48
+ begin
49
+ app.run
50
+ rescue Interrupt
51
+ puts "Exiting..."
52
+ end
53
+ end
54
+
55
+ end
56
+
57
+ optparse.parse!
58
+
data/config.rb ADDED
@@ -0,0 +1,8 @@
1
+ # Database name
2
+ DATABASE = "jumping_words"
3
+ # space between word and translate
4
+ SPACE_WORDS = 3
5
+ # space iteration
6
+ SPACE_INTERATION = 20
7
+ #show message box true or false
8
+ SHOW_MESSAGE = true
@@ -0,0 +1,3 @@
1
+ skimpy,"скудный, экономный, короткий, скупой"
2
+ overview,"обзор, обозрение"
3
+ straight,прямой
data/jwords.gemspec ADDED
@@ -0,0 +1,24 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "jwords/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "jumping_words"
7
+ s.version = Jwords::VERSION
8
+ s.authors = ["Alex Dmitriev"]
9
+ s.email = ["alex@devmen.com"]
10
+ s.homepage = ""
11
+ s.summary = %q{Jumping Words is gem for learning new words foreign languages}
12
+ s.description = %q{Jumping Words is gem for learning new words foreign languages, only ubuntu}
13
+
14
+ s.rubyforge_project = "jumping_words"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ # specify any dependencies here; for example:
22
+ # s.add_development_dependency "rspec"
23
+ # s.add_runtime_dependency "rest-client"
24
+ end
@@ -0,0 +1,5 @@
1
+ require File.dirname(__FILE__) + "/jwords/version"
2
+ require File.dirname(__FILE__) + '/jwords/db_words'
3
+ require File.dirname(__FILE__) + '/jwords/say_words'
4
+ require File.dirname(__FILE__) + '/../config'
5
+
@@ -0,0 +1,81 @@
1
+ # encoding: utf-8
2
+
3
+ require 'csv'
4
+ class DbWords
5
+ attr_reader :words
6
+
7
+ def initialize(argv=nil)
8
+ @argv = argv
9
+ @words = Array.new
10
+
11
+ @file = File.dirname(__FILE__) + "/../../db/" + DATABASE + ".csv"
12
+ end
13
+
14
+ #collecion of words
15
+ def collection
16
+ col = CSV.read(@file)
17
+ col
18
+ end
19
+
20
+ #adding word in db
21
+ def add
22
+ split
23
+ if double?
24
+ puts "You have '#{@words[0]}' in database"
25
+ exit
26
+ end
27
+
28
+ CSV.open(@file, "a") do |csv|
29
+ csv << [@words[0], @words[1]]
30
+ end
31
+ puts "Word is added"
32
+ end
33
+
34
+ #Destroy a word from db file
35
+ def destroy
36
+ list_w = collection
37
+ @argv.map(&:to_i).each do |i|
38
+ list_w.delete_at(i-1)
39
+ end
40
+
41
+ CSV.open(@file, "w") do |csv|
42
+ list_w.each do |row|
43
+ csv << row
44
+ end
45
+ end
46
+
47
+ puts @argv.join(" ") + " deleted"
48
+ list
49
+ end
50
+
51
+ #Print the list of words
52
+ def list
53
+ list_of_words do |word, idx|
54
+ puts "#{idx + 1} #{word[0]}: #{word[1]}"
55
+ end
56
+ end
57
+
58
+ private
59
+ # input is ["to", "run:", "бежать"]
60
+ # output is ["to run", "бежать"]
61
+ def split
62
+ w = @argv.join(" ").split(":")
63
+ if w.size < 2
64
+ pp 'You mast set ":" on word. Like this: "./word -a to run: бежать"'
65
+ end
66
+ @words = w.map(&:strip)
67
+ end
68
+
69
+ #return true if have double in db
70
+ def double?
71
+ w = @words.first
72
+ list = collection
73
+ list.map(&:first).include?( w )
74
+ end
75
+
76
+ def list_of_words
77
+ collection.each_with_index do |word, idx|
78
+ yield(word, idx)
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,25 @@
1
+ class SayWords
2
+
3
+ def initialize(collection, options={})
4
+ @collection = collection
5
+ @show_message = options[:show_message] || true
6
+ @space_words = options[:space_words] || 3
7
+ @space_interation = options[:space_interation] || 10
8
+ end
9
+
10
+ def run
11
+ loop do
12
+ @collection.each do |word|
13
+ puts "I say #{word[0]}"
14
+ system 'notify-send -i /usr/share/pixmaps/gnome-irc.png "'+ word[0] +'" "'+ word[1] +'" -t 1' if @show_message
15
+ system 'espeak -v en -s120 "'+ word[0] +'"'
16
+ sleep @space_words
17
+ #puts "I say #{word[1]}"
18
+ system 'espeak -v ru -s120 "'+ word[1] +'"'
19
+ sleep @space_interation
20
+ end
21
+ sleep 4 # for notification hiding
22
+ end
23
+ end
24
+
25
+ end
@@ -0,0 +1,3 @@
1
+ module Jwords
2
+ VERSION = "0.0.2"
3
+ end
metadata ADDED
@@ -0,0 +1,66 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jumping_words
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.0.2
6
+ platform: ruby
7
+ authors:
8
+ - Alex Dmitriev
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2012-01-29 00:00:00 Z
14
+ dependencies: []
15
+
16
+ description: Jumping Words is gem for learning new words foreign languages, only ubuntu
17
+ email:
18
+ - alex@devmen.com
19
+ executables:
20
+ - jword
21
+ extensions: []
22
+
23
+ extra_rdoc_files: []
24
+
25
+ files:
26
+ - .gitignore
27
+ - Gemfile
28
+ - README.rdoc
29
+ - Rakefile
30
+ - bin/jword
31
+ - config.rb
32
+ - db/jumping_words.csv
33
+ - jwords.gemspec
34
+ - lib/jumping_words.rb
35
+ - lib/jwords/db_words.rb
36
+ - lib/jwords/say_words.rb
37
+ - lib/jwords/version.rb
38
+ homepage: ""
39
+ licenses: []
40
+
41
+ post_install_message:
42
+ rdoc_options: []
43
+
44
+ require_paths:
45
+ - lib
46
+ required_ruby_version: !ruby/object:Gem::Requirement
47
+ none: false
48
+ requirements:
49
+ - - ">="
50
+ - !ruby/object:Gem::Version
51
+ version: "0"
52
+ required_rubygems_version: !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: "0"
58
+ requirements: []
59
+
60
+ rubyforge_project: jumping_words
61
+ rubygems_version: 1.8.15
62
+ signing_key:
63
+ specification_version: 3
64
+ summary: Jumping Words is gem for learning new words foreign languages
65
+ test_files: []
66
+