SqlFormatterWebInterface
Description
This library lets you write this:
sql = <<-SQL
select user_id, count(*) as how_many from bboard where
not exists (select 1 from bboard_authorized_maintainers bam
where bam.user_id = bboard.user_id) and posting_time + 60 > sysdate
group by user_id order by how_many desc;
SQL
SqlFormatterWebInterface.format(sql) #=>
# SELECT user_id,
# count(*) AS how_many
# FROM bboard
# WHERE NOT EXISTS
# (SELECT 1
# FROM bboard_authorized_maintainers bam
# WHERE bam.user_id = bboard.user_id)
# AND posting_time + 60 > sysdate
# GROUP BY user_id
# ORDER BY how_many DESC;
or this:
sql = <<-SQL
insert into customer (id, name) values (1, 'John');
insert into customer (id, name) values (2, 'Jack');
insert into customer (id, name) values (3, 'Jane');
insert into customer (id, name) values (4, 'Jim');
insert into customer (id, name) values (5, 'Jerry');
insert into customer (id, name) values (1, 'Joe');
SQL
SqlFormatterWebInterface.format(sql) #=>
# INSERT INTO customer (id, name)
# VALUES (1,
# 'John');
#
# INSERT INTO customer (id, name)
# VALUES (2,
# 'Jack');
#
# INSERT INTO customer (id, name)
# VALUES (3,
# 'Jane');
#
# INSERT INTO customer (id, name)
# VALUES (4,
# 'Jim');
#
# INSERT INTO customer (id, name)
# VALUES (5,
# 'Jerry');
#
# INSERT INTO customer (id, name)
# VALUES (1,
# 'Joe');
or even this:
require 'sql_formatter_web_interface/to_formatted_sql'
'select * from foo join bar on val1 = val2 where id = 123;'.to_formatted_sql(:keyword_case => 'capitalize') #=>
# Select *
# From foo
# Join bar On val1 = val2
# Where id = 123;
Formatting happens making a request to an online SQL formatting service (http://sqlformat.appspot.com/format/ is the only supported at the moment).
Installation
gem install sql_formatter_web_interface
In your Gemfile:
gem 'sql_formatter_web_interface'
Or, if you want to use String#to_formatted_sql
:
gem 'sql_formatter_web_interface', :require => 'sql_formatter_web_interface/to_formatted_sql'
Usage
You can use SqlFormatterWebInterface::format(sql, options)
or either String#to_formatted_sql(options)
, where options
is an hash with the options supported by the web service (see http://sqlformat.appspot.com/api/)
License
MIT (see LICENSE)