Class: Extract::Parser
- Includes:
- FromHash
- Defined in:
- lib/extract/parser.rb
Instance Attribute Summary collapse
-
#sheet ⇒ Object
Returns the value of attribute sheet.
-
#str ⇒ Object
Returns the value of attribute str.
Instance Method Summary collapse
Instance Attribute Details
#sheet ⇒ Object
Returns the value of attribute sheet.
36 37 38 |
# File 'lib/extract/parser.rb', line 36 def sheet @sheet end |
#str ⇒ Object
Returns the value of attribute str.
36 37 38 |
# File 'lib/extract/parser.rb', line 36 def str @str end |
Instance Method Details
#deps ⇒ Object
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_value ⇒ Object
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 |
#result ⇒ Object
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 |