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