gloo 4.1.1 → 4.2.0
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 +4 -4
- data/lib/VERSION +1 -1
- data/lib/VERSION_NOTES +4 -0
- data/lib/gloo/objs/dt/date.rb +34 -1
- data/lib/gloo/objs/dt/datetime.rb +33 -1
- data/lib/gloo/objs/dt/dt_tools.rb +32 -0
- data/lib/gloo/objs/dt/time.rb +33 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cf2e3b4867f61cc9d1efcf48e5bbd409301cd981c3c060fd5da9d44341886068
|
4
|
+
data.tar.gz: d792df8a9e6b02db122bc4e6a59ed6169bd2cef0de02fe60a9c8c0f024551dc0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b17991f005f58b517044bd2ac2cc08f21f67f5e8bf7023cbfc3895ddbf24a7d3fdc88ed8c4ce61489c140c6d20488a2516988d72111066b2850eb92e3238ad96
|
7
|
+
data.tar.gz: 5fe442bd9578e773785a66c08eb1e12b454b0e1f2d7be78401ebc893a432b066a7c94c07e69c384384c24bb26c660840cb2e45b32c61b1d431cf19c3e134c1ff
|
data/lib/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
4.
|
1
|
+
4.2.0
|
data/lib/VERSION_NOTES
CHANGED
data/lib/gloo/objs/dt/date.rb
CHANGED
@@ -58,7 +58,7 @@ module Gloo
|
|
58
58
|
# Get a list of message names that this object receives.
|
59
59
|
#
|
60
60
|
def self.messages
|
61
|
-
return super + %w[now]
|
61
|
+
return super + %w[now add sub]
|
62
62
|
end
|
63
63
|
|
64
64
|
#
|
@@ -69,6 +69,39 @@ module Gloo
|
|
69
69
|
@engine.heap.it.set_to self.value
|
70
70
|
end
|
71
71
|
|
72
|
+
#
|
73
|
+
# Add the given modifier to the date.
|
74
|
+
#
|
75
|
+
def msg_add
|
76
|
+
modifier = "1 day"
|
77
|
+
if @params&.token_count&.positive?
|
78
|
+
expr = Gloo::Expr::Expression.new( @engine, @params.tokens )
|
79
|
+
data = expr.evaluate
|
80
|
+
modifier = data
|
81
|
+
end
|
82
|
+
|
83
|
+
dt = Chronic.parse( self.value )
|
84
|
+
new_value = DtTools.add( dt, modifier )
|
85
|
+
self.set_value( new_value )
|
86
|
+
@engine.heap.it.set_to self.value
|
87
|
+
end
|
88
|
+
|
89
|
+
#
|
90
|
+
# Subtract the given modifier from the date.
|
91
|
+
#
|
92
|
+
def msg_sub
|
93
|
+
modifier = "1 day"
|
94
|
+
if @params&.token_count&.positive?
|
95
|
+
expr = Gloo::Expr::Expression.new( @engine, @params.tokens )
|
96
|
+
data = expr.evaluate
|
97
|
+
modifier = data
|
98
|
+
end
|
99
|
+
|
100
|
+
dt = Chronic.parse( self.value )
|
101
|
+
self.set_value( DtTools.sub( dt, modifier ) )
|
102
|
+
@engine.heap.it.set_to self.value
|
103
|
+
end
|
104
|
+
|
72
105
|
end
|
73
106
|
end
|
74
107
|
end
|
@@ -59,12 +59,44 @@ module Gloo
|
|
59
59
|
# Get a list of message names that this object receives.
|
60
60
|
#
|
61
61
|
def self.messages
|
62
|
-
return super + %w[now is_today is_future
|
62
|
+
return super + %w[now add sub is_today is_future
|
63
63
|
is_past is_yesterday is_tomorrow is_this_week
|
64
64
|
begin_day end_day begin_week end_week
|
65
65
|
begin_month end_month begin_year end_year]
|
66
66
|
end
|
67
67
|
|
68
|
+
#
|
69
|
+
# Add the given modifier to the date.
|
70
|
+
#
|
71
|
+
def msg_add
|
72
|
+
modifier = "1 day"
|
73
|
+
if @params&.token_count&.positive?
|
74
|
+
expr = Gloo::Expr::Expression.new( @engine, @params.tokens )
|
75
|
+
data = expr.evaluate
|
76
|
+
modifier = data
|
77
|
+
end
|
78
|
+
|
79
|
+
dt = Chronic.parse( self.value )
|
80
|
+
new_value = DtTools.add( dt, modifier )
|
81
|
+
self.set_value( new_value )
|
82
|
+
@engine.heap.it.set_to self.value
|
83
|
+
end
|
84
|
+
|
85
|
+
#
|
86
|
+
# Subtract the given modifier from the date.
|
87
|
+
#
|
88
|
+
def msg_sub
|
89
|
+
modifier = "1 day"
|
90
|
+
if @params&.token_count&.positive?
|
91
|
+
expr = Gloo::Expr::Expression.new( @engine, @params.tokens )
|
92
|
+
data = expr.evaluate
|
93
|
+
modifier = data
|
94
|
+
end
|
95
|
+
|
96
|
+
dt = Chronic.parse( self.value )
|
97
|
+
self.set_value( DtTools.sub( dt, modifier ) )
|
98
|
+
@engine.heap.it.set_to self.value
|
99
|
+
end
|
68
100
|
#
|
69
101
|
# Set the value to the beginning of the month.
|
70
102
|
#
|
@@ -21,6 +21,38 @@ class DtTools
|
|
21
21
|
return false
|
22
22
|
end
|
23
23
|
|
24
|
+
|
25
|
+
# ---------------------------------------------------------------------
|
26
|
+
# Date Math
|
27
|
+
# ---------------------------------------------------------------------
|
28
|
+
|
29
|
+
#
|
30
|
+
# Given a date, add the modifier to it.
|
31
|
+
# The modifier takes the form of "1 day" or "2 weeks".
|
32
|
+
#
|
33
|
+
def self.add date, modifier="1 day"
|
34
|
+
# Split out amount and unit
|
35
|
+
amount, unit = modifier.split(' ')
|
36
|
+
|
37
|
+
# converts "1 day" to 1.day
|
38
|
+
duration = amount.to_i.send( unit )
|
39
|
+
return date + duration
|
40
|
+
end
|
41
|
+
|
42
|
+
#
|
43
|
+
# Given a date, subtract the modifier from it.
|
44
|
+
# The modifier takes the form of "1 day" or "2 weeks".
|
45
|
+
#
|
46
|
+
def self.sub dt, modifier="1 day"
|
47
|
+
# Split out amount and unit
|
48
|
+
amount, unit = modifier.split(' ')
|
49
|
+
|
50
|
+
# converts "1 day" to 1.day
|
51
|
+
duration = amount.to_i.send( unit )
|
52
|
+
return dt - duration
|
53
|
+
end
|
54
|
+
|
55
|
+
|
24
56
|
# ---------------------------------------------------------------------
|
25
57
|
# Language helpers
|
26
58
|
# ---------------------------------------------------------------------
|
data/lib/gloo/objs/dt/time.rb
CHANGED
@@ -58,7 +58,7 @@ module Gloo
|
|
58
58
|
# Get a list of message names that this object receives.
|
59
59
|
#
|
60
60
|
def self.messages
|
61
|
-
return super + %w[now]
|
61
|
+
return super + %w[now add sub]
|
62
62
|
end
|
63
63
|
|
64
64
|
#
|
@@ -69,6 +69,38 @@ module Gloo
|
|
69
69
|
@engine.heap.it.set_to self.value
|
70
70
|
end
|
71
71
|
|
72
|
+
#
|
73
|
+
# Add the given modifier to the time.
|
74
|
+
#
|
75
|
+
def msg_add
|
76
|
+
modifier = "1 hour"
|
77
|
+
if @params&.token_count&.positive?
|
78
|
+
expr = Gloo::Expr::Expression.new( @engine, @params.tokens )
|
79
|
+
data = expr.evaluate
|
80
|
+
modifier = data
|
81
|
+
end
|
82
|
+
|
83
|
+
dt = Chronic.parse( self.value )
|
84
|
+
new_value = DtTools.add( dt, modifier )
|
85
|
+
self.set_value( new_value )
|
86
|
+
@engine.heap.it.set_to self.value
|
87
|
+
end
|
88
|
+
|
89
|
+
#
|
90
|
+
# Subtract the given modifier from the time.
|
91
|
+
#
|
92
|
+
def msg_sub
|
93
|
+
modifier = "1 hour"
|
94
|
+
if @params&.token_count&.positive?
|
95
|
+
expr = Gloo::Expr::Expression.new( @engine, @params.tokens )
|
96
|
+
data = expr.evaluate
|
97
|
+
modifier = data
|
98
|
+
end
|
99
|
+
|
100
|
+
dt = Chronic.parse( self.value )
|
101
|
+
self.set_value( DtTools.sub( dt, modifier ) )
|
102
|
+
@engine.heap.it.set_to self.value
|
103
|
+
end
|
72
104
|
end
|
73
105
|
end
|
74
106
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gloo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Crane
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-05-
|
11
|
+
date: 2025-05-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|