cti 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/README.textile +2 -0
- data/lib/cti/active_record/acts_as_heir.rb +28 -24
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
OTVjYzE3N2YwNTRiNTBjNDBkNzIyMzMxYmMyNTE4ZTM2ZDlmMjI1Yw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MDIxNzA2NmVlYTZlMzY4NmQ1MTNkMTlmZTg2OTM5MTgwYzRmMzMxMg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MTA3Y2UzZTU1NDk5ZWVjZjc0ZDA0NGE0ODQ4YjQ2NjFkYTIwZWI5OWZkYzU1
|
10
|
+
MjJhZTBjZmY3NDAyOWZlZTk5OTdkZjNlYmZlMTMwNDc0YTlhNGI2MTRlYjE3
|
11
|
+
YjhmMTVkYmQ1ZGY4OTFiOTk1N2RiOWU2ZTdiMjA4OWQ4MTIwYTY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NmQ2NzJjNTAyNWIyZWFkMDRjYTVjNDVlOGYzNmMxN2EyNzk5YjMxMDIzMTQx
|
14
|
+
ZDY2MzY1YzAxMTUzZjA3MjM5MGI5ZjNmZGU0ZGM5NzcwMTA0NDliZDE3MWI1
|
15
|
+
YjM0NmI5MWE2NjQzN2Y1NGU0NGEwMTI0OTYwMWFkZWUzZDlkOWU=
|
data/README.textile
CHANGED
@@ -23,40 +23,44 @@ module Cti
|
|
23
23
|
alias_method_chain :predecessor, :build
|
24
24
|
|
25
25
|
# Expose columns from the predecessor
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
26
|
+
begin
|
27
|
+
self._predecessor_klass.columns.reject{|c| c.primary || c.name =~ /^heir_/}.map(&:name).each do |att|
|
28
|
+
define_method(att) do
|
29
|
+
predecessor.send(att)
|
30
|
+
end
|
31
|
+
define_method("#{att}=") do |val|
|
32
|
+
predecessor.send("#{att}=",val)
|
33
|
+
end
|
32
34
|
end
|
33
|
-
|
34
|
-
|
35
|
+
|
35
36
|
# Expose associations from the predecessor
|
36
|
-
|
37
|
-
|
38
|
-
|
37
|
+
self._predecessor_klass.reflect_on_all_associations.reject{|a| a.name == :heir}.each do |association|
|
38
|
+
define_method(association.name) do
|
39
|
+
predecessor.send(association.name)
|
40
|
+
end
|
41
|
+
define_method("#{association.name}=") do |val|
|
42
|
+
predecessor.send("#{association.name}=",val)
|
43
|
+
end
|
39
44
|
end
|
40
|
-
|
41
|
-
|
45
|
+
|
46
|
+
# Include validations from the predecessor
|
47
|
+
self._predecessor_klass.validators.each do |validator|
|
48
|
+
self.validates_with(validator.class, :attributes => validator.attributes, :options => validator.options)
|
42
49
|
end
|
43
|
-
end
|
44
50
|
|
45
|
-
#
|
46
|
-
|
47
|
-
|
51
|
+
# Expose methods from predecessor
|
52
|
+
self._predecessor_klass.get_heritage_exposed_methods.each do |method_symbol|
|
53
|
+
define_method(method_symbol.to_s) do |*args|
|
54
|
+
predecessor.send(method_symbol.to_s, *args)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
rescue
|
58
|
+
Rails.logger.error "Databse not set up yet"
|
48
59
|
end
|
49
60
|
|
50
61
|
# We need to make sure that updated_at values in the predecessor table is updated when the heir is saved.
|
51
62
|
before_update :touch_predecessor, :unless => lambda { predecessor.changed? }
|
52
63
|
|
53
|
-
# Expose methods from predecessor
|
54
|
-
self._predecessor_klass.get_heritage_exposed_methods.each do |method_symbol|
|
55
|
-
define_method(method_symbol.to_s) do |*args|
|
56
|
-
predecessor.send(method_symbol.to_s, *args)
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
64
|
# This piece deals with errors names
|
61
65
|
# and simply strips "predecessor." part from all the predecessor errors.
|
62
66
|
after_validation do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cti
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Seyed Razavi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-03-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rdoc
|