culturecode_stagehand 0.4.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/stagehand/database.rb +13 -2
- data/lib/stagehand/staging/commit_entry.rb +10 -4
- data/lib/stagehand/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0e34f8b1144de550fdbf2d4cf1395b1ac0596d6a
|
4
|
+
data.tar.gz: 49ce2b899b0a202e7dae920ee831d7b0f43502a0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4b5f80d47ab450ce86ff6a0d4e0e31c517486a7dd67a2cda007e2da64631f90d4e30113ecd2462a212716cbb992bfc7882de830bc239006b0a94afd7aaba64fc
|
7
|
+
data.tar.gz: a045c77ac6cdb29ff73c86f789bc0dafd43722c056911259af48351ee8d14f80f1a35c800af935349d2c51733efcca348e9643e626a1785b0177141a49e0fd3c
|
data/lib/stagehand/database.rb
CHANGED
@@ -12,12 +12,20 @@ module Stagehand
|
|
12
12
|
current_connection_name == Configuration.staging_connection_name
|
13
13
|
end
|
14
14
|
|
15
|
+
def production_connection
|
16
|
+
ProductionProbe.connection
|
17
|
+
end
|
18
|
+
|
15
19
|
def staging_connection
|
16
20
|
StagingProbe.connection
|
17
21
|
end
|
18
22
|
|
19
|
-
def
|
20
|
-
|
23
|
+
def production_database_name
|
24
|
+
database_name(Configuration.production_connection_name)
|
25
|
+
end
|
26
|
+
|
27
|
+
def staging_database_name
|
28
|
+
database_name(Configuration.staging_connection_name)
|
21
29
|
end
|
22
30
|
|
23
31
|
def with_connection(connection_name)
|
@@ -48,6 +56,9 @@ module Stagehand
|
|
48
56
|
@@connection_name_stack.last
|
49
57
|
end
|
50
58
|
|
59
|
+
def database_name(connection_name)
|
60
|
+
Rails.configuration.database_configuration[connection_name.to_s]['database']
|
61
|
+
end
|
51
62
|
|
52
63
|
# CLASSES
|
53
64
|
|
@@ -50,10 +50,16 @@ module Stagehand
|
|
50
50
|
return keys.present? ? where(sql.join(' OR '), *interpolates) : none
|
51
51
|
end
|
52
52
|
|
53
|
-
def self.infer_class(table_name)
|
54
|
-
|
55
|
-
|
53
|
+
def self.infer_class(table_name, record_id = nil)
|
54
|
+
classes = ActiveRecord::Base.descendants.select {|klass| klass.table_name == table_name }
|
55
|
+
classes.delete(Stagehand::Production::Record)
|
56
|
+
root_class = classes.first || table_name.classify.constantize # Try loading the class if it isn't loaded yet
|
56
57
|
|
58
|
+
if record_id && record = root_class.find_by_id(record_id)
|
59
|
+
klass = record.class
|
60
|
+
end
|
61
|
+
|
62
|
+
return klass || root_class
|
57
63
|
rescue NameError
|
58
64
|
raise(IndeterminateRecordClass, "Can't determine class from table name: #{table_name}")
|
59
65
|
end
|
@@ -103,7 +109,7 @@ module Stagehand
|
|
103
109
|
end
|
104
110
|
|
105
111
|
def record_class
|
106
|
-
@record_class ||= self.class.infer_class(table_name)
|
112
|
+
@record_class ||= self.class.infer_class(table_name, record_id)
|
107
113
|
end
|
108
114
|
|
109
115
|
private
|
data/lib/stagehand/version.rb
CHANGED