piece_of_wax 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +7 -0
  2. data/bin/piece_of_wax +4 -0
  3. data/lib/piece_of_wax.rb +68 -0
  4. metadata +74 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 683908a54cb7a603677d40b86d375486d3c32f52a0d6630ceb24ac1c91a953eb
4
+ data.tar.gz: 6eeb3aef9b284a8086a32ab70248b4ea53bfd9614e417293734fc2f49bd8ccc2
5
+ SHA512:
6
+ metadata.gz: 4da0542b0d656c49f6278fedfa449966a1a07d0fda7fc3c02d33679b3108605d614237c1ae7c524d498cfc6d3b50ca14439e52dad8a7175baf0bc37a20bf5f3a
7
+ data.tar.gz: d610bdae2c2fa0125e1691ba3bc83d7f5051aa5a6455985ac69055d45996a4dcb46ee1a2410f9639c271049513ff91dd485d08a01addccf41f28f6eacf554fe0
data/bin/piece_of_wax ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require_relative '../lib/piece_of_wax'
4
+ PieceOfWax.start(ARGV)
@@ -0,0 +1,68 @@
1
+ require "thor"
2
+ require "date"
3
+
4
+ class PieceOfWax < Thor
5
+ desc "activity _activity_", "log activity"
6
+ def activity(x)
7
+ write_to_file("#{Time.now} - #{x}")
8
+ puts "wrote #{x} to file"
9
+ end
10
+
11
+ desc "read [date]", "print activities on given [date] (yesterday by default)"
12
+ def read(date = Date.today.strftime('%Y-%m-%d'))
13
+ output =
14
+ begin
15
+ generate_output(File.open(filename(date)).readlines)
16
+ rescue Errno::ENOENT
17
+ "Sorry, I couldn't find any logs for #{print_date(date)}."
18
+ end
19
+ puts output
20
+ end
21
+
22
+ private
23
+
24
+ def write_to_file(str)
25
+ today = Time.now.strftime("%y%m%d")
26
+ File.open("#{today}.txt", "a+") do |f|
27
+ f.puts(str)
28
+ end
29
+ end
30
+
31
+ def filename(date)
32
+ "%s.txt" % Date.parse(date).strftime("%y%m%d")
33
+ end
34
+
35
+ def print_date(date)
36
+ if date == Date.today.prev_day
37
+ 'yesterday'
38
+ else
39
+ date
40
+ end
41
+ end
42
+
43
+ def generate_output(lines)
44
+ date = date_format(lines[0].split(' ')[0])
45
+ result =
46
+ lines.each_cons(2).reduce([date]) do |output, (line1, line2)|
47
+ output << output_line(line1, line2)
48
+ end
49
+ result << output_line(lines.last, "#{date} 05:45:00 -0500 - #{lines.last.split(' - ')[1]}")
50
+ end
51
+
52
+ def output_line(line1, line2)
53
+ date_info1, activity1 = line1.split(' - ')
54
+ date_info2, _activity2 = line2.split(' - ')
55
+ _date1, time1, _time_delta1 = date_info1.split(' ')
56
+ _date2, time2, _time_delta2 = date_info2.split(' ')
57
+ "#{time_format(time1)}-#{time_format(time2)} - #{activity1}"
58
+ end
59
+
60
+ def date_format(str)
61
+ year, month, day = str.split('-').map(&:to_i)
62
+ Date.new(year, month, day).strftime('%-m/%-d/%y')
63
+ end
64
+
65
+ def time_format(str)
66
+ str.split(':').first(2).join(':')
67
+ end
68
+ end
metadata ADDED
@@ -0,0 +1,74 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: piece_of_wax
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Ben Stegeman
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2020-04-29 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: thor
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '='
18
+ - !ruby/object:Gem::Version
19
+ version: 0.20.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: 0.20.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: timecop
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '='
32
+ - !ruby/object:Gem::Version
33
+ version: 0.9.1
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '='
39
+ - !ruby/object:Gem::Version
40
+ version: 0.9.1
41
+ description: ''
42
+ email: bstegeman17@gmail.com
43
+ executables:
44
+ - piece_of_wax
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - bin/piece_of_wax
49
+ - lib/piece_of_wax.rb
50
+ homepage:
51
+ licenses:
52
+ - MIT
53
+ metadata: {}
54
+ post_install_message:
55
+ rdoc_options: []
56
+ require_paths:
57
+ - lib
58
+ required_ruby_version: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ required_rubygems_version: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ requirements: []
69
+ rubyforge_project:
70
+ rubygems_version: 2.7.6
71
+ signing_key:
72
+ specification_version: 4
73
+ summary: Command line tool for time logging.
74
+ test_files: []