class LpCSVExportable::CSVColumn

Attributes

default_value[R]
header[R]
model_method[R]
model_methods[R]
type[R]

Public Class Methods

new(args = {}) click to toggle source
# File lib/lp_csv_exportable/csv_column.rb, line 5
def initialize(args = {})
  @header = args[:header]
  @model_method = args[:model_method]
  @model_methods = args[:model_methods]
  @type = args.fetch(:type, :string)
  @default_value = args.fetch(:default_value, '')
  after_init(args)
end

Public Instance Methods

format(result) click to toggle source
# File lib/lp_csv_exportable/csv_column.rb, line 14
def format(result)
  return formatted_result(result) if respond_to?(type)
  return default_value if use_default?(result)
  result
end

Private Instance Methods

after_init(args = {}) click to toggle source
# File lib/lp_csv_exportable/csv_column.rb, line 22
def after_init(args = {})
  # hook for subclasses
end
formatted_result(result) click to toggle source
# File lib/lp_csv_exportable/csv_column.rb, line 30
def formatted_result(result)
  formatted = send(type, result)
  return default_value if use_default?(formatted)
  formatted
end
use_default?(result) click to toggle source
# File lib/lp_csv_exportable/csv_column.rb, line 26
def use_default?(result)
  default_value.present? && result.nil?
end