class ReplaceNamedReferencesAst

Attributes

default_sheet_name[RW]
named_references[RW]
table_data[RW]

Public Class Methods

new(named_references, default_sheet_name = nil, table_data = {}) click to toggle source
# File src/simplify/replace_named_references.rb, line 40
def initialize(named_references, default_sheet_name = nil, table_data = {})
  @named_references, @default_sheet_name, @table_data = named_references, default_sheet_name, table_data
  @named_references = NamedReferences.new(@named_references, @table_data) unless @named_references.is_a?(NamedReferences)
end

Public Instance Methods

map(ast) click to toggle source
# File src/simplify/replace_named_references.rb, line 45
def map(ast)
  return ast unless ast.is_a?(Array)
  case ast[0]
  when :sheet_reference; sheet_reference(ast)
  when :named_reference; named_reference(ast)
  end
  ast.each { |a| map(a) }
  ast
end
named_reference(ast) click to toggle source

Format [:named_reference, name]

# File src/simplify/replace_named_references.rb, line 64
def named_reference(ast)
  ast.replace(named_references.reference_for(default_sheet_name, ast[1]))
end
sheet_reference(ast) click to toggle source

Format [:sheet_reference, sheet, reference]

# File src/simplify/replace_named_references.rb, line 56
def sheet_reference(ast)
  reference = ast[2]
  return unless reference.first == :named_reference
  sheet = ast[1]
  ast.replace(named_references.reference_for(sheet, reference.last))
end