eitil 1.1.2 → 1.1.3
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/eitil_core/README.md +43 -0
- data/eitil_core/lib/eitil_core.rb +1 -0
- data/eitil_core/lib/eitil_core/formatters.rb +4 -0
- data/eitil_core/lib/eitil_core/formatters/sql.rb +72 -0
- data/eitil_integrate/lib/eitil_integrate/application_exporter/log_state.rb +59 -23
- data/lib/eitil/all.rb +1 -1
- data/lib/eitil/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f1d078f5e3e79e4849d54692fcbfa418bec803333e69dcc6f4df72b09941ff31
|
4
|
+
data.tar.gz: 9e1232d63ae999afbbb5d0df2405fdb1ca038269096a73a8f8b82dc29de9ab1e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6d80703adbc3faf1be7faf8ffdbed5d70b7e04f9edbd7f88dba9baef9b5e3b7b79cf8091732d0e03aaa28fa0ec8efe66260da9d64ca595fd31b64f667e742160
|
7
|
+
data.tar.gz: cf450d841ca4f1a528ba3aa2d7be7a018b9a4ae08f2a16e491cec44ce69245e8f7a3193ce00824a3b7fda959917c0127d1528c979bce14a4b5c221a79b4bfdec
|
data/eitil_core/README.md
CHANGED
@@ -214,6 +214,49 @@ safe_to_i
|
|
214
214
|
```
|
215
215
|
|
216
216
|
|
217
|
+
## Formatters
|
218
|
+
|
219
|
+
```ruby
|
220
|
+
|
221
|
+
require "eitil_core/formatters"
|
222
|
+
|
223
|
+
```
|
224
|
+
|
225
|
+
```ruby
|
226
|
+
# require "eitil_core/formatters/sql"
|
227
|
+
|
228
|
+
Date.today.strfsql
|
229
|
+
# => "2021-06-23"
|
230
|
+
|
231
|
+
Date.today.strfsql(:date)
|
232
|
+
# => "2021-06-23"
|
233
|
+
|
234
|
+
DateTime.now.strfsql
|
235
|
+
# => "2021-06-23 13:15:37.945083"
|
236
|
+
|
237
|
+
DateTime.now.strfsql(:datetime)
|
238
|
+
# => "2021-06-23 13:15:37.945083"
|
239
|
+
|
240
|
+
DateTime.now.strfsql(:date)
|
241
|
+
# => "2021-06-23"
|
242
|
+
|
243
|
+
DateTime.now.strfsql(:time)
|
244
|
+
# => "13:16:23"
|
245
|
+
|
246
|
+
Time.now.strfsql
|
247
|
+
# => "13:16:23"
|
248
|
+
|
249
|
+
Time.now.strfsql(:datetime)
|
250
|
+
# => "2021-06-23 13:15:37.945083"
|
251
|
+
|
252
|
+
Time.now.strfsql(:date)
|
253
|
+
# => "2021-06-23"
|
254
|
+
|
255
|
+
Time.now.strfsql(:time)
|
256
|
+
# => "13:16:23"
|
257
|
+
```
|
258
|
+
|
259
|
+
|
217
260
|
## Hash
|
218
261
|
|
219
262
|
```ruby
|
@@ -0,0 +1,72 @@
|
|
1
|
+
|
2
|
+
# require "eitil_core/formatters/sql"
|
3
|
+
|
4
|
+
|
5
|
+
class Date
|
6
|
+
|
7
|
+
def strfsql(type = :date)
|
8
|
+
|
9
|
+
type = type.kind_of?(String) ? type.to_sym : type
|
10
|
+
|
11
|
+
case type
|
12
|
+
|
13
|
+
when :date
|
14
|
+
return self.strftime "%Y-%m-%d"
|
15
|
+
|
16
|
+
end
|
17
|
+
return
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
|
24
|
+
class DateTime
|
25
|
+
|
26
|
+
def strfsql(type = :datetime)
|
27
|
+
|
28
|
+
type = type.kind_of?(String) ? type.to_sym : type
|
29
|
+
|
30
|
+
case type
|
31
|
+
|
32
|
+
when :datetime
|
33
|
+
return self.strftime "%Y-%m-%d %H:%M:%S.%6N"
|
34
|
+
|
35
|
+
when :date
|
36
|
+
return self.strftime "%Y-%m-%d"
|
37
|
+
|
38
|
+
when :time
|
39
|
+
return self.strftime "%H:%M:%S"
|
40
|
+
|
41
|
+
end
|
42
|
+
return
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
|
48
|
+
|
49
|
+
class Time
|
50
|
+
|
51
|
+
def strfsql(type = :time)
|
52
|
+
|
53
|
+
type = type.kind_of?(String) ? type.to_sym : type
|
54
|
+
|
55
|
+
case type
|
56
|
+
|
57
|
+
when :datetime
|
58
|
+
return self.strftime "%Y-%m-%d %H:%M:%S.%6N"
|
59
|
+
|
60
|
+
when :date
|
61
|
+
return self.strftime "%Y-%m-%d"
|
62
|
+
|
63
|
+
when :time
|
64
|
+
return self.strftime "%H:%M:%S"
|
65
|
+
|
66
|
+
end
|
67
|
+
return
|
68
|
+
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
72
|
+
|
@@ -4,42 +4,78 @@
|
|
4
4
|
module EitilIntegrate::RubyXL
|
5
5
|
class ApplicationExporter
|
6
6
|
|
7
|
-
|
7
|
+
private
|
8
8
|
|
9
|
-
|
9
|
+
def log_state
|
10
10
|
|
11
|
-
|
11
|
+
return unless write_log == true
|
12
12
|
|
13
|
-
|
14
|
-
|
13
|
+
# create_log_sheet
|
14
|
+
book.add_worksheet('log')
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
|
16
|
+
# manage sheets
|
17
|
+
previous_sheet = @sheet.sheet_name
|
18
|
+
@sheet = @book["log"]
|
19
19
|
|
20
|
-
|
21
|
-
|
22
|
-
|
20
|
+
# manage coordinates
|
21
|
+
previous_x = @x
|
22
|
+
@x = 0
|
23
23
|
|
24
|
-
|
25
|
-
|
24
|
+
# log everything we want to log
|
25
|
+
report_state
|
26
26
|
|
27
|
-
|
28
|
-
|
29
|
-
|
27
|
+
# style logs
|
28
|
+
style_first_x_columns_width(1, 40)
|
29
|
+
style_first_column_bold
|
30
30
|
|
31
|
-
|
31
|
+
# restore what was previously active
|
32
|
+
@sheet = @book[previous_sheet]
|
33
|
+
@x = previous_x
|
32
34
|
|
33
|
-
|
34
|
-
|
35
|
+
end
|
36
|
+
|
37
|
+
def report_state
|
38
|
+
instance_variables.each do |ivar|
|
39
|
+
|
40
|
+
variable_name = ivar.to_s
|
41
|
+
variable_value = format_value(instance_variable_get(ivar))
|
42
|
+
|
43
|
+
array_to_row [variable_name, variable_value]
|
44
|
+
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
# formatting the values to a human readably format is important, because otherwise Excel warns
|
49
|
+
# users on safety when opening the file.
|
50
|
+
def format_value(value)
|
51
|
+
value_class = value.class
|
52
|
+
|
53
|
+
if value_class == Hash
|
54
|
+
value.map {|k,v| "#{k.to_s.split('_').map(&:capitalize).join(' ')}: #{v}"}.join(' // ')
|
55
|
+
|
56
|
+
elsif value_class == Array && value.all? { |item| item.class.superclass == ApplicationRecord }
|
57
|
+
"#{value.class} #{value.map(&:id).join(', ')}"
|
58
|
+
|
59
|
+
elsif value_class.superclass == ApplicationRecord
|
60
|
+
"#{value.class} ##{value.id}"
|
61
|
+
|
62
|
+
elsif value_class.superclass == ActiveRecord::Relation
|
63
|
+
"#{value.class.to_s.split('::').first} #{value.ids.to_s.delete('[]')}"
|
64
|
+
|
65
|
+
elsif value_class.superclass == ActiveRecord::Associations::CollectionProxy
|
66
|
+
"#{value.class.to_s.split('::').first} #{value.ids.to_s.delete('[]')}"
|
67
|
+
|
68
|
+
elsif value_class == RubyXL::Workbook
|
69
|
+
value_class.name
|
35
70
|
|
36
|
-
|
37
|
-
|
71
|
+
elsif value_class == RubyXL::Worksheet
|
72
|
+
value_class.name
|
38
73
|
|
39
|
-
|
74
|
+
else
|
75
|
+
value.to_s
|
40
76
|
|
77
|
+
end
|
41
78
|
end
|
42
|
-
end
|
43
79
|
|
44
80
|
end
|
45
81
|
end
|
data/lib/eitil/all.rb
CHANGED
@@ -7,7 +7,7 @@ Eitil::Layers.each do |layer|
|
|
7
7
|
begin
|
8
8
|
require "#{layer}/railtie"
|
9
9
|
require "#{layer}"
|
10
|
-
puts "succesfully required #{layer} and #{layer}/railtie"
|
10
|
+
puts "succesfully required #{layer} and #{layer}/railtie" if Rails.env.development?
|
11
11
|
|
12
12
|
rescue LoadError => e
|
13
13
|
puts "failed to require #{layer} and #{layer}/railtie"
|
data/lib/eitil/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eitil
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jurriaan Schrofer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-06-
|
11
|
+
date: 2021-06-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -105,6 +105,8 @@ files:
|
|
105
105
|
- eitil_core/lib/eitil_core/errors/raise_error.rb
|
106
106
|
- eitil_core/lib/eitil_core/float.rb
|
107
107
|
- eitil_core/lib/eitil_core/float/safe_to_i.rb
|
108
|
+
- eitil_core/lib/eitil_core/formatters.rb
|
109
|
+
- eitil_core/lib/eitil_core/formatters/sql.rb
|
108
110
|
- eitil_core/lib/eitil_core/hash.rb
|
109
111
|
- eitil_core/lib/eitil_core/hash/auto_dig.rb
|
110
112
|
- eitil_core/lib/eitil_core/lookups.rb
|