Module: Woody::Decorators::Insights::FieldTransformer
- Defined in:
- lib/woody/decorators/insights/field_transformer.rb
Class Method Summary collapse
- .apply(transformers, value) ⇒ Object
- .commas ⇒ Object
- .date ⇒ Object
- .percentage ⇒ Object
- .round(p) ⇒ Object
- .shorten ⇒ Object
- .thumbnail ⇒ Object
- .truncate(length) ⇒ Object
Class Method Details
.apply(transformers, value) ⇒ Object
9 10 11 12 13 14 15 16 17 |
# File 'lib/woody/decorators/insights/field_transformer.rb', line 9 def self.apply(transformers, value) transformers.reduce(value) do |accum, transformer| if transformer.key?('args') self.send(transformer['method'], transformer['args']).(accum) else self.send(transformer['method']).(accum) end end end |
.commas ⇒ Object
19 20 21 22 23 |
# File 'lib/woody/decorators/insights/field_transformer.rb', line 19 def self.commas() lambda do |val| val.to_s.reverse.gsub(/(\d{3})(?=\d)/, '\\1,').reverse end end |
.date ⇒ Object
25 26 27 28 29 |
# File 'lib/woody/decorators/insights/field_transformer.rb', line 25 def self.date() lambda do |val| DateTime.parse(val).strftime("%-d %B %Y") end end |
.percentage ⇒ Object
31 32 33 |
# File 'lib/woody/decorators/insights/field_transformer.rb', line 31 def self.percentage() lambda { |val| format('%s%', val.to_s) } end |
.round(p) ⇒ Object
35 36 37 |
# File 'lib/woody/decorators/insights/field_transformer.rb', line 35 def self.round(p) lambda { |val| val.round(p) } end |
.shorten ⇒ Object
39 40 41 42 43 44 45 |
# File 'lib/woody/decorators/insights/field_transformer.rb', line 39 def self.shorten() lambda do |val| return val.to_s if val < 1000 return format('%sk', (val / 1000)) if val < 1000000 return format('%sm', (val / 1000000)) end end |
.thumbnail ⇒ Object
47 48 49 50 51 52 53 54 |
# File 'lib/woody/decorators/insights/field_transformer.rb', line 47 def self.thumbnail() lambda do |val| config = Wes::Cloudkit.config Woody::Decorators::Video.new( Wes::Data::API::Video.find('facebook_id', val), config ).thumbnail end end |
.truncate(length) ⇒ Object
56 57 58 |
# File 'lib/woody/decorators/insights/field_transformer.rb', line 56 def self.truncate(length) lambda { |val| format('%s...', val[0..(length + 1)]) } end |