woody-decorators 6.4.1 → 6.5.0

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: f55849b9859782d2d3965b08fbf860fd2aa57b57
4
- data.tar.gz: d8472d566272328714759384e483930454b04d5c
3
+ metadata.gz: 049c6b73df00400a7d5b5e1854ac1ce2599287b6
4
+ data.tar.gz: cdcf8fa5a565a5ca20eee839a91bd128bd4df028
5
5
  SHA512:
6
- metadata.gz: d4c4de6aafc7e8ff844539145b619877128efe810db8950505d35645702a24f84bf7628a8d3b6091398ff49f97c801e3bee68a5a10d07764432aad26730334f5
7
- data.tar.gz: 101f25a0c6654bec543090bb5ba8d792300362a532efcf80ef15107730692648b87ba055c065a2292dc04372256cde139d42e7aeb76e6c588d2e8b3e2cf4c2eb
6
+ metadata.gz: 80b5254e6dd494f854fbb30e032cf1ebb3d147308e9094d7e316be4eed6cdbb55672e7876edcb0feccc74a6dccfa32d184084bee57132ff9216bb945df097a6e
7
+ data.tar.gz: 0a2cd566b80a64e29e9d40f756d2672279f7e4643a71a54e6766b76e8703e48e897aa37ab524645b5b32e89b41f1979e636af6574c7ecc798031c77b4378ba4c
@@ -1,5 +1,5 @@
1
1
  module Woody
2
2
  module Decorators
3
- VERSION = '6.4.1'.freeze
3
+ VERSION = '6.5.0'.freeze
4
4
  end
5
5
  end
@@ -90,8 +90,10 @@ module Woody
90
90
  end
91
91
  end
92
92
 
93
- def insights_summary
94
- Insights::Summary.new(@model.insights('summary'))
93
+ def insights_summary(cards)
94
+ Insights::Summary.new(
95
+ @model.insights('summary'), cards
96
+ )
95
97
  end
96
98
 
97
99
  private
@@ -2,10 +2,28 @@ module Woody
2
2
  module Decorators
3
3
  module Insights
4
4
  module FieldTransformer
5
+ def self.commas()
6
+ lambda do |val|
7
+ val.to_s.reverse.gsub(/(\d{3})(?=\d)/, '\\1,').reverse
8
+ end
9
+ end
10
+
11
+ def self.percentage()
12
+ lambda { |val| format('%s%', val.to_s) }
13
+ end
14
+
5
15
  def self.round(precision)
6
16
  lambda { |val| val.round(precision) }
7
17
  end
8
18
 
19
+ def self.shorten()
20
+ lambda do |val|
21
+ return val.to_s if val < 1000
22
+ return format('%sk', (val / 1000)) if val < 1000000
23
+ return format('%sm', (val / 1000000))
24
+ end
25
+ end
26
+
9
27
  def self.apply_transformers(transformers, value)
10
28
  transformers.reduce(value) do |accum, transformer|
11
29
  transformer.(accum)
@@ -1,39 +1,62 @@
1
1
  require 'woody/decorators/insights/field_transformer'
2
- require 'json'
3
2
 
4
3
  module Woody
5
4
  module Decorators
6
5
  module Insights
7
6
  class Summary
8
- def initialize(data)
9
- @data = transform(data)
7
+ attr_reader :data
8
+
9
+ def initialize(data, cards)
10
+ @data = transform(data, cards)
10
11
  end
11
12
 
12
- def to_json
13
- JSON.generate(@data)
13
+ private
14
+
15
+ def apply_transformers(key, value)
16
+ FieldTransformer.apply_transformers(
17
+ field_transformers[key],
18
+ value
19
+ )
14
20
  end
15
21
 
16
22
  def field_transformers
17
23
  {
18
- 'total_minutes_viewed' => [FieldTransformer.round(2)],
19
- 'total_engagement_percent_people_viewed' => [FieldTransformer.round(2)],
20
- 'total_view_rate' => [FieldTransformer.round(4)],
24
+ 'campaign_reach' => [
25
+ FieldTransformer.commas()
26
+ ],
27
+ 'campaign_views' => [
28
+ FieldTransformer.commas()
29
+ ],
30
+ 'minutes_viewed' => [
31
+ FieldTransformer.round(0), FieldTransformer.commas()
32
+ ],
33
+ 'unqiue_viewers' => [
34
+ FieldTransformer.shorten()
35
+ ],
36
+ 'overall_view_rate' => [
37
+ FieldTransformer.round(0), FieldTransformer.percentage()
38
+ ],
39
+ 'total_engagement' => [
40
+ FieldTransformer.shorten()
41
+ ],
42
+ 'engagement_rate' => [
43
+ FieldTransformer.round(0), FieldTransformer.percentage()
44
+ ]
21
45
  }
22
46
  end
23
47
 
24
- def transform(data)
25
- data.each do |key, value|
26
- if field_transformers.key?(key)
27
- data[key] = apply_transformers(key, value)
48
+ def transform(data, cards)
49
+ transformed_cards = cards.map do |card|
50
+ if field_transformers.key?(card['key'])
51
+ card['value'] = apply_transformers(
52
+ card['key'], data[card['key']]
53
+ ).to_s
54
+ else
55
+ card['value'] = data[card['key']].to_s
28
56
  end
57
+ card
29
58
  end
30
- end
31
-
32
- def apply_transformers(key, value)
33
- FieldTransformer.apply_transformers(
34
- field_transformers[key],
35
- value
36
- )
59
+ { cards: transformed_cards }
37
60
  end
38
61
  end
39
62
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: woody-decorators
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.4.1
4
+ version: 6.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ''
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-08-23 00:00:00.000000000 Z
11
+ date: 2016-08-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler