Class: SequencescapeExcel::Worksheet::RangesWorksheet

Inherits:
Base
  • Object
show all
Defined in:
app/sequencescape_excel/sequencescape_excel/worksheet/ranges_worksheet.rb

Overview

Ranges worksheet

Instance Attribute Summary

Attributes inherited from Base

#axlsx_worksheet, #columns, #name, #password, #ranges, #workbook

Instance Method Summary collapse

Methods inherited from Base

#add_row, #add_rows, #initialize, #insert_axlsx_worksheet, #protect

Constructor Details

This class inherits a constructor from SequencescapeExcel::Worksheet::Base

Instance Method Details

#add_rangesObject

Adds ranges on the worksheet. One range one row.



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'app/sequencescape_excel/sequencescape_excel/worksheet/ranges_worksheet.rb', line 23

 do
  # NOTE: The following attribute is not required for Microarray Genotyping.
  # I think this might be broken and suggests that there should be separate classes for project: one for
  # next-gen sequencing that includes this attribute in it's metadata, and one for microarray genotyping
  # that doesn't.
  include ProjectManager::Associations
  include BudgetDivision::Associations

  custom_attribute(:project_cost_code, required: true)
  custom_attribute(:funding_comments)
  custom_attribute(:collaborators)
  custom_attribute(:external_funding_source)
  custom_attribute(:sequencing_budget_cost_centre)
  custom_attribute(:project_funding_model, in: PROJECT_FUNDING_MODELS)
  custom_attribute(:gt_committee_tracking_id)

  before_validation do |record|
    record.project_cost_code = nil if record.project_cost_code.blank?
    record.project_funding_model = nil if record.project_funding_model.blank?
  end
end

#create_worksheetObject

Using axlsx worksheet creates worksheet with all the ranges listed on worksheet. Also updates ranges with absolute reference (adds worksheet name to ranges references, i.e. 'Ranges!$A$5:$F$5'), so that the ranges could be passed in and used in data worksheet (data validations and conditional formattings use ranges absolute references in formulas).



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'app/sequencescape_excel/sequencescape_excel/worksheet/ranges_worksheet.rb', line 15

 do
  # NOTE: The following attribute is not required for Microarray Genotyping.
  # I think this might be broken and suggests that there should be separate classes for project: one for
  # next-gen sequencing that includes this attribute in it's metadata, and one for microarray genotyping
  # that doesn't.
  include ProjectManager::Associations
  include BudgetDivision::Associations

  custom_attribute(:project_cost_code, required: true)
  custom_attribute(:funding_comments)
  custom_attribute(:collaborators)
  custom_attribute(:external_funding_source)
  custom_attribute(:sequencing_budget_cost_centre)
  custom_attribute(:project_funding_model, in: PROJECT_FUNDING_MODELS)
  custom_attribute(:gt_committee_tracking_id)

  before_validation do |record|
    record.project_cost_code = nil if record.project_cost_code.blank?
    record.project_funding_model = nil if record.project_funding_model.blank?
  end
end