Class: Extract::Parser

Inherits:
Object show all
Includes:
FromHash
Defined in:
lib/extract/parser.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#sheetObject

Returns the value of attribute sheet.



36
37
38
# File 'lib/extract/parser.rb', line 36

def sheet
  @sheet
end

#strObject

Returns the value of attribute str.



36
37
38
# File 'lib/extract/parser.rb', line 36

def str
  @str
end

Instance Method Details

#depsObject



59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/extract/parser.rb', line 59

def deps
  res = result
  res.root_sheet = sheet
  #raise res.meat.inspect unless res.meat.respond_to?(:deps)
  raise "can't parse #{str}" unless res
  res.meat.deps.flatten.uniq.map do |c|
    if c =~ /"/
      nil
    else
      c.gsub("$","")
    end
  end.select { |x| x }.sort.uniq
end

#excel_valueObject



52
53
54
55
56
57
# File 'lib/extract/parser.rb', line 52

def excel_value
  res = result
  raise "can't parse #{str}" unless res
  res.root_sheet = sheet
  res.meat.excel_value
end

#resultObject



38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/extract/parser.rb', line 38

def result
  p = FormulaParser.new
  res = p.parse(str.gsub(" ",""))
  if !res
    strs = []
    strs << p.failure_reason
    strs << p.failure_line
    strs << p.failure_column
    strs << "no result for #{str}"
    raise strs.join("\n")
  end
  res
end