Module: ExcelSerializer::ObjectSerializer
- Extended by:
- ActiveSupport::Concern
- Includes:
- HeadersTranslator, Writer
- Defined in:
- lib/excel_serializer/object_serializer.rb
Instance Method Summary
collapse
#compute_headers, #headers
Instance Method Details
#excel_file ⇒ Object
63
64
65
66
67
68
69
70
71
72
73
|
# File 'lib/excel_serializer/object_serializer.rb', line 63
def excel_file
('Main')
method_name = 'each'
if resources.is_a?(ActiveRecord::Relation)
method_name = 'find_each'
end
resources.send(method_name) do |resource|
write('Main', single_resource_all_info(resource))
end
close_workbook
end
|
#initialize(resources, file_path: nil) ⇒ Object
54
55
56
57
58
59
60
61
|
# File 'lib/excel_serializer/object_serializer.rb', line 54
def initialize(resources, file_path: nil)
self.file_path = file_path
if resources.is_a?(ActiveRecord::Relation) or resources.is_a?(Array)
self.resources = resources
else
self.resources = [resources]
end
end
|
#object ⇒ Object
75
76
77
|
# File 'lib/excel_serializer/object_serializer.rb', line 75
def object
@object
end
|
#single_resource_all_info(resource) ⇒ Object
79
80
81
82
83
84
85
86
87
|
# File 'lib/excel_serializer/object_serializer.rb', line 79
def single_resource_all_info(resource)
all_info = single_resource_info(resource)
self.class.included_relations.each do |key, hash|
all_info += hash[:serializer].constantize.new(nil).single_resource_info(
resource.send(hash[:method])
)
end
all_info
end
|
#single_resource_info(resource) ⇒ Object
89
90
91
92
93
94
95
96
97
98
|
# File 'lib/excel_serializer/object_serializer.rb', line 89
def single_resource_info(resource)
self.object= resource
self.class.attributes_to_serialize.map do |attribute|
if self.respond_to?(attribute)
self
else
resource
end.send(attribute)
end
end
|