arison 0.1.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.
- checksums.yaml +7 -0
- data/.document +3 -0
- data/.gitignore +8 -0
- data/.rspec +1 -0
- data/.travis.yml +16 -0
- data/.yardopts +1 -0
- data/ChangeLog.md +4 -0
- data/Gemfile +7 -0
- data/LICENSE.txt +20 -0
- data/README.md +45 -0
- data/Rakefile +40 -0
- data/arison.gemspec +33 -0
- data/bin/arison +6 -0
- data/lib/arison/cli.rb +69 -0
- data/lib/arison/core.rb +175 -0
- data/lib/arison/migration.rb +7 -0
- data/lib/arison/version.rb +4 -0
- data/lib/arison.rb +4 -0
- data/spec/arison_spec.rb +8 -0
- data/spec/cli_spec.rb +17 -0
- data/spec/core_spec.rb +15 -0
- data/spec/spec_helper.rb +24 -0
- metadata +237 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 1932f2c84e18288494dbb91ccd20c04964588202
|
4
|
+
data.tar.gz: 8c22039e2a3767b6ffe0633a841d3616247c1ee8
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: aa2f1c0a2b6ba015d36d0fb791158effaebfee59d15926277143a47e6fdc32316c72607887375c393ac2b57f5aaade6bb18609f150e75f2412e242089f36be9c
|
7
|
+
data.tar.gz: 39c8a16410afffef3164eea806d8d1e7bb3f5b572c93f45784cbac9fab654beea1441ab3e608b2bd6395b266e9edb3c7ae48d22e4a5d38e36e83588760b331cb
|
data/.document
ADDED
data/.gitignore
ADDED
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--colour --format documentation
|
data/.travis.yml
ADDED
data/.yardopts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--markup markdown --title "pq Documentation" --protected
|
data/ChangeLog.md
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2014 Hiroshi Toyama
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
# arison [](http://travis-ci.org/toyama0919/arison)
|
2
|
+
|
3
|
+
TODO: Summary
|
4
|
+
|
5
|
+
TODO: Description
|
6
|
+
|
7
|
+
## Examples
|
8
|
+
|
9
|
+
$ arison sample
|
10
|
+
#=> hoge
|
11
|
+
|
12
|
+
## Installation
|
13
|
+
|
14
|
+
Add this line to your application's Gemfile:
|
15
|
+
|
16
|
+
gem 'arison'
|
17
|
+
|
18
|
+
And then execute:
|
19
|
+
|
20
|
+
$ bundle
|
21
|
+
|
22
|
+
Or install it yourself as:
|
23
|
+
|
24
|
+
$ gem install arison
|
25
|
+
|
26
|
+
## Contributing
|
27
|
+
|
28
|
+
1. Fork it
|
29
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
30
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
31
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
32
|
+
5. Create new [Pull Request](../../pull/new/master)
|
33
|
+
|
34
|
+
## Information
|
35
|
+
|
36
|
+
* [Homepage](https://github.com/toyama0919/arison)
|
37
|
+
* [Issues](https://github.com/toyama0919/arison/issues)
|
38
|
+
* [Documentation](http://rubydoc.info/gems/arison/frames)
|
39
|
+
* [Email](mailto:toyama0919@gmail.com)
|
40
|
+
|
41
|
+
## Copyright
|
42
|
+
|
43
|
+
Copyright (c) 2014 Hiroshi Toyama
|
44
|
+
|
45
|
+
See [LICENSE.txt](../LICENSE.txt) for details.
|
data/Rakefile
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'rake'
|
5
|
+
|
6
|
+
begin
|
7
|
+
gem 'rubygems-tasks', '~> 0.2'
|
8
|
+
require 'rubygems/tasks'
|
9
|
+
|
10
|
+
Gem::Tasks.new
|
11
|
+
rescue LoadError => e
|
12
|
+
warn e.message
|
13
|
+
warn "Run `gem install rubygems-tasks` to install Gem::Tasks."
|
14
|
+
end
|
15
|
+
|
16
|
+
begin
|
17
|
+
gem 'rspec', '~> 2.4'
|
18
|
+
require 'rspec/core/rake_task'
|
19
|
+
|
20
|
+
RSpec::Core::RakeTask.new
|
21
|
+
rescue LoadError => e
|
22
|
+
task :spec do
|
23
|
+
abort "Please run `gem install rspec` to install RSpec."
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
task :test => :spec
|
28
|
+
task :default => :spec
|
29
|
+
|
30
|
+
begin
|
31
|
+
gem 'yard', '~> 0.8'
|
32
|
+
require 'yard'
|
33
|
+
|
34
|
+
YARD::Rake::YardocTask.new
|
35
|
+
rescue LoadError => e
|
36
|
+
task :yard do
|
37
|
+
abort "Please run `gem install yard` to install YARD."
|
38
|
+
end
|
39
|
+
end
|
40
|
+
task :doc => :yard
|
data/arison.gemspec
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
require File.expand_path('../lib/arison/version', __FILE__)
|
4
|
+
|
5
|
+
Gem::Specification.new do |gem|
|
6
|
+
gem.name = "arison"
|
7
|
+
gem.version = Arison::VERSION
|
8
|
+
gem.summary = %q{postgresql command line interface}
|
9
|
+
gem.description = %q{postgresql command line interface}
|
10
|
+
gem.license = "MIT"
|
11
|
+
gem.authors = ["Hiroshi Toyama"]
|
12
|
+
gem.email = "toyama0919@gmail.com"
|
13
|
+
gem.homepage = "https://github.com/toyama0919/arison"
|
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 'thor', '~> 0.19.1'
|
21
|
+
gem.add_dependency 'pg'
|
22
|
+
gem.add_dependency 'activesupport'
|
23
|
+
gem.add_dependency 'activerecord'
|
24
|
+
gem.add_dependency 'activerecord-import'
|
25
|
+
|
26
|
+
gem.add_development_dependency 'bundler'
|
27
|
+
gem.add_development_dependency 'pry', '~> 0.10.1'
|
28
|
+
gem.add_development_dependency 'rake', '~> 10.3.2'
|
29
|
+
gem.add_development_dependency 'rspec', '~> 2.4'
|
30
|
+
gem.add_development_dependency 'rubocop', '~> 0.24.1'
|
31
|
+
gem.add_development_dependency 'rubygems-tasks', '~> 0.2'
|
32
|
+
gem.add_development_dependency 'yard', '~> 0.8'
|
33
|
+
end
|
data/bin/arison
ADDED
data/lib/arison/cli.rb
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require "thor"
|
3
|
+
require 'yaml'
|
4
|
+
require 'json'
|
5
|
+
require 'pp'
|
6
|
+
|
7
|
+
module Arison
|
8
|
+
class CLI < Thor
|
9
|
+
|
10
|
+
map '--version' => :version
|
11
|
+
map '-s' => :query_inline
|
12
|
+
map '-f' => :query_file
|
13
|
+
map '-b' => :import
|
14
|
+
|
15
|
+
class_option :profile, aliases: '-p', type: :string, default: 'default', desc: 'profile by .database.yml'
|
16
|
+
class_option :pretty, aliases: '-P', type: :boolean, default: false, desc: 'pretty print'
|
17
|
+
class_option :config, aliases: '--config', type: :string, default: "#{ENV['HOME']}/.database.yml", desc: 'config file'
|
18
|
+
def initialize(args = [], options = {}, config = {})
|
19
|
+
super(args, options, config)
|
20
|
+
@global_options = config[:shell].base.options
|
21
|
+
@config = YAML.load_file(@global_options['config'])
|
22
|
+
profile = @config[@global_options['profile']]
|
23
|
+
@core = Core.new(profile)
|
24
|
+
end
|
25
|
+
|
26
|
+
desc 'query_inline', 'Sample task'
|
27
|
+
option :query, aliases: '-q', type: :string, required: true, desc: 'query'
|
28
|
+
def query_inline
|
29
|
+
puts_json @core.query(options['query'])
|
30
|
+
end
|
31
|
+
|
32
|
+
desc 'query_file', 'query_file'
|
33
|
+
def query_file(file)
|
34
|
+
puts_json @core.query(File.read(file))
|
35
|
+
end
|
36
|
+
|
37
|
+
desc 'tables', 'tables'
|
38
|
+
def tables
|
39
|
+
puts_json @core.tables
|
40
|
+
end
|
41
|
+
|
42
|
+
desc 'columns', 'columns'
|
43
|
+
def columns(table_name)
|
44
|
+
puts_json @core.columns_with_table_name(table_name)
|
45
|
+
end
|
46
|
+
|
47
|
+
desc 'import', 'import'
|
48
|
+
def import(table)
|
49
|
+
data = @core.parse_json(STDIN.read)
|
50
|
+
@core.create_table(table, data)
|
51
|
+
@core.import(table, data)
|
52
|
+
end
|
53
|
+
|
54
|
+
desc 'info', 'info'
|
55
|
+
def info
|
56
|
+
puts_json @config
|
57
|
+
end
|
58
|
+
|
59
|
+
desc 'version', 'show version'
|
60
|
+
def version
|
61
|
+
puts VERSION
|
62
|
+
end
|
63
|
+
|
64
|
+
private
|
65
|
+
def puts_json(object)
|
66
|
+
puts JSON.pretty_generate(object)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
data/lib/arison/core.rb
ADDED
@@ -0,0 +1,175 @@
|
|
1
|
+
require 'active_record'
|
2
|
+
require 'activerecord-import'
|
3
|
+
require 'active_support'
|
4
|
+
|
5
|
+
module Arison
|
6
|
+
class Core
|
7
|
+
|
8
|
+
def initialize(profile)
|
9
|
+
@profile = profile
|
10
|
+
ActiveRecord::Base.establish_connection(@profile)
|
11
|
+
ActiveRecord::Base.default_timezone = :local
|
12
|
+
@connection = ActiveRecord::Base.connection
|
13
|
+
end
|
14
|
+
|
15
|
+
def query(sql)
|
16
|
+
@connection.exec_query(sql).to_a
|
17
|
+
end
|
18
|
+
|
19
|
+
def columns_with_table_name(table_name)
|
20
|
+
columns(get_class(table_name))
|
21
|
+
end
|
22
|
+
|
23
|
+
def columns(klass)
|
24
|
+
klass.columns.map do |column|
|
25
|
+
JSON.parse(column.to_json)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def tables
|
30
|
+
@connection.tables
|
31
|
+
end
|
32
|
+
|
33
|
+
def import(table_name, data)
|
34
|
+
klass = get_class(table_name)
|
35
|
+
limits = get_limit_hash(klass)
|
36
|
+
instances = []
|
37
|
+
data.each do |record|
|
38
|
+
instance = klass.new
|
39
|
+
begin
|
40
|
+
record = record.inject({}){ |result, (k, v)|
|
41
|
+
length = limits[k]
|
42
|
+
result[k] = (length.nil? || v.nil? || v.class != String) ? v : v.slice(0, length)
|
43
|
+
result
|
44
|
+
}
|
45
|
+
instance.attributes = record
|
46
|
+
rescue ActiveRecord::UnknownAttributeError => e
|
47
|
+
rescue => e
|
48
|
+
puts "\n#{e.message}\n#{e.backtrace.join("\n")}"
|
49
|
+
ensure
|
50
|
+
instances << instance
|
51
|
+
end
|
52
|
+
end
|
53
|
+
instances.in_groups_of(10000, false) do |block|
|
54
|
+
klass.import(block)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def get_create_table_dsl(table_name, hash)
|
59
|
+
dsl = %Q{
|
60
|
+
create_table "#{table_name}" do |t|
|
61
|
+
#{get_column_schema(hash).join("\n")}
|
62
|
+
t.datetime "created_at"
|
63
|
+
t.datetime "updated_at"
|
64
|
+
end
|
65
|
+
}
|
66
|
+
end
|
67
|
+
|
68
|
+
def get_add_index_dsl(table_name, uniq_columns)
|
69
|
+
dsl = %Q{
|
70
|
+
add_index(:#{table_name}, #{uniq_columns.map(&:to_sym)}, unique: true)
|
71
|
+
}
|
72
|
+
end
|
73
|
+
|
74
|
+
def get_add_column_dsl(table_name, column_name, record)
|
75
|
+
dsl = %Q{
|
76
|
+
add_column "#{table_name}", "#{column_name}", :#{get_type(column_name, record['column_name'])}
|
77
|
+
}
|
78
|
+
end
|
79
|
+
|
80
|
+
def create_table(table_name, data)
|
81
|
+
first = data.class == Array ? data.first : data
|
82
|
+
if @connection.data_source_exists?(table_name)
|
83
|
+
add_column_live(table_name, data)
|
84
|
+
return
|
85
|
+
end
|
86
|
+
create_table_dsl = get_create_table_dsl(table_name, first)
|
87
|
+
Arison::Migration.run_dsl(create_table_dsl)
|
88
|
+
add_column_live(table_name, data)
|
89
|
+
end
|
90
|
+
|
91
|
+
def parse_json(buffer)
|
92
|
+
begin
|
93
|
+
data = JSON.parse(buffer)
|
94
|
+
rescue => e
|
95
|
+
data = []
|
96
|
+
buffer.lines.each do |line|
|
97
|
+
data << JSON.parse(line)
|
98
|
+
end
|
99
|
+
end
|
100
|
+
data
|
101
|
+
end
|
102
|
+
|
103
|
+
def get_class(table_name)
|
104
|
+
define_class(table_name)
|
105
|
+
table_name.camelcase.constantize
|
106
|
+
end
|
107
|
+
|
108
|
+
def define_class(table_name)
|
109
|
+
klass_sym = table_name.camelcase.to_sym
|
110
|
+
if Object.constants.include?(klass_sym)
|
111
|
+
Object.send(:remove_const, klass_sym)
|
112
|
+
end
|
113
|
+
Object.const_set(table_name.camelcase, Class.new(ActiveRecord::Base) do
|
114
|
+
self.table_name = table_name
|
115
|
+
end)
|
116
|
+
end
|
117
|
+
|
118
|
+
def get_column_schema(hash)
|
119
|
+
hash.map do |k, v|
|
120
|
+
type = get_type(k, v)
|
121
|
+
%Q{t.#{type} "#{k}"} unless type.nil?
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
def get_type(k, v)
|
126
|
+
if v.nil?
|
127
|
+
%Q{string}
|
128
|
+
elsif k =~ /^id$/i
|
129
|
+
nil
|
130
|
+
elsif v.class == String
|
131
|
+
to_time_or_nil(v).nil? ? %Q{string} : %Q{datetime}
|
132
|
+
elsif v.class == TrueClass || v.class == FalseClass
|
133
|
+
%Q{boolean}
|
134
|
+
elsif v.class == Fixnum
|
135
|
+
%Q{integer}
|
136
|
+
elsif v.class == Float
|
137
|
+
%Q{float}
|
138
|
+
elsif v.class == Array || v.class == Hash
|
139
|
+
%Q{text}
|
140
|
+
elsif v.respond_to?(:strftime)
|
141
|
+
%Q{datetime}
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
def to_time_or_nil(value)
|
146
|
+
return nil if value.slice(0, 4) !~ /^[0-9][0-9][0-9][0-9]/
|
147
|
+
begin
|
148
|
+
time = value.to_time
|
149
|
+
time.to_i >= 0 ? time : nil
|
150
|
+
rescue => e
|
151
|
+
nil
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
def get_limit_hash(klass)
|
156
|
+
columns(klass).inject({}){ |result, column|
|
157
|
+
result[column['name']] = column['limit']
|
158
|
+
result
|
159
|
+
}
|
160
|
+
end
|
161
|
+
|
162
|
+
def add_column_live(table_name, data)
|
163
|
+
data.each do |record|
|
164
|
+
limits = get_limit_hash(get_class(table_name))
|
165
|
+
diff_keys = (record.keys - limits.keys)
|
166
|
+
|
167
|
+
diff_keys.each do |column|
|
168
|
+
add_column_dsl = get_add_column_dsl(table_name, column, record)
|
169
|
+
Arison::Migration.run_dsl(add_column_dsl)
|
170
|
+
end
|
171
|
+
ActiveRecord::Base.establish_connection(@profile)
|
172
|
+
end
|
173
|
+
end
|
174
|
+
end
|
175
|
+
end
|
data/lib/arison.rb
ADDED
data/spec/arison_spec.rb
ADDED
data/spec/cli_spec.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'arison'
|
3
|
+
|
4
|
+
describe Arison::CLI do
|
5
|
+
before do
|
6
|
+
end
|
7
|
+
|
8
|
+
it "should stdout sample" do
|
9
|
+
output = capture_stdout do
|
10
|
+
Arison::CLI.start(['sample'])
|
11
|
+
end
|
12
|
+
output.should == "This is your new task\n"
|
13
|
+
end
|
14
|
+
|
15
|
+
after do
|
16
|
+
end
|
17
|
+
end
|
data/spec/core_spec.rb
ADDED
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
gem 'rspec', '~> 2.4'
|
2
|
+
require 'rspec'
|
3
|
+
require 'arison/version'
|
4
|
+
|
5
|
+
include Arison
|
6
|
+
|
7
|
+
def capture_stdout
|
8
|
+
out = StringIO.new
|
9
|
+
$stdout = out
|
10
|
+
yield
|
11
|
+
return out.string
|
12
|
+
ensure
|
13
|
+
$stdout = STDOUT
|
14
|
+
end
|
15
|
+
|
16
|
+
def capture_stderr
|
17
|
+
out = StringIO.new
|
18
|
+
$stderr = out
|
19
|
+
yield
|
20
|
+
return out.string
|
21
|
+
ensure
|
22
|
+
$stderr = STDERR
|
23
|
+
end
|
24
|
+
|
metadata
ADDED
@@ -0,0 +1,237 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: arison
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Hiroshi Toyama
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-02-08 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: thor
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.19.1
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.19.1
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: pg
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: activesupport
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: activerecord
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: activerecord-import
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: bundler
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: pry
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 0.10.1
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 0.10.1
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rake
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 10.3.2
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 10.3.2
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rspec
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '2.4'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '2.4'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: rubocop
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: 0.24.1
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: 0.24.1
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: rubygems-tasks
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0.2'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0.2'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: yard
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0.8'
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - "~>"
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0.8'
|
181
|
+
description: postgresql command line interface
|
182
|
+
email: toyama0919@gmail.com
|
183
|
+
executables:
|
184
|
+
- arison
|
185
|
+
extensions: []
|
186
|
+
extra_rdoc_files: []
|
187
|
+
files:
|
188
|
+
- ".document"
|
189
|
+
- ".gitignore"
|
190
|
+
- ".rspec"
|
191
|
+
- ".travis.yml"
|
192
|
+
- ".yardopts"
|
193
|
+
- ChangeLog.md
|
194
|
+
- Gemfile
|
195
|
+
- LICENSE.txt
|
196
|
+
- README.md
|
197
|
+
- Rakefile
|
198
|
+
- arison.gemspec
|
199
|
+
- bin/arison
|
200
|
+
- lib/arison.rb
|
201
|
+
- lib/arison/cli.rb
|
202
|
+
- lib/arison/core.rb
|
203
|
+
- lib/arison/migration.rb
|
204
|
+
- lib/arison/version.rb
|
205
|
+
- spec/arison_spec.rb
|
206
|
+
- spec/cli_spec.rb
|
207
|
+
- spec/core_spec.rb
|
208
|
+
- spec/spec_helper.rb
|
209
|
+
homepage: https://github.com/toyama0919/arison
|
210
|
+
licenses:
|
211
|
+
- MIT
|
212
|
+
metadata: {}
|
213
|
+
post_install_message:
|
214
|
+
rdoc_options: []
|
215
|
+
require_paths:
|
216
|
+
- lib
|
217
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
218
|
+
requirements:
|
219
|
+
- - ">="
|
220
|
+
- !ruby/object:Gem::Version
|
221
|
+
version: '0'
|
222
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
223
|
+
requirements:
|
224
|
+
- - ">="
|
225
|
+
- !ruby/object:Gem::Version
|
226
|
+
version: '0'
|
227
|
+
requirements: []
|
228
|
+
rubyforge_project:
|
229
|
+
rubygems_version: 2.5.1
|
230
|
+
signing_key:
|
231
|
+
specification_version: 4
|
232
|
+
summary: postgresql command line interface
|
233
|
+
test_files:
|
234
|
+
- spec/arison_spec.rb
|
235
|
+
- spec/cli_spec.rb
|
236
|
+
- spec/core_spec.rb
|
237
|
+
- spec/spec_helper.rb
|