class ReportLogic::Field

Attributes

config[R]
type[R]

Public Class Methods

new(name, value = nil, **config) click to toggle source
# File lib/report_logic/field.rb, line 5
def initialize(name, value = nil, **config)
  @name = name
  @value = value
  @type = config.delete :type
  @decorate_name = config.delete :decorate_name
  @decorate_value = config.delete :decorate_value
  @config = config
end

Public Instance Methods

guess_type() click to toggle source
# File lib/report_logic/field.rb, line 26
def guess_type
  @value.class
end
name() click to toggle source
# File lib/report_logic/field.rb, line 14
def name
  apply_decorators @name, @decorate_name
end
value() click to toggle source
# File lib/report_logic/field.rb, line 18
def value
  apply_decorators @value, @decorate_value
end

Private Instance Methods

apply_decorators(str, decorators) click to toggle source
# File lib/report_logic/field.rb, line 32
def apply_decorators(str, decorators)
  return str unless decorators
  if decorators.respond_to? :each
    decorators.each do |dec|
      str = dec.call str
    end
    return str
  end
  decorators.call str
end