Class: FieldPixxxitter

Inherits:
Object
  • Object
show all
Defined in:
lib/pixxxer/field_pixxxitter.rb

Instance Method Summary collapse

Constructor Details

#initialize(field) ⇒ FieldPixxxitter

Returns a new instance of FieldPixxxitter.



2
3
4
# File 'lib/pixxxer/field_pixxxitter.rb', line 2

def initialize(field)
	@field = field
end

Instance Method Details

#add_to_record(record, field) ⇒ Object



9
10
11
12
# 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) ⇒ Object



25
26
27
28
# 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) ⇒ Object



20
21
22
23
24
# 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) ⇒ Object



16
17
18
19
# File 'lib/pixxxer/field_pixxxitter.rb', line 16

def inject_field(record, field)
	record[@field.position, field.length] = field
	record
end

#pad_field(field) ⇒ Object



37
38
39
40
41
42
43
44
# 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) ⇒ Object



5
6
7
8
# 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) ⇒ Object



29
30
31
32
33
34
35
36
# 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) ⇒ Object



13
14
15
# File 'lib/pixxxer/field_pixxxitter.rb', line 13

def widen_record(record)
	record.ljust @field.position
end