Class: AbAdmin::Utils::CSVBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/ab_admin/utils/csv_builder.rb

Overview

CSVBuilder stores CSV configuration

Usage example:

csv_builder = CSVBuilder.new
csv_builder.column :id
csv_builder.column("Name") { |resource| resource.full_name }

csv_builder = CSVBuilder.new :separator => ";"
csv_builder.column :id

Defined Under Namespace

Classes: Column

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}, &block) ⇒ CSVBuilder

Returns a new instance of CSVBuilder.



31
32
33
34
35
# File 'lib/ab_admin/utils/csv_builder.rb', line 31

def initialize(options={}, &block)
  @columns = []
  @column_separator = options.delete(:separator)
  instance_eval &block if block_given?
end

Instance Attribute Details

#column_separatorObject (readonly)

Returns the value of attribute column_separator.



29
30
31
# File 'lib/ab_admin/utils/csv_builder.rb', line 29

def column_separator
  @column_separator
end

#columnsObject (readonly)

Returns the value of attribute columns.



29
30
31
# File 'lib/ab_admin/utils/csv_builder.rb', line 29

def columns
  @columns
end

Class Method Details

.default_for_resource(resource) ⇒ Object

Return a default CSVBuilder for a resource The CSVBuilder’s columns would be Id followed by this resource’s content columns



20
21
22
23
24
25
26
27
# File 'lib/ab_admin/utils/csv_builder.rb', line 20

def self.default_for_resource(resource)
  new.tap do |csv_builder|
    csv_builder.column(:id)
    resource.content_columns.each do |content_column|
      csv_builder.column(content_column.name.to_sym)
    end
  end
end

Instance Method Details

#column(name, &block) ⇒ Object

Add a column



38
39
40
# File 'lib/ab_admin/utils/csv_builder.rb', line 38

def column(name, &block)
  @columns << Column.new(name, block)
end