active_table 0.0.3 → 0.0.4

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/README.md ADDED
@@ -0,0 +1,30 @@
1
+ # ActiveTable
2
+
3
+ ActiveTable is a thin layer on top of ActiveRecord that uses temporary tables to meet
4
+ all of your static data needs.
5
+
6
+ ## Installation
7
+
8
+ gem install active_table
9
+
10
+ ## Usage
11
+
12
+ Everything you need to set up ActiveTable lives within your model. It should be placed
13
+ above any other code so that it can initialize the table and tell ActiveRecord to
14
+ reload the attributes from the table. A sample model is as follows:
15
+
16
+ class Color < ActiveTable::Base
17
+ active_table do
18
+ create_table :colors do |t|
19
+ t.string :name
20
+ end
21
+
22
+ insert :id => 1, :name => "Chartreuse"
23
+ insert :id => 2, :name => "Cerulean"
24
+ insert :id => 3, :name => "Taupe"
25
+ end
26
+ end
27
+
28
+ ActiveTable will handle all of the CREATE/INSERT operations for every database
29
+ connections that is opened. You get to use your new model just like an ActiveRecord
30
+ model and stop worrying about everything else.
@@ -22,6 +22,13 @@ module ActiveTable
22
22
  end
23
23
 
24
24
  def self.create_tables(connection)
25
+ started_inside_a_transaction = !connection.outside_transaction?
26
+ begin
27
+ connection.execute("COMMIT") if started_inside_a_transaction
28
+ rescue ActiveRecord::StatementInvalid
29
+ started_inside_a_transaction = false
30
+ end
31
+
25
32
  @@tables.each_value do |table|
26
33
  next if connection.active_table_loaded_for?(table[:name])
27
34
  connection.create_table table[:name], table[:options].merge(:temporary => true) do |t|
@@ -33,6 +40,8 @@ module ActiveTable
33
40
  end
34
41
  connection.mark_active_table_as_loaded(table[:name])
35
42
  end
43
+
44
+ connection.execute("BEGIN") if started_inside_a_transaction
36
45
  end
37
46
 
38
47
  def self.generate_insert_sql_for_hash(connection, table_name, params)
@@ -1,3 +1,3 @@
1
1
  module ActiveTable
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
metadata CHANGED
@@ -1,13 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_table
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 0
9
- - 3
10
- version: 0.0.3
4
+ prerelease:
5
+ version: 0.0.4
11
6
  platform: ruby
12
7
  authors:
13
8
  - Case Commons LLC
@@ -15,7 +10,7 @@ autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
12
 
18
- date: 2011-06-09 00:00:00 -04:00
13
+ date: 2011-07-01 00:00:00 -04:00
19
14
  default_executable:
20
15
  dependencies:
21
16
  - !ruby/object:Gem::Dependency
@@ -26,19 +21,9 @@ dependencies:
26
21
  requirements:
27
22
  - - ">="
28
23
  - !ruby/object:Gem::Version
29
- hash: 9
30
- segments:
31
- - 2
32
- - 3
33
- - 5
34
24
  version: 2.3.5
35
25
  - - <
36
26
  - !ruby/object:Gem::Version
37
- hash: 63
38
- segments:
39
- - 4
40
- - 0
41
- - 0
42
27
  version: 4.0.0
43
28
  type: :runtime
44
29
  version_requirements: *id001
@@ -54,6 +39,7 @@ extra_rdoc_files: []
54
39
  files:
55
40
  - .gitignore
56
41
  - Gemfile
42
+ - README.md
57
43
  - Rakefile
58
44
  - active_table.gemspec
59
45
  - gemfiles/Gemfile.common
@@ -81,23 +67,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
81
67
  requirements:
82
68
  - - ">="
83
69
  - !ruby/object:Gem::Version
84
- hash: 3
85
- segments:
86
- - 0
87
70
  version: "0"
88
71
  required_rubygems_version: !ruby/object:Gem::Requirement
89
72
  none: false
90
73
  requirements:
91
74
  - - ">="
92
75
  - !ruby/object:Gem::Version
93
- hash: 3
94
- segments:
95
- - 0
96
76
  version: "0"
97
77
  requirements: []
98
78
 
99
79
  rubyforge_project: active_table
100
- rubygems_version: 1.3.7
80
+ rubygems_version: 1.6.2
101
81
  signing_key:
102
82
  specification_version: 3
103
83
  summary: Dynamically-populated ActiveRecord models based on static data