piece_of_wax 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.
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: []