wkcheck 0.0.2 → 0.0.3

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.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/bin/wkcheck +16 -2
  3. data/lib/wkcheck.rb +29 -7
  4. data/wkcheck.gemspec +4 -3
  5. metadata +18 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1e071a3e6a1aa9c5a94e5cff33e1a46f1e9946b3
4
- data.tar.gz: 91678d915c78a7381c672cbb51798abd46ea6add
3
+ metadata.gz: 9cf348abcab7fc7a871c41df6b38c2af361a3d6b
4
+ data.tar.gz: d5d8d98142696987d3be9660b0806715da1f754c
5
5
  SHA512:
6
- metadata.gz: d56c3205e7362729510d085aa7ea92307c96502dbfa3b8ceac2e562707623aff98b4b09a5baea6647937bb0882d6cdd5b792703b5285c262d66461ca2329af2d
7
- data.tar.gz: 0437d3b35635beb805c40dde5e1f5e1521ec7008cfe58cae24a095f870cf23e72f438c90ca90d4359675918f64d917804883554b1617d395db4ba06979825e50
6
+ metadata.gz: b45b50f1dcfa3ee1bc059f892c44b3bb337625f9b3e07e535486807bfaa8299069dec5d37f84d21d6432fb682af4a438a1797386de62c39b74c7b9e1f304c951
7
+ data.tar.gz: 0805c370e163c0ddf522fa434d9720e99ba8873868a9251561b41d68c45d94d4667d861f3fbffe8c5015318f50d27c2e67ceed2089bcd890268bb5711a1fad62
data/bin/wkcheck CHANGED
@@ -10,7 +10,8 @@ opts = Slop.parse(help: true) do
10
10
  banner "Usage: wkcheck [options]"
11
11
 
12
12
  on "api-key=", "Saves your WaniKani API Key to #{WKCheck::CONFIG_FILE}"
13
-
13
+ on "q", "queue", "Displays your current study queue (new lessons / pending reviews)"
14
+ on "l", "level", "Displays your current level progression (radicals / Kanji)"
14
15
  on "v", "version", "Show version number and quit" do
15
16
  puts "wkcheck #{WKCheck::VERSION}"
16
17
  exit
@@ -35,4 +36,17 @@ end
35
36
 
36
37
  Wanikani.api_key = api_key
37
38
 
38
- puts WKCheck::Study.available_stats
39
+ if opts.queue?
40
+ stats = WKCheck::Stats.new
41
+ puts stats.study_queue
42
+ exit
43
+ end
44
+
45
+ if opts.level?
46
+ stats = WKCheck::Stats.new
47
+ puts stats.level_progression
48
+ exit
49
+ end
50
+
51
+ # No flags / Invalid flags - Display the help.
52
+ puts opts.help
data/lib/wkcheck.rb CHANGED
@@ -1,24 +1,46 @@
1
1
  require 'wanikani'
2
+ require 'rainbow'
2
3
 
3
4
  module WKCheck
4
- VERSION = "0.0.2"
5
+ VERSION = "0.0.3"
5
6
  CONFIG_FILE = "#{Dir.home}/.wkcheck.yml"
6
7
 
7
- class Study
8
- def self.available_stats
8
+ class Stats
9
+ def study_queue
9
10
  queue = Wanikani::StudyQueue.queue
10
11
  lessons = queue["lessons_available"]
11
12
  reviews = queue["reviews_available"]
12
13
  next_review_date = Time.at(queue["next_review_date"]).utc.strftime("%A, %B %-d at %-l:%M %p")
14
+ queue_message(lessons, reviews, next_review_date)
15
+ end
16
+
17
+ def level_progression
18
+ progress = Wanikani::Level.progression
19
+ progression_message(progress)
20
+ end
13
21
 
22
+ private
23
+
24
+ def queue_message(lessons, reviews, next_review_date)
14
25
  if lessons.zero? && reviews.zero?
15
- message = "You have no lessons or reviews now! You'll have some more on #{next_review_date}."
26
+ message = "You have no lessons or reviews now! You'll have some more on #{next_review_date.bright}.".color(:green)
16
27
  else
17
- message = "You have #{lessons.zero? ? "no" : lessons } lessons pending."
18
- message += "\nYou have #{reviews.zero? ? "no" : reviews } reviews pending."
28
+ lessons_msg = lessons.zero? ? "no".color(:green) : lessons.to_s.color(:red)
29
+ reviews_msg = reviews.zero? ? "no".color(:green) : reviews.to_s.color(:red)
30
+ message = "You have #{lessons_msg} lessons pending"
31
+ message += "\nYou have #{reviews_msg} reviews pending"
19
32
  end
33
+ end
34
+
35
+ def progression_message(progress)
36
+ radicals_percent = (progress["radicals_progress"].to_f / progress["radicals_total"].to_f) * 100
37
+ kanji_percent = (progress["kanji_progress"].to_f / progress["kanji_total"].to_f) * 100
20
38
 
21
- message
39
+ message = "Your progress for level #{progress["current_level"]}:\n".color(:green)
40
+ message += "#{progress["radicals_progress"]} out of #{progress["radicals_total"]} radicals".color(:cyan)
41
+ message += " (#{radicals_percent.round(1)}%)\n"
42
+ message += "#{progress["kanji_progress"]} out of #{progress["kanji_total"]} Kanji".color(:cyan)
43
+ message += " (#{kanji_percent.round(1)}%)\n"
22
44
  end
23
45
  end
24
46
  end
data/wkcheck.gemspec CHANGED
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "wkcheck"
3
- s.version = "0.0.2"
4
- s.date = "2013-05-12"
3
+ s.version = "0.0.3"
4
+ s.date = "2013-05-22"
5
5
  s.summary = "Check your WaniKani stats from the command line"
6
6
  s.description = "Check your pending lessons and reviews of your WaniKani account (http://www.wanikani.com/) from the command line"
7
7
  s.authors = ["Dennis Martinez"]
@@ -18,8 +18,9 @@ Gem::Specification.new do |s|
18
18
 
19
19
  s.required_ruby_version = '>= 1.9.2'
20
20
 
21
- s.add_runtime_dependency "wanikani", "~> 0.0.3"
21
+ s.add_runtime_dependency "wanikani", "~> 0.0.4"
22
22
  s.add_runtime_dependency "slop", "~> 3.4.4"
23
+ s.add_runtime_dependency "rainbow", "~> 1.1.4"
23
24
 
24
25
  s.add_development_dependency "aruba", "~> 0.5.2"
25
26
  s.add_development_dependency "mocha", "~> 0.13.3"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wkcheck
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dennis Martinez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-05-12 00:00:00.000000000 Z
11
+ date: 2013-05-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: wanikani
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ~>
18
18
  - !ruby/object:Gem::Version
19
- version: 0.0.3
19
+ version: 0.0.4
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ~>
25
25
  - !ruby/object:Gem::Version
26
- version: 0.0.3
26
+ version: 0.0.4
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: slop
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  version: 3.4.4
41
+ - !ruby/object:Gem::Dependency
42
+ name: rainbow
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: 1.1.4
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 1.1.4
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: aruba
43
57
  requirement: !ruby/object:Gem::Requirement