Module: RailsExcelReporter::Styling

Included in:
Base
Defined in:
lib/rails_excel_reporter/styling.rb

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



3
4
5
# File 'lib/rails_excel_reporter/styling.rb', line 3

def self.included(base)
  base.extend ClassMethods
end

Instance Method Details

#apply_style(worksheet, cell_range, style_name) ⇒ Object



23
24
25
26
27
28
# File 'lib/rails_excel_reporter/styling.rb', line 23

def apply_style(worksheet, cell_range, style_name)
  style_options = self.class.styles[style_name.to_sym] || {}
  return unless style_options.any?

  worksheet.add_style cell_range, style_options
end

#build_caxlsx_style(style_options) ⇒ Object



30
31
32
33
34
# File 'lib/rails_excel_reporter/styling.rb', line 30

def build_caxlsx_style(style_options)
  caxlsx_options = {}
  apply_style_mappings caxlsx_options, style_options
  caxlsx_options
end

#get_column_style(column_name) ⇒ Object



62
63
64
65
66
# File 'lib/rails_excel_reporter/styling.rb', line 62

def get_column_style(column_name)
  column_style = self.class.styles[column_name.to_sym] || {}
  default_style = RailsExcelReporter.config.default_styles[:cell] || {}
  deep_merge_hashes default_style, column_style
end

#get_header_styleObject



68
69
70
71
72
# File 'lib/rails_excel_reporter/styling.rb', line 68

def get_header_style
  header_style = self.class.styles[:header] || {}
  default_style = RailsExcelReporter.config.default_styles[:header] || {}
  deep_merge_hashes default_style, header_style
end

#merge_styles(*style_names) ⇒ Object



53
54
55
56
57
58
59
60
# File 'lib/rails_excel_reporter/styling.rb', line 53

def merge_styles(*style_names)
  merged = {}
  style_names.each do |style_name|
    style_options = self.class.styles[style_name.to_sym] || {}
    merged = deep_merge_hashes merged, style_options
  end
  merged
end