psql 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +17 -0
- data/.pryrc +2 -0
- data/.wrong +1 -0
- data/Gemfile +4 -0
- data/Guardfile +6 -0
- data/LICENSE.txt +22 -0
- data/README.md +57 -0
- data/Rakefile +30 -0
- data/lib/psql.rb +25 -0
- data/lib/psql/column.rb +32 -0
- data/lib/psql/database.rb +56 -0
- data/lib/psql/table.rb +41 -0
- data/lib/psql/version.rb +3 -0
- data/psql.gemspec +26 -0
- data/test/fixtures/database.sql +13 -0
- data/test/fixtures/database.yml +6 -0
- data/test/psql/column_test.rb +39 -0
- data/test/psql/database_test.rb +26 -0
- data/test/psql/table_test.rb +26 -0
- data/test/test_helper.rb +23 -0
- metadata +152 -0
data/.gitignore
ADDED
data/.pryrc
ADDED
data/.wrong
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
color
|
data/Gemfile
ADDED
data/Guardfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2013 Jeremy Ruppel
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
# PSQL
|
2
|
+
|
3
|
+
A simple ruby library for consuming the `psql` command. Created in order to
|
4
|
+
simply and quickly describe a PostgreSQL table without having to go through
|
5
|
+
ActiveRecord, so that's basically all you can do right now.
|
6
|
+
|
7
|
+
## Installation
|
8
|
+
|
9
|
+
Add this line to your application's Gemfile:
|
10
|
+
|
11
|
+
gem 'psql'
|
12
|
+
|
13
|
+
And then execute:
|
14
|
+
|
15
|
+
$ bundle
|
16
|
+
|
17
|
+
Or install it yourself as:
|
18
|
+
|
19
|
+
$ gem install psql
|
20
|
+
|
21
|
+
## Usage
|
22
|
+
|
23
|
+
If you have the following schema in a database named `blog`:
|
24
|
+
|
25
|
+
Table "public.posts"
|
26
|
+
| Column | Type | Modifiers |
|
27
|
+
|--------------|-----------------------|-----------|
|
28
|
+
| id | integer | not null |
|
29
|
+
| title | character varying(55) | |
|
30
|
+
| body | text | |
|
31
|
+
|
32
|
+
``` ruby
|
33
|
+
db = PSQL::Database.new 'blog' # => instance of PSQL::Database
|
34
|
+
db.table( 'posts' ) # => instance of PSQL::Table
|
35
|
+
db.table( 'posts' ).column( 'title' ) # => instance of PSQL::Column
|
36
|
+
db.table( 'posts' ).column( 'title' ).type # => :string
|
37
|
+
|
38
|
+
# And the grand finale:
|
39
|
+
|
40
|
+
PSQL[ 'blog' ][ 'posts' ][ 'title' ].type # => :string
|
41
|
+
```
|
42
|
+
|
43
|
+
**PSQL** has no dependency on rails, but it can try and auto-detect your
|
44
|
+
rails database name if `RAILS_ENV` is set:
|
45
|
+
|
46
|
+
``` ruby
|
47
|
+
ENV[ 'RAILS_ENV' ] # => "development"
|
48
|
+
PSQL::Database.new :rails # => attempts to locate database.yml and determine the database name
|
49
|
+
```
|
50
|
+
|
51
|
+
## Contributing
|
52
|
+
|
53
|
+
1. Fork it
|
54
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
55
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
56
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
57
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'bundler/gem_tasks'
|
2
|
+
require 'rake/testtask'
|
3
|
+
|
4
|
+
Rake::TestTask.new do |t|
|
5
|
+
t.libs << 'test'
|
6
|
+
t.pattern = 'test/**/*_test.rb'
|
7
|
+
end
|
8
|
+
|
9
|
+
task :default => :test
|
10
|
+
|
11
|
+
namespace :db do
|
12
|
+
|
13
|
+
desc 'Create the test database'
|
14
|
+
task :create do
|
15
|
+
sh 'createdb psql_gem_test'
|
16
|
+
end
|
17
|
+
|
18
|
+
desc 'Migrate the test database'
|
19
|
+
task :migrate do
|
20
|
+
sh 'psql --file ./test/fixtures/database.sql psql_gem_test'
|
21
|
+
end
|
22
|
+
|
23
|
+
task :setup => [ :create, :migrate ]
|
24
|
+
task :reset => [ :drop, :setup ]
|
25
|
+
|
26
|
+
desc 'Drop the test database'
|
27
|
+
task :drop do
|
28
|
+
sh 'dropdb psql_gem_test'
|
29
|
+
end
|
30
|
+
end
|
data/lib/psql.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'psql/version'
|
2
|
+
|
3
|
+
module PSQL
|
4
|
+
autoload :Column, 'psql/column'
|
5
|
+
autoload :Database, 'psql/database'
|
6
|
+
autoload :Table, 'psql/table'
|
7
|
+
|
8
|
+
def []( name )
|
9
|
+
Database.new name
|
10
|
+
end
|
11
|
+
module_function :[]
|
12
|
+
end
|
13
|
+
|
14
|
+
require 'cocaine'
|
15
|
+
require 'csv'
|
16
|
+
|
17
|
+
def PSQL( command, params )
|
18
|
+
cmd = Cocaine::CommandLine.new 'psql', '-tAc "%s" :dbname' % [ command ]
|
19
|
+
|
20
|
+
if headers = params.delete( :headers )
|
21
|
+
CSV.parse cmd.run( params ), :headers => headers, :col_sep => '|'
|
22
|
+
else
|
23
|
+
cmd.run params
|
24
|
+
end
|
25
|
+
end
|
data/lib/psql/column.rb
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
module PSQL
|
2
|
+
class Column
|
3
|
+
|
4
|
+
##
|
5
|
+
#
|
6
|
+
def initialize( name, raw_type, modifiers=nil )
|
7
|
+
@name, @raw_type, @modifiers = name, raw_type, modifiers
|
8
|
+
end
|
9
|
+
attr_reader :name, :raw_type, :modifiers
|
10
|
+
|
11
|
+
##
|
12
|
+
#
|
13
|
+
def type
|
14
|
+
case raw_type
|
15
|
+
when 'integer'
|
16
|
+
:integer
|
17
|
+
when 'double precision'
|
18
|
+
:float
|
19
|
+
when 'boolean'
|
20
|
+
:boolean
|
21
|
+
when /^character varying/
|
22
|
+
:string
|
23
|
+
when 'text'
|
24
|
+
:text
|
25
|
+
when 'date'
|
26
|
+
:date
|
27
|
+
when 'timestamp without time zone'
|
28
|
+
:datetime
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
module PSQL
|
2
|
+
class Database
|
3
|
+
|
4
|
+
##
|
5
|
+
#
|
6
|
+
def initialize( name )
|
7
|
+
@name = case name
|
8
|
+
when String
|
9
|
+
name
|
10
|
+
when :rails
|
11
|
+
find_rails_database_name
|
12
|
+
end
|
13
|
+
end
|
14
|
+
attr_reader :name
|
15
|
+
|
16
|
+
##
|
17
|
+
# Finds a database object by name. Objects are tables, views, or
|
18
|
+
# sequences.
|
19
|
+
def object( object_name )
|
20
|
+
object = objects.find do |obj|
|
21
|
+
obj[ 'name' ] == object_name
|
22
|
+
end
|
23
|
+
|
24
|
+
if !object
|
25
|
+
raise "Database #{name} does not have an object named '#{object_name}'."
|
26
|
+
end
|
27
|
+
|
28
|
+
klass = PSQL.const_get object[ 'type' ].capitalize
|
29
|
+
klass.new object[ 'name' ], name
|
30
|
+
end
|
31
|
+
alias :[] :object
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
##
|
36
|
+
# Lists all of the objects in this database. Objects are
|
37
|
+
# tables, views, and sequences.
|
38
|
+
def objects
|
39
|
+
PSQL '\d', :dbname => name, :headers => %w| schema name type owner |
|
40
|
+
end
|
41
|
+
|
42
|
+
##
|
43
|
+
#
|
44
|
+
def find_rails_database_name
|
45
|
+
require 'yaml'
|
46
|
+
|
47
|
+
raise(<<-EOS.strip) unless ENV[ 'RAILS_ENV' ]
|
48
|
+
Cannot automatically determine rails database name because RAILS_ENV is not set.
|
49
|
+
EOS
|
50
|
+
|
51
|
+
file = `find . -name database.yml`.chomp
|
52
|
+
hash = YAML.load_file( file )
|
53
|
+
hash[ ENV[ 'RAILS_ENV' ] ][ 'database' ]
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
data/lib/psql/table.rb
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
module PSQL
|
2
|
+
class Table
|
3
|
+
|
4
|
+
##
|
5
|
+
#
|
6
|
+
def initialize( name, dbname )
|
7
|
+
@name, @dbname = name, dbname
|
8
|
+
end
|
9
|
+
attr_reader :name, :dbname
|
10
|
+
|
11
|
+
##
|
12
|
+
#
|
13
|
+
def column( column_name )
|
14
|
+
column = columns.find do |col|
|
15
|
+
col[ 'name' ] == column_name
|
16
|
+
end
|
17
|
+
|
18
|
+
if !column
|
19
|
+
raise "Table #{name} does not have a column named '#{column_name}'."
|
20
|
+
end
|
21
|
+
|
22
|
+
Column.new column[ 'name' ], column[ 'type' ], column[ 'modifiers' ]
|
23
|
+
end
|
24
|
+
alias :[] :column
|
25
|
+
|
26
|
+
def column_names
|
27
|
+
columns.map { |col| col[ 'name' ] }
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
##
|
33
|
+
#
|
34
|
+
def columns
|
35
|
+
@columns ||= PSQL '\d :name',
|
36
|
+
:name => name,
|
37
|
+
:dbname => dbname,
|
38
|
+
:headers => %w| name type modifiers |
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
data/lib/psql/version.rb
ADDED
data/psql.gemspec
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'psql/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |gem|
|
7
|
+
gem.name = "psql"
|
8
|
+
gem.version = PSQL::VERSION
|
9
|
+
gem.authors = ["Jeremy Ruppel"]
|
10
|
+
gem.email = ["jeremy.ruppel@gmail.com"]
|
11
|
+
gem.description = %q{A simple ruby library for consuming the `psql` command.}
|
12
|
+
gem.summary = %q{A simple ruby library for consuming the `psql` command.}
|
13
|
+
gem.homepage = 'https://github.com/jeremyruppel/psql'
|
14
|
+
|
15
|
+
gem.files = `git ls-files`.split($/)
|
16
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
17
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
|
+
gem.require_paths = ["lib"]
|
19
|
+
|
20
|
+
gem.add_dependency 'cocaine', '0.5.1'
|
21
|
+
|
22
|
+
gem.add_development_dependency 'wrong', '0.7.0'
|
23
|
+
gem.add_development_dependency 'pry', '0.9.12'
|
24
|
+
gem.add_development_dependency 'guard-minitest', '0.5.0'
|
25
|
+
gem.add_development_dependency 'rb-fsevent', '~> 0.9'
|
26
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
-- ===================================================================
|
2
|
+
-- = Name: posts; Type: TABLE; Schema: public; Owner: 0; Tablespace: =
|
3
|
+
-- ===================================================================
|
4
|
+
|
5
|
+
CREATE TABLE posts (
|
6
|
+
id integer NOT NULL,
|
7
|
+
title character varying(255),
|
8
|
+
body text,
|
9
|
+
created_at timestamp without time zone,
|
10
|
+
published_on date,
|
11
|
+
published boolean,
|
12
|
+
rating double precision
|
13
|
+
);
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class ColumnTest < MiniTest::Unit::TestCase
|
4
|
+
|
5
|
+
def test_stores_attributes
|
6
|
+
col = PSQL::Column.new 'foo', 'bar', 'baz'
|
7
|
+
assert { col.name == 'foo' }
|
8
|
+
assert { col.raw_type == 'bar' }
|
9
|
+
assert { col.modifiers == 'baz' }
|
10
|
+
end
|
11
|
+
def test_integer_type
|
12
|
+
col = PSQL::Column.new 'id', 'integer'
|
13
|
+
assert { col.type == :integer }
|
14
|
+
end
|
15
|
+
def test_float_type
|
16
|
+
col = PSQL::Column.new 'rating', 'double precision'
|
17
|
+
assert { col.type == :float }
|
18
|
+
end
|
19
|
+
def test_boolean_type
|
20
|
+
col = PSQL::Column.new 'published', 'boolean'
|
21
|
+
assert { col.type == :boolean }
|
22
|
+
end
|
23
|
+
def test_string_type
|
24
|
+
col = PSQL::Column.new 'title', 'character varying(255)'
|
25
|
+
assert { col.type == :string }
|
26
|
+
end
|
27
|
+
def test_text_type
|
28
|
+
col = PSQL::Column.new 'body', 'text'
|
29
|
+
assert { col.type == :text }
|
30
|
+
end
|
31
|
+
def test_datetime_type
|
32
|
+
col = PSQL::Column.new 'created_at', 'timestamp without time zone'
|
33
|
+
assert { col.type == :datetime }
|
34
|
+
end
|
35
|
+
def test_date_type
|
36
|
+
col = PSQL::Column.new 'published_on', 'date'
|
37
|
+
assert { col.type == :date }
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class DatabaseTest < MiniTest::Unit::TestCase
|
4
|
+
|
5
|
+
def test_stores_database_name
|
6
|
+
db = PSQL::Database.new 'psql_gem_test'
|
7
|
+
assert { db.name == 'psql_gem_test' }
|
8
|
+
end
|
9
|
+
def test_reads_rails_database_config
|
10
|
+
ENV[ 'RAILS_ENV' ] = 'test'
|
11
|
+
db = PSQL::Database.new :rails
|
12
|
+
assert { db.name == 'psql_gem_test' }
|
13
|
+
end
|
14
|
+
def test_object_raises_error_if_not_found
|
15
|
+
db = PSQL::Database.new 'psql_gem_test'
|
16
|
+
assert { rescuing { db.object( 'foo' ) }.message =~ /Database psql_gem_test does not have an object named 'foo'./ }
|
17
|
+
end
|
18
|
+
def test_object_returns_table_object
|
19
|
+
db = PSQL::Database.new 'psql_gem_test'
|
20
|
+
assert { db.object( 'posts' ).is_a?( PSQL::Table ) }
|
21
|
+
end
|
22
|
+
def test_hash_access_returns_table_object
|
23
|
+
db = PSQL::Database.new 'psql_gem_test'
|
24
|
+
assert { db[ 'posts' ].is_a?( PSQL::Table ) }
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class TableTest < MiniTest::Unit::TestCase
|
4
|
+
|
5
|
+
def test_stores_name_and_database_name
|
6
|
+
table = PSQL::Table.new 'foo', 'bar'
|
7
|
+
assert { table.name == 'foo' }
|
8
|
+
assert { table.dbname == 'bar' }
|
9
|
+
end
|
10
|
+
def test_column_raises_error_if_not_found
|
11
|
+
table = PSQL::Table.new 'posts', 'psql_gem_test'
|
12
|
+
assert { rescuing { table.column( 'foo' ) }.message =~ /Table posts does not have a column named 'foo'./ }
|
13
|
+
end
|
14
|
+
def test_column_returns_column_object
|
15
|
+
table = PSQL::Table.new 'posts', 'psql_gem_test'
|
16
|
+
assert { table.column( 'title' ).is_a?( PSQL::Column ) }
|
17
|
+
end
|
18
|
+
def test_hash_access_returns_column_object
|
19
|
+
table = PSQL::Table.new 'posts', 'psql_gem_test'
|
20
|
+
assert { table[ 'title' ].is_a?( PSQL::Column ) }
|
21
|
+
end
|
22
|
+
def test_column_names
|
23
|
+
table = PSQL::Table.new 'posts', 'psql_gem_test'
|
24
|
+
assert { table.column_names == %w| id title body created_at published_on published rating | }
|
25
|
+
end
|
26
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require 'wrong/adapters/minitest'
|
3
|
+
require 'psql'
|
4
|
+
|
5
|
+
# class DatabaseTestRunner < MiniTest::Unit
|
6
|
+
#
|
7
|
+
# def _run_suites(*)
|
8
|
+
# before_suite
|
9
|
+
# super
|
10
|
+
# ensure
|
11
|
+
# after_suite
|
12
|
+
# end
|
13
|
+
#
|
14
|
+
# def before_suite
|
15
|
+
# `createdb psql_gem_test`
|
16
|
+
# end
|
17
|
+
#
|
18
|
+
# def after_suite
|
19
|
+
# `dropdb psql_gem_test`
|
20
|
+
# end
|
21
|
+
# end
|
22
|
+
#
|
23
|
+
# MiniTest::Unit.runner = DatabaseTestRunner.new
|
metadata
ADDED
@@ -0,0 +1,152 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: psql
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Jeremy Ruppel
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-04-09 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: cocaine
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - '='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 0.5.1
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - '='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 0.5.1
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: wrong
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - '='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 0.7.0
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - '='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 0.7.0
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: pry
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - '='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 0.9.12
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - '='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.9.12
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: guard-minitest
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - '='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 0.5.0
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - '='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 0.5.0
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: rb-fsevent
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ~>
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0.9'
|
86
|
+
type: :development
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ~>
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0.9'
|
94
|
+
description: A simple ruby library for consuming the `psql` command.
|
95
|
+
email:
|
96
|
+
- jeremy.ruppel@gmail.com
|
97
|
+
executables: []
|
98
|
+
extensions: []
|
99
|
+
extra_rdoc_files: []
|
100
|
+
files:
|
101
|
+
- .gitignore
|
102
|
+
- .pryrc
|
103
|
+
- .wrong
|
104
|
+
- Gemfile
|
105
|
+
- Guardfile
|
106
|
+
- LICENSE.txt
|
107
|
+
- README.md
|
108
|
+
- Rakefile
|
109
|
+
- lib/psql.rb
|
110
|
+
- lib/psql/column.rb
|
111
|
+
- lib/psql/database.rb
|
112
|
+
- lib/psql/table.rb
|
113
|
+
- lib/psql/version.rb
|
114
|
+
- psql.gemspec
|
115
|
+
- test/fixtures/database.sql
|
116
|
+
- test/fixtures/database.yml
|
117
|
+
- test/psql/column_test.rb
|
118
|
+
- test/psql/database_test.rb
|
119
|
+
- test/psql/table_test.rb
|
120
|
+
- test/test_helper.rb
|
121
|
+
homepage: https://github.com/jeremyruppel/psql
|
122
|
+
licenses: []
|
123
|
+
post_install_message:
|
124
|
+
rdoc_options: []
|
125
|
+
require_paths:
|
126
|
+
- lib
|
127
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
128
|
+
none: false
|
129
|
+
requirements:
|
130
|
+
- - ! '>='
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '0'
|
133
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
134
|
+
none: false
|
135
|
+
requirements:
|
136
|
+
- - ! '>='
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
requirements: []
|
140
|
+
rubyforge_project:
|
141
|
+
rubygems_version: 1.8.23
|
142
|
+
signing_key:
|
143
|
+
specification_version: 3
|
144
|
+
summary: A simple ruby library for consuming the `psql` command.
|
145
|
+
test_files:
|
146
|
+
- test/fixtures/database.sql
|
147
|
+
- test/fixtures/database.yml
|
148
|
+
- test/psql/column_test.rb
|
149
|
+
- test/psql/database_test.rb
|
150
|
+
- test/psql/table_test.rb
|
151
|
+
- test/test_helper.rb
|
152
|
+
has_rdoc:
|