eitil 1.1.18 → 1.1.19

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: 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