arc 0.0.1.2 → 0.0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +3 -0
- data/lib/arc/casting.rb +2 -0
- data/lib/arc/data_stores/mysql/object_definitions.rb +16 -2
- data/lib/arc/data_stores/mysql/store.rb +6 -1
- data/lib/arc/data_stores/postgres/object_definitions.rb +1 -1
- data/lib/arc/version.rb +1 -1
- data/spec/data_stores/integration/crud_spec.rb +72 -55
- data/spec/data_stores/integration/schema_spec.rb +3 -1
- data/spec/data_stores/mysql/store_spec.rb +9 -0
- data/spec/data_stores/postgres/store_spec.rb +10 -0
- data/spec/quoting_spec.rb +3 -0
- data/spec/support/resources/ironman.gif +0 -0
- data/spec/support/resources/megaman.jpg +0 -0
- data/spec/support/resources/superman.gif +0 -0
- data/spec/support/schemas/mysql.sql +19 -7
- data/spec/support/schemas/postgres.sql +21 -7
- data/spec/support/schemas/sqlite.sql +21 -7
- data/spec/support/seed.rb +57 -0
- metadata +26 -18
data/Rakefile
CHANGED
data/lib/arc/casting.rb
CHANGED
@@ -13,11 +13,24 @@ module Arc
|
|
13
13
|
def fetch_item name
|
14
14
|
MysqlTable.new name, @data_store
|
15
15
|
end
|
16
|
+
|
17
|
+
def execute_ddl ddl
|
18
|
+
case ddl
|
19
|
+
when Array
|
20
|
+
ddl = ddl.select do |stmt|
|
21
|
+
!stmt.nil? && !stmt.empty? && !stmt == "\n"
|
22
|
+
end
|
23
|
+
ddl.each { |s| @data_store.execute "#{s}" }
|
24
|
+
when String
|
25
|
+
execute_ddl ddl.split(';')
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
16
29
|
end
|
17
30
|
|
18
31
|
class MysqlTable < Table
|
19
32
|
def raw_column_data
|
20
|
-
@data_store.read("
|
33
|
+
@data_store.read("show fields from #{self.name}").each do |r|
|
21
34
|
r
|
22
35
|
end
|
23
36
|
end
|
@@ -25,8 +38,8 @@ module Arc
|
|
25
38
|
raw_column_data.map {|c| c[:Field].to_sym }
|
26
39
|
end
|
27
40
|
def fetch_item name
|
28
|
-
return {} unless keys.include? name.to_sym
|
29
41
|
c = raw_column_data.find{|c| c[:Field] == name.to_s}
|
42
|
+
throw "Column '#{name}' does not exist" unless keys.include? name.to_sym
|
30
43
|
MysqlColumn.new @data_store,{
|
31
44
|
name: c[:Field],
|
32
45
|
allows_null: c[:Null] == "YES",
|
@@ -42,6 +55,7 @@ module Arc
|
|
42
55
|
:int => :integer,
|
43
56
|
}
|
44
57
|
def type
|
58
|
+
@stype ||= ''
|
45
59
|
@type ||= begin
|
46
60
|
type_key = @stype.downcase.gsub(/\([\d,]*\)/, '').to_sym
|
47
61
|
TYPES[type_key] || type_key
|
@@ -9,7 +9,7 @@ module Arc::DataStores
|
|
9
9
|
class MysqlDataStore < AbstractDataStore
|
10
10
|
|
11
11
|
def read query
|
12
|
-
execute(query)
|
12
|
+
execute(query).entries
|
13
13
|
end
|
14
14
|
|
15
15
|
def create sql
|
@@ -25,6 +25,11 @@ module Arc::DataStores
|
|
25
25
|
def destroy sql
|
26
26
|
execute sql
|
27
27
|
end
|
28
|
+
|
29
|
+
def quote_column_name table
|
30
|
+
"`#{table}`"
|
31
|
+
end
|
32
|
+
alias :quote_column :quote_column_name
|
28
33
|
|
29
34
|
def execute query
|
30
35
|
with_store do |store|
|
data/lib/arc/version.rb
CHANGED
@@ -1,76 +1,93 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
|
2
|
+
require 'pp'
|
3
3
|
module Arc
|
4
4
|
module DataStores
|
5
5
|
describe 'The data store crud operations' do
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
query = "SELECT * FROM superheros WHERE name = 'green hornet'"
|
11
|
-
result = store.read query
|
12
|
-
result.size.should == 0
|
13
|
-
|
14
|
-
store.create "INSERT INTO superheros (name) VALUES('green hornet');"
|
15
|
-
store.read(query).size.should == 1
|
16
|
-
|
17
|
-
#cleanup
|
18
|
-
store.destroy "DELETE FROM superheros where name = 'green hornet'"
|
19
|
-
end
|
6
|
+
#convenience method for building a tree of arel values
|
7
|
+
def values_array table_name, hash
|
8
|
+
hash.keys.map do |attr|
|
9
|
+
[@tables[table_name][attr], hash[attr]]
|
20
10
|
end
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
11
|
+
end
|
12
|
+
|
13
|
+
#grab a superhero record by name
|
14
|
+
def get_hero(hero_name)
|
15
|
+
query = @tables[:superheros]
|
16
|
+
.project('*')
|
17
|
+
.where(@tables[:superheros][:name].eq(hero_name))
|
18
|
+
.to_sql
|
19
|
+
@store.read query
|
20
|
+
end
|
21
|
+
|
22
|
+
before :each do
|
23
|
+
ArcTest.with_store do |store|
|
24
|
+
Arel::Table.engine = store
|
25
|
+
load "spec/support/seed.rb"
|
30
26
|
end
|
27
|
+
@tables = Hash.new { |hash, key| hash[key] = Arel::Table.new key }
|
28
|
+
@store = Arel::Table.engine
|
31
29
|
end
|
32
30
|
|
33
|
-
describe '#read'
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
31
|
+
describe '#create and #read' do
|
32
|
+
before :each do
|
33
|
+
properties = {
|
34
|
+
:name => "green hornet",
|
35
|
+
:born_on => Time.now,
|
36
|
+
:photo => "hello",
|
37
|
+
:created_at => Time.now
|
38
|
+
}
|
39
|
+
im = Arel::InsertManager.new Arel::Table.engine
|
40
|
+
im.insert values_array(:superheros, properties)
|
41
|
+
@result = @store.create im.to_sql
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'creates a new record' do
|
45
|
+
query = @tables[:superheros]
|
46
|
+
.project('*')
|
47
|
+
.where(@tables[:superheros][:name].eq('green hornet'))
|
48
|
+
.to_sql
|
49
|
+
result = @store.read query
|
50
|
+
result[0][:name].should == 'green hornet'
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'returns the record with a populated primary key' do
|
54
|
+
@result[:id].should_not be_nil
|
55
|
+
@result[:name].should == 'green hornet'
|
46
56
|
end
|
57
|
+
|
47
58
|
end
|
48
59
|
|
49
60
|
describe '#update' do
|
50
61
|
it 'updates a record and returns the updated record' do
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
62
|
+
properties = {:name => 'batman'}
|
63
|
+
um = Arel::UpdateManager.new @store
|
64
|
+
um.table @tables[:superheros]
|
65
|
+
um.set(values_array(:superheros, properties))
|
66
|
+
.where(@tables[:superheros][:name].eq('megaman'))
|
67
|
+
query = um.to_sql
|
68
|
+
result = @store.update query
|
69
|
+
|
70
|
+
megaman = get_hero('megaman')
|
71
|
+
megaman.size.should == 0
|
72
|
+
megaman.should be_a(Enumerable)
|
73
|
+
|
74
|
+
batman = get_hero('batman')
|
75
|
+
batman.size.should == 1
|
76
|
+
batman.first[:name].should == 'batman'
|
60
77
|
end
|
61
78
|
end
|
62
79
|
|
63
80
|
describe '#destroy' do
|
64
81
|
it 'deletes a record' do
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
82
|
+
delete = Arel::DeleteManager.new @store
|
83
|
+
delete
|
84
|
+
.from(@tables[:superheros])
|
85
|
+
.where(@tables[:superheros][:name].eq('superman'))
|
86
|
+
@store.destroy delete.to_sql
|
87
|
+
superman = get_hero('superman')
|
88
|
+
superman.size.should == 0
|
89
|
+
superman.size.should == 0
|
90
|
+
superman.should be_a(Enumerable)
|
74
91
|
end
|
75
92
|
end
|
76
93
|
|
@@ -6,7 +6,9 @@ module Arc
|
|
6
6
|
describe "All the Schemas!" do
|
7
7
|
it 'lists the table names' do
|
8
8
|
ArcTest.with_store do |store|
|
9
|
-
|
9
|
+
[:superheros, :powers, :superheros_powers].each do |t|
|
10
|
+
store.schema.table_names.should include(t)
|
11
|
+
end
|
10
12
|
end
|
11
13
|
end
|
12
14
|
|
@@ -2,6 +2,15 @@ require 'spec_helper'
|
|
2
2
|
require 'arc/data_stores/mysql/store'
|
3
3
|
|
4
4
|
describe Arc::DataStores::MysqlDataStore do
|
5
|
+
describe '#quote_table_name', :wip => true do
|
6
|
+
store = Arc::DataStores::MysqlDataStore.new ArcTest.config[:mysql]
|
7
|
+
store.quote_table_name('my-table').should == "`my-table`"
|
8
|
+
end
|
9
|
+
describe '#quote_column_name', :wip => true do
|
10
|
+
store = Arc::DataStores::MysqlDataStore.new ArcTest.config[:mysql]
|
11
|
+
store.quote_column_name('my-column').should == "`my-column`"
|
12
|
+
end
|
13
|
+
|
5
14
|
describe "#schema" do
|
6
15
|
it 'is an instance of Arc::DataStores::MysqlSchema' do
|
7
16
|
store = Arc::DataStores::MysqlDataStore.new ArcTest.config[:mysql]
|
@@ -8,4 +8,14 @@ describe Arc::DataStores::PostgresDataStore do
|
|
8
8
|
store.schema.should be_a(Arc::DataStores::ObjectDefinitions::PostgresSchema)
|
9
9
|
end
|
10
10
|
end
|
11
|
+
describe Arc::DataStores::ObjectDefinitions::PostgresColumn, :wip => true do
|
12
|
+
it 'returns a time type' do
|
13
|
+
c = Arc::DataStores::ObjectDefinitions::PostgresColumn.new(nil,
|
14
|
+
:type => "time without time zone"
|
15
|
+
)
|
16
|
+
stype = c.instance_variable_get :@stype
|
17
|
+
stype.should == "time without time zone"
|
18
|
+
c.type.should == :time
|
19
|
+
end
|
20
|
+
end
|
11
21
|
end
|
data/spec/quoting_spec.rb
CHANGED
@@ -26,6 +26,9 @@ module Arc
|
|
26
26
|
quoter.quote("'").should == "''''"
|
27
27
|
quoter.quote("my%String", String).should == "'my%String'"
|
28
28
|
end
|
29
|
+
it 'quotes text' do
|
30
|
+
quoter.quote("hello world", "text").should == "'hello world'"
|
31
|
+
end
|
29
32
|
it 'quotes a date object' do
|
30
33
|
date = Date.today
|
31
34
|
fmt = '%Y-%m-%d'
|
Binary file
|
Binary file
|
Binary file
|
@@ -1,10 +1,22 @@
|
|
1
|
+
DROP TABLE IF EXISTS superheros;
|
1
2
|
CREATE TABLE superheros (
|
2
3
|
id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
3
|
-
name VARCHAR(256) NOT NULL
|
4
|
+
name VARCHAR(256) NOT NULL,
|
5
|
+
born_on DATE NOT NULL,
|
6
|
+
photo BINARY NULL,
|
7
|
+
created_at TIME NOT NULL
|
8
|
+
);
|
9
|
+
|
10
|
+
DROP TABLE IF EXISTS powers;
|
11
|
+
CREATE TABLE powers (
|
12
|
+
id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
13
|
+
name VARCHAR(256) NOT NULL,
|
14
|
+
description TEXT NOT NULL
|
15
|
+
);
|
16
|
+
|
17
|
+
DROP TABLE IF EXISTS superheros_powers;
|
18
|
+
CREATE TABLE superheros_powers(
|
19
|
+
id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
20
|
+
superhero_id INTEGER NOT NULL,
|
21
|
+
power_id INTEGER NOT NULL
|
4
22
|
);
|
5
|
-
INSERT INTO superheros(name)
|
6
|
-
VALUES('superman');
|
7
|
-
INSERT INTO superheros(name)
|
8
|
-
VALUES('spiderman');
|
9
|
-
INSERT INTO superheros(name)
|
10
|
-
VALUES('batman');
|
@@ -1,12 +1,26 @@
|
|
1
1
|
BEGIN TRANSACTION;
|
2
|
+
|
3
|
+
DROP TABLE IF EXISTS superheros;
|
2
4
|
CREATE TABLE superheros (
|
3
5
|
id SERIAL PRIMARY KEY,
|
4
|
-
name VARCHAR(256) NOT NULL
|
6
|
+
name VARCHAR(256) NOT NULL,
|
7
|
+
born_on DATE NOT NULL,
|
8
|
+
photo bytea NULL,
|
9
|
+
created_at TIME NOT NULL
|
5
10
|
);
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
11
|
+
|
12
|
+
DROP TABLE IF EXISTS powers;
|
13
|
+
CREATE TABLE powers (
|
14
|
+
id SERIAL PRIMARY KEY,
|
15
|
+
name VARCHAR(256) NOT NULL,
|
16
|
+
description TEXT NOT NULL
|
17
|
+
);
|
18
|
+
|
19
|
+
DROP TABLE IF EXISTS superheros_powers;
|
20
|
+
CREATE TABLE superheros_powers(
|
21
|
+
id SERIAL PRIMARY KEY,
|
22
|
+
superhero_id INTEGER NOT NULL,
|
23
|
+
power_id INTEGER NOT NULL
|
24
|
+
);
|
25
|
+
|
12
26
|
COMMIT;
|
@@ -1,12 +1,26 @@
|
|
1
1
|
BEGIN TRANSACTION;
|
2
|
+
|
3
|
+
DROP TABLE IF EXISTS superheros;
|
2
4
|
CREATE TABLE superheros (
|
3
5
|
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
4
|
-
name VARCHAR(256) NOT NULL
|
6
|
+
name VARCHAR(256) NOT NULL,
|
7
|
+
born_on DATE NOT NULL,
|
8
|
+
photo BINARY NULL,
|
9
|
+
created_at TIME NOT NULL
|
5
10
|
);
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
11
|
+
|
12
|
+
DROP TABLE IF EXISTS powers;
|
13
|
+
CREATE TABLE powers (
|
14
|
+
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
15
|
+
name VARCHAR(256) NOT NULL,
|
16
|
+
description TEXT NOT NULL
|
17
|
+
);
|
18
|
+
|
19
|
+
DROP TABLE IF EXISTS superheros_powers;
|
20
|
+
CREATE TABLE superheros_powers(
|
21
|
+
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
22
|
+
superhero_id INTEGER NOT NULL,
|
23
|
+
power_id INTEGER NOT NULL
|
24
|
+
);
|
25
|
+
|
12
26
|
COMMIT;
|
@@ -0,0 +1,57 @@
|
|
1
|
+
|
2
|
+
tables = Hash.new do |hash, key|
|
3
|
+
hash[key] = Arel::Table.new key
|
4
|
+
end
|
5
|
+
file_root = File.expand_path("../", __FILE__)
|
6
|
+
data = {
|
7
|
+
:superheros =>
|
8
|
+
[
|
9
|
+
{
|
10
|
+
:name => 'superman',
|
11
|
+
:born_on => Time.now,
|
12
|
+
:photo => 'file',#File.read("#{file_root}/resources/superman.gif"),
|
13
|
+
:created_at => Time.now
|
14
|
+
},
|
15
|
+
{
|
16
|
+
:name => 'ironman',
|
17
|
+
:born_on => Time.now,
|
18
|
+
:photo => 'file',#File.read("#{file_root}/resources/ironman.gif"),
|
19
|
+
:created_at => Time.now
|
20
|
+
},
|
21
|
+
{
|
22
|
+
:name => 'megaman',
|
23
|
+
:born_on => Time.now,
|
24
|
+
:photo => 'file',#File.read("#{file_root}/resources/megaman.jpg"),
|
25
|
+
:created_at => Time.now
|
26
|
+
}
|
27
|
+
],
|
28
|
+
:powers =>
|
29
|
+
[
|
30
|
+
{
|
31
|
+
:name => 'flight',
|
32
|
+
:description => "The ability to levitate in and move through the air.",
|
33
|
+
},
|
34
|
+
{
|
35
|
+
:name => 'money',
|
36
|
+
:description => 'The ability to act like the billionaire owner of apple computer.'
|
37
|
+
},
|
38
|
+
{
|
39
|
+
:name => 'ice blaster',
|
40
|
+
:description => 'Not really a power, but hey. It shoots ice.'
|
41
|
+
}
|
42
|
+
]
|
43
|
+
}
|
44
|
+
|
45
|
+
data.each_pair do |name, tuples|
|
46
|
+
table = tables[name]
|
47
|
+
delete = Arel::DeleteManager.new Arel::Table.engine
|
48
|
+
Arel::Table.engine.destroy delete.from(table).to_sql
|
49
|
+
tuples.each do |tuple|
|
50
|
+
stmt = Arel::InsertManager.new Arel::Table.engine
|
51
|
+
values = tuple.keys.map do |key|
|
52
|
+
[table[key], tuple[key]]
|
53
|
+
end
|
54
|
+
stmt.insert(values)
|
55
|
+
Arel::Table.engine.create stmt.to_sql
|
56
|
+
end
|
57
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: arc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.1.
|
4
|
+
version: 0.0.1.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: 2011-12-
|
12
|
+
date: 2011-12-23 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: agent-q
|
16
|
-
requirement: &
|
16
|
+
requirement: &70338722320520 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70338722320520
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: arel
|
27
|
-
requirement: &
|
27
|
+
requirement: &70338722319980 !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: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70338722319980
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: pg
|
38
|
-
requirement: &
|
38
|
+
requirement: &70338722319560 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70338722319560
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: sqlite3
|
49
|
-
requirement: &
|
49
|
+
requirement: &70338722319020 !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: *70338722319020
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: mysql2
|
60
|
-
requirement: &
|
60
|
+
requirement: &70338722318480 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70338722318480
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
|
-
requirement: &
|
71
|
+
requirement: &70338722294800 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70338722294800
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: simplecov
|
82
|
-
requirement: &
|
82
|
+
requirement: &70338722294240 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *70338722294240
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: ruby-debug
|
93
|
-
requirement: &
|
93
|
+
requirement: &70338722293820 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,7 +98,7 @@ dependencies:
|
|
98
98
|
version: '0'
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *70338722293820
|
102
102
|
description: Compatible with mysql, sqlite, and postgres
|
103
103
|
email:
|
104
104
|
- jacob.s.morris@gmail.com
|
@@ -139,13 +139,17 @@ files:
|
|
139
139
|
- spec/quoting_spec.rb
|
140
140
|
- spec/spec_helper.rb
|
141
141
|
- spec/support/config.yml
|
142
|
+
- spec/support/resources/ironman.gif
|
143
|
+
- spec/support/resources/megaman.jpg
|
142
144
|
- spec/support/resources/rails.png
|
145
|
+
- spec/support/resources/superman.gif
|
143
146
|
- spec/support/schemas/drop_mysql.sql
|
144
147
|
- spec/support/schemas/drop_postgres.sql
|
145
148
|
- spec/support/schemas/drop_sqlite.sql
|
146
149
|
- spec/support/schemas/mysql.sql
|
147
150
|
- spec/support/schemas/postgres.sql
|
148
151
|
- spec/support/schemas/sqlite.sql
|
152
|
+
- spec/support/seed.rb
|
149
153
|
homepage: ''
|
150
154
|
licenses: []
|
151
155
|
post_install_message:
|
@@ -184,10 +188,14 @@ test_files:
|
|
184
188
|
- spec/quoting_spec.rb
|
185
189
|
- spec/spec_helper.rb
|
186
190
|
- spec/support/config.yml
|
191
|
+
- spec/support/resources/ironman.gif
|
192
|
+
- spec/support/resources/megaman.jpg
|
187
193
|
- spec/support/resources/rails.png
|
194
|
+
- spec/support/resources/superman.gif
|
188
195
|
- spec/support/schemas/drop_mysql.sql
|
189
196
|
- spec/support/schemas/drop_postgres.sql
|
190
197
|
- spec/support/schemas/drop_sqlite.sql
|
191
198
|
- spec/support/schemas/mysql.sql
|
192
199
|
- spec/support/schemas/postgres.sql
|
193
200
|
- spec/support/schemas/sqlite.sql
|
201
|
+
- spec/support/seed.rb
|