Class: CsvSerializer::Definition
- Inherits:
-
Object
- Object
- CsvSerializer::Definition
show all
- Defined in:
- lib/csv_serializer/definition.rb,
lib/csv_serializer/definition/all_column.rb
Overview
Represents definition of csv columns.
Defined Under Namespace
Classes: AllColumn, FunctionArray, FunctionHash, SymbolArray
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(records, array_or_hash = nil) ⇒ Definition
Returns a new instance of Definition.
18
19
20
21
|
# File 'lib/csv_serializer/definition.rb', line 18
def initialize(records, array_or_hash = nil)
@records = records
@array_or_hash = array_or_hash
end
|
Instance Attribute Details
#records ⇒ Object
Returns the value of attribute records.
4
5
6
|
# File 'lib/csv_serializer/definition.rb', line 4
def records
@records
end
|
Class Method Details
.build(array, hash, records) ⇒ Object
6
7
8
9
10
11
12
13
14
15
16
|
# File 'lib/csv_serializer/definition.rb', line 6
def self.build(array, hash, records)
if array.blank? && hash.blank?
AllColumn.new(records)
elsif array.blank?
FunctionHash.new(records, hash)
elsif array.all?(Symbol)
SymbolArray.new(records, array)
else
FunctionArray.new(records, array)
end
end
|
Instance Method Details
#definitions ⇒ Object
23
24
25
|
# File 'lib/csv_serializer/definition.rb', line 23
def definitions
@array_or_hash
end
|
35
36
37
|
# File 'lib/csv_serializer/definition.rb', line 35
def
column_names.map { records.human_attribute_name(_1) }
end
|
#serializer ⇒ Object
27
28
29
|
# File 'lib/csv_serializer/definition.rb', line 27
def serializer
Serializer.new(self)
end
|
#target_records ⇒ Object
31
32
33
|
# File 'lib/csv_serializer/definition.rb', line 31
def target_records
records.all
end
|