class SPED2SQL::SQL::Parser
Constants
- FOOTER
- HEADER
Attributes
dados[R]
tbl_prefix[R]
tbl_sufix[R]
Public Class Methods
new(dados, options = {})
click to toggle source
# File lib/sped2sql/sql/parser.rb, line 24 def initialize(dados, options = {}) @tbl_prefix = options[:tbl_prefix] || '' @tbl_sufix = options[:tbl_sufix] || '' @dados = dados self end
to_sql(dados, options = {})
click to toggle source
# File lib/sped2sql/sql/parser.rb, line 47 def to_sql(dados, options = {}) new(dados, options).parse! end
Public Instance Methods
parse!()
click to toggle source
# File lib/sped2sql/sql/parser.rb, line 31 def parse! output = [] inserts_agrupados.each do |registro, inserts| tabela = nome_tabela(registro) output << "LOCK TABLES `#{ tabela }` WRITE;" output << "/*!40000 ALTER TABLE `#{ tabela }` DISABLE KEYS */;" output << "INSERT INTO #{ tabela } VALUES ('',#{ inserts.join("),('',") });" output << "/*!40000 ALTER TABLE `#{ tabela }` ENABLE KEYS */;" output << "UNLOCK TABLES;" end "#{ HEADER }#{ output.join("\r\n") }\r\n#{ FOOTER }" end
Private Instance Methods
inserts_agrupados()
click to toggle source
# File lib/sped2sql/sql/parser.rb, line 54 def inserts_agrupados inserts = Hash.new { |k, v| k[v] = [] } dados.each do |linha| inserts[linha[0]] << linha[0..-1].map { |r| "'#{r}'" }.join(',') end inserts end
nome_tabela(tabela)
click to toggle source
# File lib/sped2sql/sql/parser.rb, line 62 def nome_tabela(tabela) "#{ @tbl_prefix }#{ tabela }#{ @tbl_sufix }" end