disposable_db 0.0.2 → 0.0.3
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/disposable_db.gemspec +2 -2
- data/lib/disposable_db/database.rb +9 -1
- data/lib/disposable_db/table_template.rb +11 -2
- data/lib/disposable_db/version.rb +1 -1
- data/spec/database_spec.rb +11 -0
- data/spec/table_template_spec.rb +8 -0
- metadata +15 -21
data/disposable_db.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
|
|
10
10
|
s.authors = ['Keith Larrimore']
|
11
11
|
s.homepage = 'https://github.com/klarrimore/disposable_db'
|
12
12
|
s.date = Date.today.to_s
|
13
|
-
s.summary
|
13
|
+
s.summary = 'A utility that makes it easy to create "on-the-fly databases"'
|
14
14
|
s.description = 'A utility that makes it easy to create "on-the-fly databases"'
|
15
15
|
|
16
16
|
#s.rubyforge_project = "disposable_db"
|
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.files = `git ls-files`.split("\n")
|
19
19
|
s.test_files = `git ls-files -- {test,spec,bench,features}/*`.split("\n")
|
20
20
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
21
|
-
s.require_paths = [
|
21
|
+
s.require_paths = ['lib']
|
22
22
|
|
23
23
|
# specify any dependencies here; for example:
|
24
24
|
s.add_development_dependency 'rspec', ['>= 2.9.0']
|
@@ -8,17 +8,25 @@ module DisposableDB
|
|
8
8
|
|
9
9
|
def create_table!(table_template)
|
10
10
|
@connection.create_table! table_template.name.to_sym do
|
11
|
+
primary_key table_template.primary_key if table_template.primary_key
|
11
12
|
table_template.columns.each do |column|
|
12
13
|
column column.name.to_sym, column.type
|
13
14
|
end
|
15
|
+
table_template.indexes.each do |idx|
|
16
|
+
index idx.to_sym
|
17
|
+
end
|
14
18
|
end
|
15
19
|
end
|
16
20
|
|
17
21
|
def create_table(table_template)
|
18
22
|
@connection.create_table? table_template.name.to_sym do
|
23
|
+
primary_key table_template.primary_key if table_template.primary_key
|
19
24
|
table_template.columns.each do |column|
|
20
25
|
column column.name.to_sym, column.type
|
21
26
|
end
|
27
|
+
table_template.indexes.each do |idx|
|
28
|
+
index idx.to_sym
|
29
|
+
end
|
22
30
|
end
|
23
31
|
end
|
24
32
|
|
@@ -27,4 +35,4 @@ module DisposableDB
|
|
27
35
|
end
|
28
36
|
|
29
37
|
end
|
30
|
-
end
|
38
|
+
end
|
@@ -1,16 +1,25 @@
|
|
1
1
|
module DisposableDB
|
2
2
|
class TableTemplate
|
3
|
-
attr_accessor :name, :columns
|
3
|
+
attr_accessor :name, :columns, :primary_key
|
4
4
|
|
5
5
|
def initialize(name, columns = [])
|
6
6
|
@name = name
|
7
7
|
@columns = columns
|
8
|
+
@indexes = indexes
|
8
9
|
end
|
9
10
|
|
10
11
|
def add_column(column)
|
11
12
|
@columns << column
|
12
13
|
end
|
13
14
|
|
15
|
+
def set_primary_key(pk)
|
16
|
+
@primary_key = pk
|
17
|
+
end
|
18
|
+
|
19
|
+
def indexes
|
20
|
+
@columns.select{ |c| c.indexed == true }.collect{ |c| c.name }
|
21
|
+
end
|
22
|
+
|
14
23
|
class Column
|
15
24
|
attr_accessor :name, :type, :indexed
|
16
25
|
|
@@ -31,4 +40,4 @@ module DisposableDB
|
|
31
40
|
end
|
32
41
|
|
33
42
|
end
|
34
|
-
end
|
43
|
+
end
|
data/spec/database_spec.rb
CHANGED
@@ -20,5 +20,16 @@ describe Database do
|
|
20
20
|
d.create_table tt
|
21
21
|
d.table_exists?(tt.name).should be_true
|
22
22
|
end
|
23
|
+
|
24
|
+
it "can create table with primary_key" do
|
25
|
+
tt = TableTemplate.new('foo2', [TableTemplate::Column.new('t1', Integer)])
|
26
|
+
tt.set_primary_key :id
|
27
|
+
|
28
|
+
d = Database.new
|
29
|
+
d.table_exists?(tt.name).should be_false
|
30
|
+
d.create_table tt
|
31
|
+
d.table_exists?(tt.name).should be_true
|
32
|
+
d.connection[:foo2].columns.include?(:id).should be_true
|
33
|
+
end
|
23
34
|
|
24
35
|
end
|
data/spec/table_template_spec.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: disposable_db
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-03-
|
12
|
+
date: 2012-03-27 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &7944580 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 2.9.0
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *7944580
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: bundler
|
27
|
-
requirement: &
|
27
|
+
requirement: &7943920 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *7943920
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: ffaker
|
38
|
-
requirement: &
|
38
|
+
requirement: &7943020 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 1.13.0
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *7943020
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: ruby-prof
|
49
|
-
requirement: &
|
49
|
+
requirement: &7942140 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *7942140
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: sequel
|
60
|
-
requirement: &
|
60
|
+
requirement: &7940620 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - =
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 3.33.0
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *7940620
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: sqlite3
|
71
|
-
requirement: &
|
71
|
+
requirement: &7939500 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *7939500
|
80
80
|
description: A utility that makes it easy to create "on-the-fly databases"
|
81
81
|
email:
|
82
82
|
- keithlarrimore@icehook.com
|
@@ -116,21 +116,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
116
116
|
- - ! '>='
|
117
117
|
- !ruby/object:Gem::Version
|
118
118
|
version: '0'
|
119
|
-
segments:
|
120
|
-
- 0
|
121
|
-
hash: 36076115
|
122
119
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
123
120
|
none: false
|
124
121
|
requirements:
|
125
122
|
- - ! '>='
|
126
123
|
- !ruby/object:Gem::Version
|
127
124
|
version: '0'
|
128
|
-
segments:
|
129
|
-
- 0
|
130
|
-
hash: 36076115
|
131
125
|
requirements: []
|
132
126
|
rubyforge_project:
|
133
|
-
rubygems_version: 1.8.
|
127
|
+
rubygems_version: 1.8.17
|
134
128
|
signing_key:
|
135
129
|
specification_version: 3
|
136
130
|
summary: A utility that makes it easy to create "on-the-fly databases"
|