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