Class: ActiveReport::Array

Inherits:
Base
  • Object
show all
Defined in:
lib/active_report/array.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

evaluate

Constructor Details

#initialize(datum, headers: nil, options: {}) ⇒ Array

Returns a new instance of Array.



5
6
7
8
9
# File 'lib/active_report/array.rb', line 5

def initialize(datum, headers: nil, options: {})
  @datum = datum
  @headers = headers
  @options = duplicate_options.merge!(options)
end

Instance Attribute Details

#datumObject

Returns the value of attribute datum.



3
4
5
# File 'lib/active_report/array.rb', line 3

def datum
  @datum
end

#headersObject

Returns the value of attribute headers.



3
4
5
# File 'lib/active_report/array.rb', line 3

def headers
  @headers
end

#optionsObject

Returns the value of attribute options.



3
4
5
# File 'lib/active_report/array.rb', line 3

def options
  @options
end

Class Method Details

.export(datum, headers: nil, options: {}) ⇒ Object



11
12
13
# File 'lib/active_report/array.rb', line 11

def self.export(datum, headers: nil, options: {})
  new(datum, headers: headers, options: options).export
end

.import(datum, headers: nil, options: {}) ⇒ Object



15
16
17
# File 'lib/active_report/array.rb', line 15

def self.import(datum, headers: nil, options: {})
  new(datum, headers: headers, options: options).import
end

Instance Method Details

#exportObject



19
20
21
22
23
24
25
26
# File 'lib/active_report/array.rb', line 19

def export
  @datum = munge_first(@datum)

  CSV.generate(@options) do |csv|
    csv << @headers unless @headers.nil?
    @datum.lazy.each { |cell| csv << cell }
  end
end

#importObject



28
29
30
31
32
33
34
35
36
37
38
# File 'lib/active_report/array.rb', line 28

def import
  datum = merge(@headers)

  CSV.foreach(@datum, @options) do |data|
    data = encode_to_utf8(data) if force_encoding?
    datum.push(data)
  end

  datum = datum.flatten if datum.size < 2
  metatransform(datum)
end