unichron 0.1.0 → 0.3.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 717e4f896f016d102c686bd9f9c48b4dcce607a6ebd0e7c201020b13085be6bd
4
- data.tar.gz: 9fd37d09d9db263833f67072ab4b332c4ff0f12a26dda1fc465e11a598e650d0
3
+ metadata.gz: 6c256203754dd57e2546066f37a1422132afa9b42922d68c232e6395530b4ba4
4
+ data.tar.gz: 0ee0924c0b8f87047c976707b8c33001321750d98722eec5600eb6065c2eb044
5
5
  SHA512:
6
- metadata.gz: f41b7e665ef4df0275eb87d533ea8eaba5cb6516511c2d7113eeea75bc058448d1d0f4835dee9ab9329904a846aa76013d00b2b3d3774bf9fca30701efb8bcf4
7
- data.tar.gz: 8a2b68d61009e5988d71147afbf3152447c1965e5d9a427e5fa46a82114cbc7dd21efd87913cc655173b490e0fae6635e4bf53d55c5b9bc72ccdda074e395cdb
6
+ metadata.gz: e3fb8989903f959bc81117882e0551add52da89cb63b104abf66a6596f8ea508c9d62461493165cc3e0aba3890445655e6014db48b201f5af5f09556866bf794
7
+ data.tar.gz: 2cb57740f79d74334a82eb669422ba321eff7e500854f65a03abfbe26eda21215738ebdd9507fdd1d132ed17d4b8234b10a01c2bc0463af2f5428a3b1671f0a6
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/lib/unichron.rb CHANGED
@@ -3,23 +3,50 @@
3
3
  # file: unichron.rb
4
4
 
5
5
  require 'chronic_cron'
6
+ require 'christian_calendar'
6
7
 
7
8
 
8
9
  class Unichron
9
10
 
10
11
  attr_reader :r
11
12
 
12
- def initialize(obj)
13
+ def initialize(obj, debug: false)
13
14
 
15
+ @debug = debug
14
16
  @r = select_method(obj)
17
+
18
+ end
19
+
20
+ # Returns the elapsed time in a humanized format
21
+ # e.g. elapsed(Time.now - 4000) #=> 1h
22
+ # note: An elapsed time more than a day is returned as a calendar date
23
+ #
24
+ def elapsed()
25
+
26
+ elapsed = Time.now - @r
27
+
28
+ relative_time = if elapsed < Time.now - (Date.today - 1).to_time then
29
+ Subunit.seconds(elapsed).strfunit("%s")
30
+ else
31
+ @r.strftime("%b %d")
32
+ end
33
+
15
34
  end
16
35
 
17
36
  def to_seconds
18
37
  @r
19
38
  end
39
+
40
+ def to_date
41
+ @r.to_date if valid?
42
+ end
20
43
 
21
44
  def to_time
22
- @r.to_time
45
+ @r.to_time if valid?
46
+ end
47
+
48
+ def valid?
49
+ @r.respond_to? :to_time
23
50
  end
24
51
 
25
52
  private
@@ -30,18 +57,68 @@ class Unichron
30
57
 
31
58
  s = obj
32
59
  r = Chronic.parse(s)
60
+ puts 'r1: ' + r.inspect if @debug
33
61
  return r if r
34
62
 
35
63
  r = ChronicCron.new s
64
+ puts 'r2: ' + r.inspect if @debug
36
65
  return r if r.valid?
37
66
 
38
67
  r = ChronicDuration.parse s
68
+ puts 'r3: ' + r.inspect if @debug
69
+ return r if r
70
+
71
+ r = ChristianCalendar.new.query(obj)
72
+ puts 'r4 ' + r.inspect if @debug
39
73
  return r if r
40
74
 
75
+
41
76
  return nil
42
77
 
78
+ else
79
+ obj
43
80
  end
44
81
  end
45
82
 
46
83
  end
47
84
 
85
+ module UnichronUtils
86
+
87
+ class Quicktime
88
+
89
+ attr_reader :time
90
+
91
+ def initialize(time: Time.now, speed: 4)
92
+
93
+ @time, @speed = Unichron.new(time).to_time, speed
94
+
95
+ end
96
+
97
+ def start()
98
+
99
+ @state = :play
100
+
101
+ Thread.new do
102
+
103
+ loop do
104
+ (sleep 0.5; next) if @state == :pause
105
+ @time += 1
106
+ sleep 1.0 / @speed
107
+ end
108
+
109
+ end
110
+ end
111
+
112
+ def pause()
113
+ @state = :pause
114
+ end
115
+
116
+ def play()
117
+ @state = :play
118
+ end
119
+
120
+ def set_time(s)
121
+ @time = Chronic.parse(s)
122
+ end
123
+ end
124
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unichron
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -35,8 +35,28 @@ cert_chain:
35
35
  vPngqdMCuVEkZm+YuLTXph0I590TF5EmMRQMILYYtjV6ClWHIEa5WlToyO2Fk1OL
36
36
  aagRjWlkRSoGiE7602v0Wo/u
37
37
  -----END CERTIFICATE-----
38
- date: 2020-11-07 00:00:00.000000000 Z
38
+ date: 2021-02-23 00:00:00.000000000 Z
39
39
  dependencies:
40
+ - !ruby/object:Gem::Dependency
41
+ name: subunit
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '0.8'
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: 0.8.3
50
+ type: :runtime
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - "~>"
55
+ - !ruby/object:Gem::Version
56
+ version: '0.8'
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: 0.8.3
40
60
  - !ruby/object:Gem::Dependency
41
61
  name: chronic_cron
42
62
  requirement: !ruby/object:Gem::Requirement
@@ -57,8 +77,28 @@ dependencies:
57
77
  - - ">="
58
78
  - !ruby/object:Gem::Version
59
79
  version: 0.6.1
80
+ - !ruby/object:Gem::Dependency
81
+ name: christian_calendar
82
+ requirement: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - "~>"
85
+ - !ruby/object:Gem::Version
86
+ version: '0.1'
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: 0.1.7
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.1'
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: 0.1.7
60
100
  description:
61
- email: james@jamesrobertson.eu
101
+ email: digital.robertson@gmail.com
62
102
  executables: []
63
103
  extensions: []
64
104
  extra_rdoc_files: []
@@ -83,7 +123,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
83
123
  - !ruby/object:Gem::Version
84
124
  version: '0'
85
125
  requirements: []
86
- rubygems_version: 3.0.3
126
+ rubyforge_project:
127
+ rubygems_version: 2.7.10
87
128
  signing_key:
88
129
  specification_version: 4
89
130
  summary: A universal chron tool.
metadata.gz.sig CHANGED
Binary file