turntables 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.document +3 -0
- data/.gitignore +6 -0
- data/.rspec +1 -0
- data/.travis.yml +6 -0
- data/.yardopts +1 -0
- data/ChangeLog.rdoc +10 -0
- data/Gemfile +3 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +141 -0
- data/Rakefile +33 -0
- data/bin/turntables +12 -0
- data/lib/turntables/constants/repository_constants.rb +6 -0
- data/lib/turntables/db_registry.rb +83 -0
- data/lib/turntables/repository.rb +148 -0
- data/lib/turntables/sql_modules/db_registry_sql.rb +7 -0
- data/lib/turntables/sql_modules/version_history_sql.rb +30 -0
- data/lib/turntables/transaction.rb +39 -0
- data/lib/turntables/turntable.rb +40 -0
- data/lib/turntables/turntable_exception.rb +7 -0
- data/lib/turntables/version.rb +4 -0
- data/lib/turntables/version_history.rb +90 -0
- data/lib/turntables.rb +2 -0
- data/spec/data/locations/.gitkeep +0 -0
- data/spec/data/locations/herp.db +0 -0
- data/spec/data/locations/loc1/.gitkeep +0 -0
- data/spec/data/malformed-dir/malformed.txt +1 -0
- data/spec/data/sql-just-monolithic/mono/1.sql +6 -0
- data/spec/data/sql-just-monolithic/seq/.gitkeep +0 -0
- data/spec/data/sql-just-sequential/mono/.gitkeep +0 -0
- data/spec/data/sql-just-sequential/seq/1.sql +6 -0
- data/spec/data/sql-just-sequential/seq/2.sql +7 -0
- data/spec/data/sql-just-sequential/seq/3.sql +9 -0
- data/spec/data/sql-seq-and-mono/mono/3.sql +24 -0
- data/spec/data/sql-seq-and-mono/seq/1.sql +6 -0
- data/spec/data/sql-seq-and-mono/seq/2.sql +7 -0
- data/spec/data/sql-seq-and-mono/seq/3.sql +9 -0
- data/spec/db_registry_sql_spec.rb +9 -0
- data/spec/repository_constants_spec.rb +13 -0
- data/spec/repository_spec.rb +39 -0
- data/spec/spec_helper.rb +4 -0
- data/spec/turntable_exception_spec.rb +16 -0
- data/spec/turntable_spec.rb +71 -0
- data/spec/turntables_spec.rb +8 -0
- data/spec/version_history_spec.rb +55 -0
- data/spec/version_history_sql_spec.rb +31 -0
- data/turntables.gemspec +26 -0
- metadata +184 -0
@@ -0,0 +1,90 @@
|
|
1
|
+
require 'turntables/db_registry'
|
2
|
+
require 'turntables/sql_modules/version_history_sql'
|
3
|
+
|
4
|
+
module Turntables
|
5
|
+
# @author Simon Symeonidis
|
6
|
+
# This class is responsiblef for checking what version the current system is
|
7
|
+
# that is using this library, and what is the maximum version available in the
|
8
|
+
# repository. Naturally it follows that if in the repository the version is
|
9
|
+
# greater than the one on the system currently, The updated must be triggered
|
10
|
+
# to be done.
|
11
|
+
# For now this is a halfly implemented active record, since this library is
|
12
|
+
# lightweight and small (therefore not too many components are needed yet).
|
13
|
+
class VersionHistory
|
14
|
+
include VersionHistorySql
|
15
|
+
|
16
|
+
# Create the version history object by giving version number and comment.
|
17
|
+
# The date can be omitted, and it will be set to the current time of the
|
18
|
+
# local system.
|
19
|
+
# @param version is the version of the transaction that was performed
|
20
|
+
# @param comment was any comments included in the sql file
|
21
|
+
# @param date is the optional date, set to the local time if unspecified
|
22
|
+
def initialize(version,comment,date=Time.now.to_i)
|
23
|
+
@version = version
|
24
|
+
@comment = comment
|
25
|
+
@date = date
|
26
|
+
end
|
27
|
+
|
28
|
+
# Check if the required database exists. Check to see if the database has
|
29
|
+
# the version_histories table as well.
|
30
|
+
def self.check
|
31
|
+
if DbRegistry.instance.table_exists? TableName
|
32
|
+
return VersionHistory.find_last
|
33
|
+
else # db does not exist
|
34
|
+
return :fresh
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
# Get all the stored version histories
|
39
|
+
def self.find_all
|
40
|
+
vhs = Array.new
|
41
|
+
DbRegistry.instance.execute(SelectAll).each do |row|
|
42
|
+
vhs.push VersionHistory.to_version_history(row)
|
43
|
+
end
|
44
|
+
vhs
|
45
|
+
end
|
46
|
+
|
47
|
+
# Find the last version history added by checking the max id
|
48
|
+
# @return VersionHistory object or nil
|
49
|
+
def self.find_last
|
50
|
+
ret = DbRegistry.instance.execute(SelectLast)
|
51
|
+
VersionHistory.to_version_history(ret.first)
|
52
|
+
end
|
53
|
+
|
54
|
+
# Find a version history record by id
|
55
|
+
# @return VersionHistory object or nil
|
56
|
+
def self.find(id)
|
57
|
+
ret = DbRegistry.instance.execute(SelectById, id)
|
58
|
+
VersionHistory.to_version_history(ret.first)
|
59
|
+
end
|
60
|
+
|
61
|
+
# Insert a row into the table for version histories
|
62
|
+
# @return insert result
|
63
|
+
def self.insert(vhistory)
|
64
|
+
DbRegistry.instance.execute(Insert, vhistory.version,
|
65
|
+
vhistory.date, vhistory.comment)
|
66
|
+
end
|
67
|
+
|
68
|
+
# Create the table of this model
|
69
|
+
# @return nil
|
70
|
+
def self.pull_up!
|
71
|
+
DbRegistry.instance.execute(Create)
|
72
|
+
end
|
73
|
+
|
74
|
+
# Make an array representing the persisted object, into an object in memory
|
75
|
+
# @param record an array containing the elements to construct a version history
|
76
|
+
# @return a VersionHistory object constructed from the records
|
77
|
+
def self.to_version_history(record)
|
78
|
+
vh = VersionHistory.new(record[1], record[2], record[3])
|
79
|
+
vh.id = record[0]
|
80
|
+
vh
|
81
|
+
end
|
82
|
+
|
83
|
+
attr_accessor :id
|
84
|
+
attr_accessor :version
|
85
|
+
attr_accessor :date
|
86
|
+
attr_accessor :comment
|
87
|
+
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
data/lib/turntables.rb
ADDED
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
malformed dir to make sure safe execution of turntables
|
File without changes
|
File without changes
|
@@ -0,0 +1,24 @@
|
|
1
|
+
--$ the other files should be ignored, and this should be the only one that is
|
2
|
+
--$ executed
|
3
|
+
|
4
|
+
create table accounts (
|
5
|
+
id integer primary key autoincrement,
|
6
|
+
balance float,
|
7
|
+
name text
|
8
|
+
);
|
9
|
+
|
10
|
+
create table users (
|
11
|
+
id integer primary key autoincrement,
|
12
|
+
name text,
|
13
|
+
email text,
|
14
|
+
bio text
|
15
|
+
);
|
16
|
+
|
17
|
+
create table randomness (
|
18
|
+
id integer primary key autoincrement,
|
19
|
+
name text,
|
20
|
+
surname text,
|
21
|
+
weight float,
|
22
|
+
is_superhero boolean
|
23
|
+
);
|
24
|
+
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'turntables/constants/repository_constants'
|
2
|
+
|
3
|
+
include Turntables
|
4
|
+
|
5
|
+
describe RepositoryConstants do
|
6
|
+
it "Should have SeqDir constant" do
|
7
|
+
subject.const_get('SeqDir').should_not be_empty
|
8
|
+
end
|
9
|
+
|
10
|
+
it "Should have MonoDir constant" do
|
11
|
+
subject.const_get('MonoDir').should_not be_empty
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'turntables/repository'
|
2
|
+
|
3
|
+
include Turntables
|
4
|
+
|
5
|
+
describe Repository do
|
6
|
+
|
7
|
+
before :each do
|
8
|
+
@repo = Repository.new
|
9
|
+
end
|
10
|
+
|
11
|
+
it "#new should return Repository Object" do
|
12
|
+
@repo.should be_instance_of Repository
|
13
|
+
end
|
14
|
+
|
15
|
+
it "Should have a method called register" do
|
16
|
+
@repo.should respond_to(:register)
|
17
|
+
end
|
18
|
+
|
19
|
+
it "Should have a method called make!" do
|
20
|
+
@repo.should respond_to(:make!)
|
21
|
+
end
|
22
|
+
|
23
|
+
it "Should have an attribute called sequential_dir" do
|
24
|
+
@repo.should respond_to(:sequential_dir)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "Should have an attribute called monolithic_dir" do
|
28
|
+
@repo.should respond_to(:monolithic_dir)
|
29
|
+
end
|
30
|
+
|
31
|
+
it "Should have an attribute called relative_dir" do
|
32
|
+
@repo.should respond_to(:relative_dir)
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should have the transactions in a sorted order (smallest to biggest)" do
|
36
|
+
@repo.register("data/sql-just-sequential")
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'turntables/turntable_exception'
|
2
|
+
|
3
|
+
describe TurntableException do
|
4
|
+
|
5
|
+
before(:each) do
|
6
|
+
@te = TurntableException.new
|
7
|
+
end
|
8
|
+
|
9
|
+
it "Should be an instance of runtime error" do
|
10
|
+
@te.should be_a_kind_of(RuntimeError)
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should be an instance of TurntableException" do
|
14
|
+
@te.should be_an_instance_of(TurntableException)
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
require 'turntables'
|
2
|
+
require 'turntables/db_registry'
|
3
|
+
|
4
|
+
# This test to see if simple operations work with the application (so that the
|
5
|
+
# minimal guarantee of the gem is respected - to at least create the schema
|
6
|
+
# specified).
|
7
|
+
describe Turntable do
|
8
|
+
|
9
|
+
def delete_db
|
10
|
+
if File.exists? "default.db"
|
11
|
+
File.delete("default.db")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
before(:each) do
|
16
|
+
@turntable = Turntable.new
|
17
|
+
@relpath = File.expand_path(File.dirname(__FILE__))
|
18
|
+
@datapath = "#{@relpath}/data"
|
19
|
+
|
20
|
+
# datapath/ and
|
21
|
+
# malformed-dir
|
22
|
+
# sql-just-monolithic
|
23
|
+
# sql-just-sequential
|
24
|
+
# sql-seq-and-mono
|
25
|
+
end
|
26
|
+
|
27
|
+
after(:each) do
|
28
|
+
DbRegistry.instance.close!
|
29
|
+
delete_db
|
30
|
+
DbRegistry.instance.open!
|
31
|
+
end
|
32
|
+
|
33
|
+
after(:all) do
|
34
|
+
delete_db
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should raise no errors on a pure sequential repo" do
|
38
|
+
@turntable.register("#{@datapath}/sql-just-sequential")
|
39
|
+
expect{@turntable.make!}.to_not raise_error
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should raise no errors on a pure monolithic repo" do
|
43
|
+
@turntable.register("#{@datapath}/sql-just-monolithic")
|
44
|
+
expect{@turntable.make!}.to_not raise_error
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should raise no errors on a mixed repo" do
|
48
|
+
@turntable.register("#{@datapath}/sql-seq-and-mono")
|
49
|
+
expect{@turntable.make!}.to_not raise_error
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should raise an error on a malformed dir" do
|
53
|
+
@turntable.register("#{@datapath}/malformed-dir")
|
54
|
+
expect{@turntable.make!}.to raise_error
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should raise an error on non existant path" do
|
58
|
+
@turntable.register("WARGABLLGABHLGABL")
|
59
|
+
expect{@turntable.make!}.to raise_error
|
60
|
+
end
|
61
|
+
|
62
|
+
it "should create the database at a *specified* location" do
|
63
|
+
db_location = "#{@datapath}/locations/herp.db"
|
64
|
+
@turntable.register("#{@datapath}/sql-seq-and-mono")
|
65
|
+
@turntable.make_at!(db_location)
|
66
|
+
(File.exists? db_location).should be_true
|
67
|
+
File.delete(db_location)
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
71
|
+
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'turntables/version_history'
|
2
|
+
|
3
|
+
describe VersionHistory do
|
4
|
+
context "<<AR>> pattern specification" do
|
5
|
+
it "should respond to class method check" do
|
6
|
+
VersionHistory.should respond_to(:check)
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should respond to class method find_all" do
|
10
|
+
VersionHistory.should respond_to(:find_all)
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should respond to class method find_last" do
|
14
|
+
VersionHistory.should respond_to(:find_last)
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should respond to class method find" do
|
18
|
+
VersionHistory.should respond_to(:find)
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should respond to class method insert" do
|
22
|
+
VersionHistory.should respond_to(:insert)
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should respond to class method pull_up!" do
|
26
|
+
VersionHistory.should respond_to(:pull_up!)
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should respond to class method to_version_history" do
|
30
|
+
VersionHistory.should respond_to(:to_version_history)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
context "Attributes" do
|
35
|
+
before(:each) do
|
36
|
+
@version_history = VersionHistory.new(1,"asdf")
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should have an id" do
|
40
|
+
@version_history.should respond_to(:id)
|
41
|
+
end
|
42
|
+
|
43
|
+
it "should have a version" do
|
44
|
+
@version_history.should respond_to(:version)
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should have a date" do
|
48
|
+
@version_history.should respond_to(:date)
|
49
|
+
end
|
50
|
+
|
51
|
+
it "should have a comment" do
|
52
|
+
@version_history.should respond_to(:comment)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'turntables/sql_modules/version_history_sql'
|
2
|
+
|
3
|
+
include Turntables
|
4
|
+
|
5
|
+
describe VersionHistorySql do
|
6
|
+
|
7
|
+
it "should have a table name constant" do
|
8
|
+
subject.const_get('TableName').should_not be_empty
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should have a create sql constant" do
|
12
|
+
subject.const_get('Create').should_not be_empty
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should have a select last sql constant" do
|
16
|
+
subject.const_get('SelectLast').should_not be_empty
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should have a select by id sql constant" do
|
20
|
+
subject.const_get('SelectById').should_not be_empty
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should have a select all sql constant" do
|
24
|
+
subject.const_get('SelectAll').should_not be_empty
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should have an insert sql constant" do
|
28
|
+
subject.const_get('Insert').should_not be_empty
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
data/turntables.gemspec
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
require File.expand_path('../lib/turntables/version', __FILE__)
|
4
|
+
|
5
|
+
Gem::Specification.new do |gem|
|
6
|
+
gem.name = "turntables"
|
7
|
+
gem.version = Turntables::VERSION
|
8
|
+
gem.summary = %q{A dumb experimental, lightweight db version control system for SQLite3}
|
9
|
+
gem.description = %q{A dumb experimental, lightweight db version control system for SQLite3}
|
10
|
+
gem.license = "MIT"
|
11
|
+
gem.authors = ["psyomn"]
|
12
|
+
gem.email = "lethaljellybean@gmail.com"
|
13
|
+
gem.homepage = "https://rubygems.org/gems/turntables"
|
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_development_dependency 'bundler', '~> 1.0'
|
21
|
+
gem.add_development_dependency 'rake', '~> 0.8'
|
22
|
+
gem.add_development_dependency 'rspec', '~> 2.4'
|
23
|
+
gem.add_development_dependency 'yard', '~> 0.8'
|
24
|
+
|
25
|
+
gem.add_runtime_dependency 'sqlite3'
|
26
|
+
end
|
metadata
ADDED
@@ -0,0 +1,184 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: turntables
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- psyomn
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-07-26 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.0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.0'
|
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.8'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0.8'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ~>
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2.4'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2.4'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: yard
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0.8'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0.8'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: sqlite3
|
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
|
+
description: A dumb experimental, lightweight db version control system for SQLite3
|
84
|
+
email: lethaljellybean@gmail.com
|
85
|
+
executables:
|
86
|
+
- turntables
|
87
|
+
extensions: []
|
88
|
+
extra_rdoc_files: []
|
89
|
+
files:
|
90
|
+
- .document
|
91
|
+
- .gitignore
|
92
|
+
- .rspec
|
93
|
+
- .travis.yml
|
94
|
+
- .yardopts
|
95
|
+
- ChangeLog.rdoc
|
96
|
+
- Gemfile
|
97
|
+
- LICENSE.txt
|
98
|
+
- README.rdoc
|
99
|
+
- Rakefile
|
100
|
+
- bin/turntables
|
101
|
+
- lib/turntables.rb
|
102
|
+
- lib/turntables/constants/repository_constants.rb
|
103
|
+
- lib/turntables/db_registry.rb
|
104
|
+
- lib/turntables/repository.rb
|
105
|
+
- lib/turntables/sql_modules/db_registry_sql.rb
|
106
|
+
- lib/turntables/sql_modules/version_history_sql.rb
|
107
|
+
- lib/turntables/transaction.rb
|
108
|
+
- lib/turntables/turntable.rb
|
109
|
+
- lib/turntables/turntable_exception.rb
|
110
|
+
- lib/turntables/version.rb
|
111
|
+
- lib/turntables/version_history.rb
|
112
|
+
- spec/data/locations/.gitkeep
|
113
|
+
- spec/data/locations/herp.db
|
114
|
+
- spec/data/locations/loc1/.gitkeep
|
115
|
+
- spec/data/malformed-dir/malformed.txt
|
116
|
+
- spec/data/sql-just-monolithic/mono/1.sql
|
117
|
+
- spec/data/sql-just-monolithic/seq/.gitkeep
|
118
|
+
- spec/data/sql-just-sequential/mono/.gitkeep
|
119
|
+
- spec/data/sql-just-sequential/seq/1.sql
|
120
|
+
- spec/data/sql-just-sequential/seq/2.sql
|
121
|
+
- spec/data/sql-just-sequential/seq/3.sql
|
122
|
+
- spec/data/sql-seq-and-mono/mono/3.sql
|
123
|
+
- spec/data/sql-seq-and-mono/seq/1.sql
|
124
|
+
- spec/data/sql-seq-and-mono/seq/2.sql
|
125
|
+
- spec/data/sql-seq-and-mono/seq/3.sql
|
126
|
+
- spec/db_registry_sql_spec.rb
|
127
|
+
- spec/repository_constants_spec.rb
|
128
|
+
- spec/repository_spec.rb
|
129
|
+
- spec/spec_helper.rb
|
130
|
+
- spec/turntable_exception_spec.rb
|
131
|
+
- spec/turntable_spec.rb
|
132
|
+
- spec/turntables_spec.rb
|
133
|
+
- spec/version_history_spec.rb
|
134
|
+
- spec/version_history_sql_spec.rb
|
135
|
+
- turntables.gemspec
|
136
|
+
homepage: https://rubygems.org/gems/turntables
|
137
|
+
licenses:
|
138
|
+
- MIT
|
139
|
+
metadata: {}
|
140
|
+
post_install_message:
|
141
|
+
rdoc_options: []
|
142
|
+
require_paths:
|
143
|
+
- lib
|
144
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
145
|
+
requirements:
|
146
|
+
- - '>='
|
147
|
+
- !ruby/object:Gem::Version
|
148
|
+
version: '0'
|
149
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
151
|
+
- - '>='
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '0'
|
154
|
+
requirements: []
|
155
|
+
rubyforge_project:
|
156
|
+
rubygems_version: 2.0.3
|
157
|
+
signing_key:
|
158
|
+
specification_version: 4
|
159
|
+
summary: A dumb experimental, lightweight db version control system for SQLite3
|
160
|
+
test_files:
|
161
|
+
- spec/data/locations/.gitkeep
|
162
|
+
- spec/data/locations/herp.db
|
163
|
+
- spec/data/locations/loc1/.gitkeep
|
164
|
+
- spec/data/malformed-dir/malformed.txt
|
165
|
+
- spec/data/sql-just-monolithic/mono/1.sql
|
166
|
+
- spec/data/sql-just-monolithic/seq/.gitkeep
|
167
|
+
- spec/data/sql-just-sequential/mono/.gitkeep
|
168
|
+
- spec/data/sql-just-sequential/seq/1.sql
|
169
|
+
- spec/data/sql-just-sequential/seq/2.sql
|
170
|
+
- spec/data/sql-just-sequential/seq/3.sql
|
171
|
+
- spec/data/sql-seq-and-mono/mono/3.sql
|
172
|
+
- spec/data/sql-seq-and-mono/seq/1.sql
|
173
|
+
- spec/data/sql-seq-and-mono/seq/2.sql
|
174
|
+
- spec/data/sql-seq-and-mono/seq/3.sql
|
175
|
+
- spec/db_registry_sql_spec.rb
|
176
|
+
- spec/repository_constants_spec.rb
|
177
|
+
- spec/repository_spec.rb
|
178
|
+
- spec/spec_helper.rb
|
179
|
+
- spec/turntable_exception_spec.rb
|
180
|
+
- spec/turntable_spec.rb
|
181
|
+
- spec/turntables_spec.rb
|
182
|
+
- spec/version_history_spec.rb
|
183
|
+
- spec/version_history_sql_spec.rb
|
184
|
+
has_rdoc:
|