class FieldPixxxitter
Public Class Methods
new(field)
click to toggle source
# File lib/pixxxer/field_pixxxitter.rb, line 2 def initialize(field) @field = field end
Public Instance Methods
add_to_record(record, field)
click to toggle source
# File lib/pixxxer/field_pixxxitter.rb, line 9 def add_to_record(record, field) record = widen_record record inject_field record, field end
coerce_field(field)
click to toggle source
# File lib/pixxxer/field_pixxxitter.rb, line 25 def coerce_field(field) field = (field.to_f * 10 ** @field.precision).to_i if @field.type == Float field.to_s end
fetch_field(hash)
click to toggle source
# File lib/pixxxer/field_pixxxitter.rb, line 20 def fetch_field(hash) field = coerce_field hash[@field.name].to_s field = pad_field field shorten_field field end
inject_field(record, field)
click to toggle source
# File lib/pixxxer/field_pixxxitter.rb, line 16 def inject_field(record, field) record[@field.position, field.length] = field record end
pad_field(field)
click to toggle source
# File lib/pixxxer/field_pixxxitter.rb, line 37 def pad_field(field) if @field.type == Integer || @field.type == Float return field.rjust(@field.width, '0') unless @field.width.nil? else return field.ljust(@field.width, ' ') unless @field.width.nil? end field end
pixxxit(hash, record)
click to toggle source
# File lib/pixxxer/field_pixxxitter.rb, line 5 def pixxxit(hash, record) field = fetch_field hash add_to_record record, field end
shorten_field(field)
click to toggle source
# File lib/pixxxer/field_pixxxitter.rb, line 29 def shorten_field(field) if @field.type == Integer || @field.type == Float return field[field.length - @field.width, @field.width] unless @field.width.nil? else return field[0, @field.width] unless @field.width.nil? end field end
widen_record(record)
click to toggle source
# File lib/pixxxer/field_pixxxitter.rb, line 13 def widen_record(record) record.ljust @field.position end