rooster 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -18,4 +18,4 @@ Or install it yourself as:
18
18
 
19
19
  ## Usage
20
20
 
21
- $ rooster 10 "Ten minutes have past"
21
+ $ rooster 10 "Ten minutes have passed."
data/Rakefile CHANGED
@@ -1 +1,9 @@
1
1
  require "bundler/gem_tasks"
2
+ require 'rake/testtask'
3
+
4
+ Rake::TestTask.new do |t|
5
+ t.libs << 'test'
6
+ end
7
+
8
+ desc "Run tests"
9
+ task :default => :test
@@ -2,6 +2,13 @@
2
2
 
3
3
  require 'rooster'
4
4
 
5
- # TODO input validation, print usage, --help?
5
+ def usage
6
+ abort "Usage: rooster <minutes> <text>"
7
+ end
8
+
9
+ if ARGV[0].nil? || ARGV[1].nil? || ARGV[0].to_i < 1 || %w{--help help -h}.include?(ARGV[0])
10
+ usage
11
+ else
12
+ Rooster::EggTimer.new ARGV[0], ARGV[1]
13
+ end
6
14
 
7
- Rooster::EggTimer.new(ARGV[0], ARGV[1])
@@ -4,32 +4,34 @@ module Rooster
4
4
 
5
5
  ONE_MINUTE = 60
6
6
 
7
- def initialize mins, text
8
- # @start = Time.now
9
-
7
+ # Start your egg timer
8
+ #
9
+ # Example:
10
+ # >> rooster 10, "remind me to make coffee in ten minutes"
11
+ #
12
+ # Arguments:
13
+ # minutes: (Integer)
14
+ # text: (String)
15
+ def initialize minutes, text
10
16
  @text = text
11
- @mins = mins.to_i
17
+ @minutes = minutes.to_i
12
18
 
13
19
  run
14
20
  end
15
-
21
+
16
22
  def run
17
- while @mins > 0
18
- puts "\"#{@text}\" in #{@mins} minutes"
23
+ while @minutes > 0
24
+ puts "\"#{@text}\" in #{@minutes} minutes"
19
25
  sleep ONE_MINUTE
20
- @mins -= 1
26
+ @minutes -= 1
21
27
  end
22
28
  alarm
23
29
  end
24
30
 
25
31
  def alarm
26
32
  `tput bel` if can_tput
27
-
28
33
  TerminalNotifier.notify @text, :title => 'Egg Timer'
29
-
30
34
  puts @text
31
-
32
- # puts "* Duration: #{Time.now - @start} seconds"
33
35
  end
34
36
 
35
37
  protected
@@ -1,3 +1,3 @@
1
1
  module Rooster
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ["charles.stuart@gmail.com"]
11
11
  spec.description = %q{Remind yourself to do something or other in a specified number of minutes.}
12
12
  spec.summary = %q{An egg timer.}
13
- spec.homepage = ""
13
+ spec.homepage = "https://github.com/enure/rooster"
14
14
  spec.license = "MIT"
15
15
 
16
16
  spec.files = `git ls-files`.split($/)
@@ -0,0 +1,12 @@
1
+ require 'test/unit'
2
+ require 'rooster'
3
+
4
+ class RoosterTest < Test::Unit::TestCase
5
+
6
+ def test_1_minute_timer
7
+ start = Time.now
8
+ Rooster::EggTimer.new 1, "Hello in 1 minute"
9
+ assert_equal(((Time.now - start) / 60).to_i, 1)
10
+ end
11
+
12
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rooster
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -77,7 +77,8 @@ files:
77
77
  - lib/rooster/egg_timer.rb
78
78
  - lib/rooster/version.rb
79
79
  - rooster.gemspec
80
- homepage: ''
80
+ - test/test_rooster.rb
81
+ homepage: https://github.com/enure/rooster
81
82
  licenses:
82
83
  - MIT
83
84
  post_install_message:
@@ -102,4 +103,5 @@ rubygems_version: 1.8.23
102
103
  signing_key:
103
104
  specification_version: 3
104
105
  summary: An egg timer.
105
- test_files: []
106
+ test_files:
107
+ - test/test_rooster.rb