unichron 0.1.0 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
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