agilibox 1.0.7 → 1.0.8

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
  SHA1:
3
- metadata.gz: 8b9e98287e02a9ee5628cae5c21cdd4479a6bb7c
4
- data.tar.gz: 48b2aa5dc556cf7a5f048fcf62d4f41572c37554
3
+ metadata.gz: c492625f29e6a413965c9744b23a8de2cdc9a2b7
4
+ data.tar.gz: 2aa12b3967dfd2ac0c6c7ec4f2cb1057536b52ee
5
5
  SHA512:
6
- metadata.gz: 4ecdc6deafca423ba16a6a44e796a405864b9afdac0671d8a8f09978ebada07b48ad2667f585b3eb74e19438ad0f5eea99f7804735b6f1c1ce8cd93771cc2e53
7
- data.tar.gz: 55964a60d9f5a64845f1ff5f97287aef443ab1344e7058e68f9b4c8dd6f4fd1ba539b6318876821c37aa3ea10c0899e03bb0ed70a118feb58e7fcbcd21c0e2b3
6
+ metadata.gz: f8ebd6d3948bffa2af483a9e8ecff2db6dcfc7da7afcb6ecbefb40cf719e94f2ecf723a6e041383e3272dac291abc0af56ad3819ed96189227fa7bffc79fa65e
7
+ data.tar.gz: 03fd5d1a9fc8de1267bb830c11dcc08665335a48595797f8fd782ba93d77111a19c20880a46929a7b7994a790f678e10b9f6fa41c9c262172dedbd0002366ad0
data/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## Next version
4
4
 
5
+ ## 1.0.8
6
+
7
+ - Serializers improvements
8
+
5
9
  ## 1.0.7
6
10
 
7
11
  - Search form add reset button
@@ -14,4 +14,44 @@ class Agilibox::Serializers::Base
14
14
  raise NotImplementedError
15
15
  end
16
16
 
17
+ class << self
18
+ def decimals_precision
19
+ @decimals_precision ||= 2
20
+ end
21
+
22
+ attr_writer :decimals_precision
23
+
24
+ def format_integer(value)
25
+ value
26
+ end
27
+
28
+ def format_decimal(value)
29
+ value.to_f.round(decimals_precision) # Fix BigDecimal and 0.1 + 0.2
30
+ end
31
+
32
+ def format_boolean(value)
33
+ I18n.t(value.to_s)
34
+ end
35
+
36
+ def format_datetime(value)
37
+ Agilibox::AllHelpers.date(value)
38
+ end
39
+
40
+ def format_default(value)
41
+ value.to_s
42
+ end
43
+
44
+ def formatter_for(value)
45
+ return :integer if value.is_a?(Integer)
46
+ return :decimal if value.is_a?(Numeric)
47
+ return :boolean if value.is_a?(TrueClass) || value.is_a?(FalseClass)
48
+ return :datetime if value.is_a?(Date) || value.is_a?(Time)
49
+ return :default
50
+ end
51
+
52
+ def format(value)
53
+ formatter = "format_" + formatter_for(value).to_s
54
+ public_send(formatter, value)
55
+ end
56
+ end # class << self
17
57
  end
@@ -11,18 +11,7 @@ class Agilibox::Serializers::XLSX < Agilibox::Serializers::Base
11
11
  @xlsx ||= Axlsx::Package.new do |p|
12
12
  p.workbook.add_worksheet do |sheet|
13
13
  data.each do |line|
14
- values = line.map do |value|
15
- if value.is_a?(Integer)
16
- value
17
- elsif value.is_a?(Numeric)
18
- value.to_f # Fix BigDecimal
19
- elsif value == true || value == false
20
- I18n.t(value.to_s)
21
- else
22
- value.to_s
23
- end
24
- end
25
-
14
+ values = line.map { |value| self.class.format(value) }
26
15
  sheet.add_row(values)
27
16
  end
28
17
  end
@@ -30,5 +19,4 @@ class Agilibox::Serializers::XLSX < Agilibox::Serializers::Base
30
19
  p.use_shared_strings = true
31
20
  end
32
21
  end
33
-
34
22
  end
@@ -1,3 +1,3 @@
1
1
  module Agilibox
2
- VERSION = '1.0.7'
2
+ VERSION = '1.0.8'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: agilibox
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.7
4
+ version: 1.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - agilidée
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-10 00:00:00.000000000 Z
11
+ date: 2017-10-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails-i18n