Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
A library for online SQL formatting
Ruby
Branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
examples
lib
spec
.gitignore
.yardopts
CHANGELOG
Gemfile
Gemfile.lock
LICENSE
Manifest
README.markdown
Rakefile

README.markdown

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)

Something went wrong with that request. Please try again.