dumptruck 0.1.2
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/.gitignore +50 -0
- data/.rspec +2 -0
- data/.travis.yml +7 -0
- data/Gemfile +4 -0
- data/Guardfile +24 -0
- data/LICENSE.txt +22 -0
- data/README.md +73 -0
- data/Rakefile +6 -0
- data/dumptruck.gemspec +31 -0
- data/lib/dumptruck/load.rb +58 -0
- data/lib/dumptruck/truck.rb +116 -0
- data/lib/dumptruck/version.rb +3 -0
- data/lib/dumptruck.rb +3 -0
- data/spec/load_spec.rb +26 -0
- data/spec/spec_helper.rb +4 -0
- data/spec/truck_spec.rb +45 -0
- metadata +175 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 53f9e06243949b735c0cbee908cf0608ef41d191
|
4
|
+
data.tar.gz: 67dcfa5cc690aeea22c4eb8a9056376fb94e50b9
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: e4beac2750e5638b4044c161dd4adab1a6d64e1e636410767cdc8a67d786607b0b102ef33712ba6dfb0b4449090d6cd3ed370692dbf4f89c23c7fa953a412fc8
|
7
|
+
data.tar.gz: ade146bdf3cd952276cc831e2c7b8dde59cd01beda7748e790cdaeaae62276fbd3db59310f23b9eb6c04ca31c83ebad1ff131aff20df17602ca561a19e916e99
|
data/.gitignore
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
*.gem
|
2
|
+
*.rbc
|
3
|
+
.bundle
|
4
|
+
.config
|
5
|
+
.yardoc
|
6
|
+
Gemfile.lock
|
7
|
+
InstalledFiles
|
8
|
+
_yardoc
|
9
|
+
coverage
|
10
|
+
doc/
|
11
|
+
lib/bundler/man
|
12
|
+
pkg
|
13
|
+
rdoc
|
14
|
+
spec/reports
|
15
|
+
test/tmp
|
16
|
+
test/version_tmp
|
17
|
+
tmp
|
18
|
+
=======
|
19
|
+
/.config
|
20
|
+
/coverage/
|
21
|
+
/InstalledFiles
|
22
|
+
/pkg/
|
23
|
+
/spec/reports/
|
24
|
+
/test/tmp/
|
25
|
+
/test/version_tmp/
|
26
|
+
/tmp/
|
27
|
+
|
28
|
+
## Specific to RubyMotion:
|
29
|
+
.dat*
|
30
|
+
.repl_history
|
31
|
+
build/
|
32
|
+
|
33
|
+
## Documentation cache and generated files:
|
34
|
+
/.yardoc/
|
35
|
+
/_yardoc/
|
36
|
+
/doc/
|
37
|
+
/rdoc/
|
38
|
+
|
39
|
+
## Environment normalisation:
|
40
|
+
/.bundle/
|
41
|
+
/lib/bundler/man/
|
42
|
+
|
43
|
+
# for a library or gem, you might want to ignore these files since the code is
|
44
|
+
# intended to run in multiple environments; otherwise, check them in:
|
45
|
+
# Gemfile.lock
|
46
|
+
# .ruby-version
|
47
|
+
# .ruby-gemset
|
48
|
+
|
49
|
+
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
|
50
|
+
.rvmrc
|
data/.rspec
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/Guardfile
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# A sample Guardfile
|
2
|
+
# More info at https://github.com/guard/guard#readme
|
3
|
+
|
4
|
+
guard :rspec do
|
5
|
+
watch(%r{^spec/.+_spec\.rb$})
|
6
|
+
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
|
7
|
+
watch('spec/spec_helper.rb') { "spec" }
|
8
|
+
|
9
|
+
# Rails example
|
10
|
+
watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
11
|
+
watch(%r{^app/(.*)(\.erb|\.haml|\.slim)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
|
12
|
+
watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
|
13
|
+
watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
|
14
|
+
watch('config/routes.rb') { "spec/routing" }
|
15
|
+
watch('app/controllers/application_controller.rb') { "spec/controllers" }
|
16
|
+
|
17
|
+
# Capybara features specs
|
18
|
+
watch(%r{^app/views/(.+)/.*\.(erb|haml|slim)$}) { |m| "spec/features/#{m[1]}_spec.rb" }
|
19
|
+
|
20
|
+
# Turnip features and steps
|
21
|
+
watch(%r{^spec/acceptance/(.+)\.feature$})
|
22
|
+
watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'spec/acceptance' }
|
23
|
+
end
|
24
|
+
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2014 delianides
|
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,73 @@
|
|
1
|
+
Dumptruck
|
2
|
+
=========
|
3
|
+
[](https://travis-ci.org/delianides/Dumptruck)
|
4
|
+
[](https://coveralls.io/r/delianides/Dumptruck?branch=master)
|
5
|
+
|
6
|
+
Ruby wrapper for the mysqldump executable
|
7
|
+
|
8
|
+
Requirements
|
9
|
+
------------
|
10
|
+
|
11
|
+
- Ruby 1.9.3 or higher
|
12
|
+
- mysqldump executable
|
13
|
+
|
14
|
+
Installation
|
15
|
+
------------
|
16
|
+
|
17
|
+
gem 'dumptruck'
|
18
|
+
|
19
|
+
or install the gem manually
|
20
|
+
|
21
|
+
gem install dumptruck
|
22
|
+
|
23
|
+
**Note:** The gem hasn't been submitted to Rubygems yet.
|
24
|
+
|
25
|
+
Usage
|
26
|
+
-----
|
27
|
+
|
28
|
+
The purpose of this gem is make `mysqldump` be as simple as possible. The `mysqldump` command can be pretty tricky and more than likely, if you're attempting a pretty elaborate dump, you'll have to run the command more than once. Thats what this gem attempts to automate. The gem will run multiple interations of `mysqldump` to an output file and directory you choose. To start, create a truck object:
|
29
|
+
|
30
|
+
```ruby
|
31
|
+
truck = Dumptruck::Truck.new({
|
32
|
+
username: "username",
|
33
|
+
password: "password",
|
34
|
+
host: "127.0.0.1", #localhost is default
|
35
|
+
port: 3306, #default
|
36
|
+
output_dir: "/tmp", #where the dump files go
|
37
|
+
filename: "output", #default, can be changed
|
38
|
+
mysqldump_cmd: "/path/to/bin/mysqldump",
|
39
|
+
})
|
40
|
+
```
|
41
|
+
|
42
|
+
You don't need to know or specify where the `mysqldump` executable is as long as it can be found in your environment `PATH`. Otherwise you can specify it in the params hash. If you don't specifiy it and an executable isn't found, an error will be raised.
|
43
|
+
|
44
|
+
Once you have the truck object created you can load it with your configuration.
|
45
|
+
|
46
|
+
```ruby
|
47
|
+
truck.load({
|
48
|
+
database: 'db', #required for now, raises an error if not set
|
49
|
+
ignored_tables: ['table1','table2','table3'], # optional
|
50
|
+
options: ['--single-transaction', '--quick'], # default values
|
51
|
+
})
|
52
|
+
```
|
53
|
+
|
54
|
+
Or you can create the load object independently and pass it to the `truck.load` method separately.
|
55
|
+
|
56
|
+
```ruby
|
57
|
+
load = Dumptruck::Load.new({
|
58
|
+
database: 'db', #required for now, raises an error if not set
|
59
|
+
ignored_tables: ['table1','table2','table3'], # optional
|
60
|
+
options: ['--single-transaction', '--quick'], # default values
|
61
|
+
})
|
62
|
+
|
63
|
+
truck.load(load)
|
64
|
+
```
|
65
|
+
|
66
|
+
You can add as many loads as needed in order to get the output file you want. When you have everything set just call `truck.dump` and it will run the `mysqldump` command and create a single gzipped output file. The `truck.dump` method returns a hash of the time (in seconds) it took to run and the output files location.
|
67
|
+
|
68
|
+
{ time: 8.0992, file: /tmp/output_01-01-02-1534.sql.gz }
|
69
|
+
|
70
|
+
Contribution
|
71
|
+
------------
|
72
|
+
|
73
|
+
Please do. This is my first 'real' gem and probably could use some refactoring. So any help is appreciated.
|
data/Rakefile
ADDED
data/dumptruck.gemspec
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'dumptruck/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "dumptruck"
|
8
|
+
spec.version = Dumptruck::VERSION
|
9
|
+
spec.authors = ["delianides"]
|
10
|
+
spec.email = ["drew@delianides.com"]
|
11
|
+
spec.summary = %q{Ruby Wrapper for the mysqldump command}
|
12
|
+
spec.description = %q{Wraps the mysqldump command into a ruby library}
|
13
|
+
spec.homepage = "https://github.com/delianides/dumptruck"
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0")
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.required_ruby_version = '>= 1.9.3'
|
22
|
+
|
23
|
+
spec.add_development_dependency "bundler", "~> 1.5"
|
24
|
+
spec.add_development_dependency "rake", "~> 0"
|
25
|
+
spec.add_development_dependency "rspec", "~> 0"
|
26
|
+
spec.add_development_dependency "rspec-nc", "~> 0"
|
27
|
+
spec.add_development_dependency "guard", "~> 0"
|
28
|
+
spec.add_development_dependency "guard-rspec", "~> 0"
|
29
|
+
spec.add_development_dependency "pry", "~> 0"
|
30
|
+
spec.add_development_dependency "coveralls", "~> 0"
|
31
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
module Dumptruck
|
2
|
+
class Load
|
3
|
+
#Specify a Database [TODO] if database isn't specified then --all-databases is used
|
4
|
+
attr_accessor :database
|
5
|
+
|
6
|
+
def initialize(params)
|
7
|
+
defaults = {
|
8
|
+
options: ["--single-transaction", "--quick"],
|
9
|
+
}.merge!(params)
|
10
|
+
|
11
|
+
@options = defaults[:options]
|
12
|
+
|
13
|
+
#database needs to be defined
|
14
|
+
raise ArgumentError.new("Database not defined!") if params[:database].nil?
|
15
|
+
@database = params[:database]
|
16
|
+
|
17
|
+
unless params[:options].nil?
|
18
|
+
params[:options].each do |o|
|
19
|
+
add_option(o)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
unless params[:ignored_tables].nil?
|
24
|
+
params[:ignored_tables].each do |t|
|
25
|
+
add_ignored_table(t)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def add_ignored_table(table)
|
31
|
+
@ignored_tables = [] unless @ignored_tables
|
32
|
+
@ignored_tables << table
|
33
|
+
end
|
34
|
+
|
35
|
+
def add_option(option)
|
36
|
+
@options = [] unless @options
|
37
|
+
@options << option
|
38
|
+
end
|
39
|
+
|
40
|
+
def options
|
41
|
+
cmd = ""
|
42
|
+
@options.each do |o|
|
43
|
+
cmd << "#{o} "
|
44
|
+
end
|
45
|
+
cmd.strip
|
46
|
+
end
|
47
|
+
|
48
|
+
def ignored_tables
|
49
|
+
return nil unless @ignored_tables
|
50
|
+
tables = ""
|
51
|
+
@ignored_tables.each do |e|
|
52
|
+
tables << "--ignore-table=#{@database}.#{e} "
|
53
|
+
end
|
54
|
+
tables.strip
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
@@ -0,0 +1,116 @@
|
|
1
|
+
require "benchmark"
|
2
|
+
|
3
|
+
module Dumptruck
|
4
|
+
class Truck
|
5
|
+
#mysqldump needs to be installed locally, you can pass in the location if Ruby doesn't find it
|
6
|
+
attr_accessor :mysqldump_cmd
|
7
|
+
|
8
|
+
#host, hostname where you are connecting too, defaults too localhost
|
9
|
+
attr_accessor :host
|
10
|
+
|
11
|
+
#port, other than 3306
|
12
|
+
attr_accessor :port
|
13
|
+
|
14
|
+
#filename, default is `output`, the filename will have a time/date string appended to it.
|
15
|
+
attr_accessor :filename
|
16
|
+
|
17
|
+
#username for the host
|
18
|
+
attr_accessor :username
|
19
|
+
|
20
|
+
#password for host
|
21
|
+
attr_accessor :password
|
22
|
+
|
23
|
+
#output_dir is where you'd like the output file to live after its run
|
24
|
+
attr_accessor :output_dir
|
25
|
+
|
26
|
+
def initialize(params)
|
27
|
+
defaults = {
|
28
|
+
output_dir: "/tmp",
|
29
|
+
filename: "output",
|
30
|
+
port: 3306,
|
31
|
+
host: "localhost"
|
32
|
+
}.merge!(params)
|
33
|
+
|
34
|
+
@username = defaults[:username]
|
35
|
+
@password = defaults[:password]
|
36
|
+
@host = defaults[:host]
|
37
|
+
@port = defaults[:port]
|
38
|
+
@filename = defaults[:filename]
|
39
|
+
@output_dir = defaults[:output_dir]
|
40
|
+
@mysqldump_cmd = find_mysqldump_cmd(params[:mysqldump_cmd])
|
41
|
+
end
|
42
|
+
|
43
|
+
def credentials
|
44
|
+
creds = "-u #{@username} "
|
45
|
+
creds += "--password=#{@password} " unless @password.nil?
|
46
|
+
creds += "-h #{@host} "
|
47
|
+
creds += "-P #{@port}" unless @port.nil?
|
48
|
+
creds
|
49
|
+
end
|
50
|
+
|
51
|
+
def output
|
52
|
+
"#{@output_dir}/#{@filename}_#{Time.now.strftime("%Y-%m-%d-%H%M")}.sql.gz"
|
53
|
+
end
|
54
|
+
|
55
|
+
def load( input )
|
56
|
+
@loads = [] unless @loads
|
57
|
+
if input.instance_of? Dumptruck::Load #created separate from the truck
|
58
|
+
@loads << input
|
59
|
+
else
|
60
|
+
input = Dumptruck::Load.new(input)
|
61
|
+
@loads << input
|
62
|
+
end
|
63
|
+
|
64
|
+
input
|
65
|
+
end
|
66
|
+
|
67
|
+
def loads
|
68
|
+
@loads.map
|
69
|
+
end
|
70
|
+
|
71
|
+
def dump
|
72
|
+
time = Benchmark.realtime do
|
73
|
+
filename = self.output
|
74
|
+
@loads.each_with_index do |l,i|
|
75
|
+
#[REFACTOR]
|
76
|
+
if i == 0
|
77
|
+
gzip = "gzip -c >"
|
78
|
+
else
|
79
|
+
gzip = "gzip -c >>"
|
80
|
+
end
|
81
|
+
|
82
|
+
cmd = "#{self.mysqldump_cmd} "
|
83
|
+
cmd += "#{self.credentials} "
|
84
|
+
cmd += "#{l.options} "
|
85
|
+
cmd += "#{l.ignore_tables} " unless @ignore_tables.nil?
|
86
|
+
cmd += "#{l.database} "
|
87
|
+
cmd += "| #{gzip} #{filename}"
|
88
|
+
begin
|
89
|
+
system(cmd)
|
90
|
+
rescue SystemCallError
|
91
|
+
raise "Error Running Dump!"
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
{time: time, file: "#{File.expand_path(filename)}"}
|
97
|
+
end
|
98
|
+
|
99
|
+
private
|
100
|
+
|
101
|
+
def find_mysqldump_cmd(cmd = nil)
|
102
|
+
begin
|
103
|
+
if(cmd)
|
104
|
+
if(`#{cmd} -V`)
|
105
|
+
cmd
|
106
|
+
end
|
107
|
+
else
|
108
|
+
`which mysqldump`.strip
|
109
|
+
end
|
110
|
+
rescue SystemCallError
|
111
|
+
raise "Mysqldump is not found!"
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
data/lib/dumptruck.rb
ADDED
data/spec/load_spec.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Dumptruck::Load do
|
4
|
+
describe '.new' do
|
5
|
+
let(:dump) { Dumptruck::Load.new({ database: "test" }) }
|
6
|
+
it "has a database" do
|
7
|
+
expect(dump.database).to eq("test")
|
8
|
+
end
|
9
|
+
|
10
|
+
it "can add tables to ignore" do
|
11
|
+
dump.add_ignored_table("fake_table")
|
12
|
+
expect(dump.ignored_tables).to eq("--ignore-table=test.fake_table")
|
13
|
+
end
|
14
|
+
|
15
|
+
it "adds option to array" do
|
16
|
+
expect(dump.options).to eq("--single-transaction --quick")
|
17
|
+
|
18
|
+
dump.add_option("--lock-tables")
|
19
|
+
expect(dump.options).to eq("--single-transaction --quick --lock-tables")
|
20
|
+
end
|
21
|
+
|
22
|
+
it "raises an error if no database is defined" do
|
23
|
+
expect{Dumptruck::Load.new({})}.to raise_error("Database not defined!")
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/spec/spec_helper.rb
ADDED
data/spec/truck_spec.rb
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Dumptruck::Truck do
|
4
|
+
describe '.new' do
|
5
|
+
cmd = `which mysqldump`.strip
|
6
|
+
|
7
|
+
let(:dump) { Dumptruck::Truck.new({
|
8
|
+
:username => "drew",
|
9
|
+
:password => "pw",
|
10
|
+
})}
|
11
|
+
|
12
|
+
it 'has a username' do
|
13
|
+
expect(dump.username).to eq("drew")
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'has a password' do
|
17
|
+
expect(dump.password).to eq("pw")
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'has an output directory' do
|
21
|
+
expect(dump.output_dir).to eq("/tmp")
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'has a filename' do
|
25
|
+
expect(dump.filename).not_to eq(nil)
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'has a mysqldump executable' do
|
29
|
+
expect(dump.mysqldump_cmd).to eq(cmd)
|
30
|
+
dump.mysqldump_cmd = "/usr/local/bin/mysqldump"
|
31
|
+
expect(dump.mysqldump_cmd).not_to be(nil)
|
32
|
+
end
|
33
|
+
|
34
|
+
it "no mysqldump raises error" do
|
35
|
+
expect{
|
36
|
+
Dumptruck::Truck.new(
|
37
|
+
{:mysqldump_cmd => "/fake/loc/mysqldump"})
|
38
|
+
}.to raise_error("Mysqldump is not found!")
|
39
|
+
end
|
40
|
+
|
41
|
+
it "creates a Load object" do
|
42
|
+
dump.load({database: "test"})
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
metadata
ADDED
@@ -0,0 +1,175 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: dumptruck
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- delianides
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-04-30 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.5'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.5'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
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: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
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: rspec-nc
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
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: guard
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
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: guard-rspec
|
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'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: coveralls
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
description: Wraps the mysqldump command into a ruby library
|
126
|
+
email:
|
127
|
+
- drew@delianides.com
|
128
|
+
executables: []
|
129
|
+
extensions: []
|
130
|
+
extra_rdoc_files: []
|
131
|
+
files:
|
132
|
+
- ".gitignore"
|
133
|
+
- ".rspec"
|
134
|
+
- ".travis.yml"
|
135
|
+
- Gemfile
|
136
|
+
- Guardfile
|
137
|
+
- LICENSE.txt
|
138
|
+
- README.md
|
139
|
+
- Rakefile
|
140
|
+
- dumptruck.gemspec
|
141
|
+
- lib/dumptruck.rb
|
142
|
+
- lib/dumptruck/load.rb
|
143
|
+
- lib/dumptruck/truck.rb
|
144
|
+
- lib/dumptruck/version.rb
|
145
|
+
- spec/load_spec.rb
|
146
|
+
- spec/spec_helper.rb
|
147
|
+
- spec/truck_spec.rb
|
148
|
+
homepage: https://github.com/delianides/dumptruck
|
149
|
+
licenses:
|
150
|
+
- MIT
|
151
|
+
metadata: {}
|
152
|
+
post_install_message:
|
153
|
+
rdoc_options: []
|
154
|
+
require_paths:
|
155
|
+
- lib
|
156
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
157
|
+
requirements:
|
158
|
+
- - ">="
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: 1.9.3
|
161
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
162
|
+
requirements:
|
163
|
+
- - ">="
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: '0'
|
166
|
+
requirements: []
|
167
|
+
rubyforge_project:
|
168
|
+
rubygems_version: 2.2.2
|
169
|
+
signing_key:
|
170
|
+
specification_version: 4
|
171
|
+
summary: Ruby Wrapper for the mysqldump command
|
172
|
+
test_files:
|
173
|
+
- spec/load_spec.rb
|
174
|
+
- spec/spec_helper.rb
|
175
|
+
- spec/truck_spec.rb
|