Class: Markdownplus::Sql::SqlHandler

Inherits:
Handler
  • Object
show all
Defined in:
lib/markdownplus/sql.rb

Instance Method Summary collapse

Instance Method Details

#execute(input, parameters, variables, warnings, errors) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/markdownplus/sql.rb', line 7

def execute(input, parameters, variables, warnings, errors)
  output = nil
  if parameters==nil
    errors << "No connection url given"
  elsif parameters.count == 0
    errors << "No connection url given"
  else
    warnings << "More than one parameter given" if parameters.count > 1
    if(input==nil || input.strip.empty?)
      errors << "No sql statement given"
    else
      url = parameters.first
      begin
        database = Sequel.connect(url)
        dataset = database[input]
        i = 0
        output = CSV.generate do |csv|
          dataset.each do |row|
            if i==0
              csv << row.collect { |k,v| k }
            end
            i += 1
            csv << row.collect { |k,v| v }
          end
        end
      rescue => e
        output = input
        errors << "Error opening [#{e.message}]"
      end
    end
  end
  output
end