class MapColumnAndRowRangeAst
Attributes
default_worksheet_name[RW]
worksheet_dimensions[RW]
Public Class Methods
new(default_worksheet_name,worksheet_dimensions)
click to toggle source
# File src/rewrite/rewrite_whole_row_column_references_to_areas.rb, line 34 def initialize(default_worksheet_name,worksheet_dimensions) @default_worksheet_name, @worksheet_dimensions = default_worksheet_name, worksheet_dimensions @worksheet_names = [] end
Public Instance Methods
column_range(ast)
click to toggle source
Of the form [:column_range, start, finish]
# File src/rewrite/rewrite_whole_row_column_references_to_areas.rb, line 63 def column_range(ast) worksheet = @worksheet_names.last || @default_worksheet_name ast.replace([:area,*worksheet_dimensions[worksheet].map_column(ast[1],ast[2])]) end
map(ast)
click to toggle source
# File src/rewrite/rewrite_whole_row_column_references_to_areas.rb, line 39 def map(ast) return ast unless ast.is_a?(Array) case ast[0] when :sheet_reference; sheet_reference(ast) when :row_range; row_range(ast) when :column_range; column_range(ast) end ast.each {|e| map(e)} end
row_range(ast)
click to toggle source
Of the form [:row_range, start, finish]
# File src/rewrite/rewrite_whole_row_column_references_to_areas.rb, line 57 def row_range(ast) worksheet = @worksheet_names.last || @default_worksheet_name ast.replace([:area,*worksheet_dimensions[worksheet].map_row(ast[1],ast[2])]) end
sheet_reference(ast)
click to toggle source
Of the form [:sheet_reference, sheet_name, reference]
# File src/rewrite/rewrite_whole_row_column_references_to_areas.rb, line 50 def sheet_reference(ast) @worksheet_names.push(ast[1].to_sym) #FIXME: Remove once all symbols map(ast[2]) @worksheet_names.pop end