eitil 1.1.18 → 1.1.19

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: dc5c1e4a0bf3652f28f2f5332b573ced30fae2cccf5b48ac6814f1ed04f4699e
4
- data.tar.gz: 2dc15a70b3649783fc4fa6a590a8d153547d3182f5d60567bf851aad0aab949c
3
+ metadata.gz: 7020160e13bd3a44d267c4276583f909457fbabf4773c50c8333c0d75f12691b
4
+ data.tar.gz: 2b6f3221afaf89a16060062e9be81fdfd87508b8e2ee3ab249f648f0c92ad8b5
5
5
  SHA512:
6
- metadata.gz: 4eeec0d3014237e058b4de977405b169f01315d3108815feface3dfdc716b62b20a7d0ab3676d0d808e70f6c71e63090eff1c0107e561b3ef276b8793fa4b3e6
7
- data.tar.gz: 2f290a7fcc5508196fbee2229b853b332c6601af53fb5b91650f5323276c7c83d5d2e6510c237185733dc0cdcb195f7960063a754c176ea571201292b96da11c
6
+ metadata.gz: ce8f3a2018d4cf475901a1da877888d45def474dda77510cb63d8f25ae1bbbb9c441e325f32cda7305806abf61201a4e9dccf6921d2adb631ce4f25fc9d83625
7
+ data.tar.gz: f887dac92a3bc705a09717587880c33840046d70145434ce1e2debbff340aaa7104a3ff14bda824059f6c84a04df8c54af1581728367c365d6ef83d6ad4f8ad7
data/eitil_core/README.md CHANGED
@@ -287,6 +287,19 @@ require "eitil_core/formatters"
287
287
 
288
288
  ```
289
289
 
290
+ ```ruby
291
+ # require "eitil_core/formatters/duck_set"
292
+
293
+ Date.duck_set(identifier)
294
+ # => returns a Date instance, accepts instances of String, Date, DateTime and Time as argument
295
+
296
+ DateTime.duck_set(identifier)
297
+ # => returns a DateTime instance, accepts instances of String, Date, DateTime and Time as argument
298
+
299
+ Time.duck_set(identifier)
300
+ # => returns a Time instance, accepts instances of String, Date, DateTime and Time as argument
301
+ ```
302
+
290
303
  ```ruby
291
304
  # require "eitil_core/formatters/sql"
292
305
 
@@ -1,4 +1,5 @@
1
1
 
2
2
  # require "eitil_core/formatters"
3
3
 
4
+ require "eitil_core/formatters/duck_set"
4
5
  require "eitil_core/formatters/sql"
@@ -0,0 +1,81 @@
1
+
2
+ # require "eitil_core/formatters/duck_set"
3
+
4
+
5
+ class Date
6
+
7
+ def self.duck_set(identifier)
8
+
9
+ _class = identifier.class
10
+
11
+ if _class == self
12
+ return identifier
13
+
14
+ elsif _class == String
15
+ return parse identifier
16
+
17
+ elsif _class == DateTime
18
+ return identifier.to_date
19
+
20
+ elsif _class == Time
21
+ return identifier.to_date
22
+ end
23
+
24
+ raise ArgumentError, "Date.duck_set only accepts instances of String, Date, DateTime and Time as argument."
25
+
26
+ end
27
+
28
+ end
29
+
30
+
31
+ class DateTime
32
+
33
+ def self.duck_set(identifier)
34
+
35
+ _class = identifier.class
36
+
37
+ if _class == self
38
+ return identifier
39
+
40
+ elsif _class == String
41
+ return parse identifier
42
+
43
+ elsif _class == Time
44
+ return identifier.to_datetime
45
+
46
+ elsif _class == Date
47
+ return identifier.to_datetime
48
+ end
49
+
50
+ raise ArgumentError, "DateTime.duck_set only accepts instances of String, Date, DateTime and Time as argument."
51
+
52
+ end
53
+
54
+ end
55
+
56
+
57
+ class Time
58
+
59
+ def self.duck_set(identifier)
60
+
61
+ _class = identifier.class
62
+
63
+ if _class == self
64
+ return identifier
65
+
66
+ elsif _class == String
67
+ return parse identifier
68
+
69
+ elsif _class == DateTime
70
+ return identifier.to_time
71
+
72
+ elsif _class == Date
73
+ return identifier.to_time
74
+ end
75
+
76
+ raise ArgumentError, "Time.duck_set only accepts instances of String, Date, DateTime and Time as argument."
77
+
78
+ end
79
+
80
+ end
81
+
data/lib/eitil/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Eitil
2
2
 
3
- VERSION = '1.1.18'
3
+ VERSION = '1.1.19'
4
4
 
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eitil
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.18
4
+ version: 1.1.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jurriaan Schrofer
@@ -115,6 +115,7 @@ files:
115
115
  - eitil_core/lib/eitil_core/float.rb
116
116
  - eitil_core/lib/eitil_core/float/safe_to_i.rb
117
117
  - eitil_core/lib/eitil_core/formatters.rb
118
+ - eitil_core/lib/eitil_core/formatters/duck_set.rb
118
119
  - eitil_core/lib/eitil_core/formatters/sql.rb
119
120
  - eitil_core/lib/eitil_core/hash.rb
120
121
  - eitil_core/lib/eitil_core/hash/auto_dig.rb