active_table 0.0.5 → 0.0.6
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/lib/active_table/base.rb +8 -0
- data/lib/active_table/version.rb +1 -1
- data/spec/active_table_spec.rb +23 -0
- metadata +3 -3
data/lib/active_table/base.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
module ActiveTable
|
2
2
|
class Base < ActiveRecord::Base
|
3
3
|
@@insert_statements = []
|
4
|
+
@@table_list = []
|
5
|
+
|
4
6
|
def self.active_table(&block)
|
5
7
|
@table = {}
|
6
8
|
block.call
|
@@ -20,6 +22,10 @@ module ActiveTable
|
|
20
22
|
@table[:rows] << params
|
21
23
|
end
|
22
24
|
|
25
|
+
def self.table_list
|
26
|
+
@@table_list
|
27
|
+
end
|
28
|
+
|
23
29
|
def self.create_table!
|
24
30
|
connection = ActiveRecord::Base.connection
|
25
31
|
connection.execute "DROP TABLE IF EXISTS #{connection.quote_table_name(@table[:name])}"
|
@@ -29,6 +35,8 @@ module ActiveTable
|
|
29
35
|
end
|
30
36
|
|
31
37
|
@@insert_statements.reject!{|statement| statement[:table_name] == @table[:name]}
|
38
|
+
@@table_list << @table[:name] unless @@table_list.include?(@table[:name])
|
39
|
+
|
32
40
|
@table[:rows].each do |row|
|
33
41
|
insert_sql = generate_insert_sql_for_hash(connection, @table[:name], row)
|
34
42
|
connection.execute insert_sql
|
data/lib/active_table/version.rb
CHANGED
data/spec/active_table_spec.rb
CHANGED
@@ -47,6 +47,29 @@ describe "a model created with active_table" do
|
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
|
+
context "#table_list" do
|
51
|
+
it "should return a list of tables under ActiveTable control" do
|
52
|
+
class AwesomeModel < ActiveTable::Base
|
53
|
+
active_table do
|
54
|
+
create_table :awesome_models do |t|
|
55
|
+
t.string :name
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
class MoreAwesomeModel < ActiveTable::Base
|
61
|
+
active_table do
|
62
|
+
create_table :more_awesome_models do |t|
|
63
|
+
t.string :title
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
ActiveTable::Base.table_list.should include(:awesome_models, :more_awesome_models)
|
69
|
+
ActiveTable::Base.table_list.count.should == 2
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
50
73
|
context "#seed!" do
|
51
74
|
it "should attempt to re-insert all rows" do
|
52
75
|
class AwesomeModel < ActiveTable::Base
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_table
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -14,7 +14,7 @@ default_executable:
|
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activerecord
|
17
|
-
requirement: &
|
17
|
+
requirement: &2164666700 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -25,7 +25,7 @@ dependencies:
|
|
25
25
|
version: 4.0.0
|
26
26
|
type: :runtime
|
27
27
|
prerelease: false
|
28
|
-
version_requirements: *
|
28
|
+
version_requirements: *2164666700
|
29
29
|
description: Dynamically-populated ActiveRecord models based on static data
|
30
30
|
email:
|
31
31
|
- casecommons-dev@googlegroups.com
|