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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NjIzZTIxNmE3NDVkYzRhMjI4ZGRlYWZkYThkYTMyYmJlZmY5YTZkZQ==
4
+ OTVjYzE3N2YwNTRiNTBjNDBkNzIyMzMxYmMyNTE4ZTM2ZDlmMjI1Yw==
5
5
  data.tar.gz: !binary |-
6
- ZDlkMzEwYTA5NGI5MjVmNDZkOTEyZDA1Y2IxNmE5MTUzNmMzMjY4ZA==
6
+ MDIxNzA2NmVlYTZlMzY4NmQ1MTNkMTlmZTg2OTM5MTgwYzRmMzMxMg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- YWY4MWFmYjE0NTc5YWJkYTJjNDk0MmI4NWZiNjRkOGQyYWY0MzU4YmQ0OWQ4
10
- NjEwYWIwOGQ5ZTIzOGIzYWZmMWEwZjAxMDEzY2E4ZThhZDkzZjQ1NjBjMzlk
11
- NTJlMzVlZmFiYTA2NTYwM2FkMTI1NDI3NmU2MmJjZGRjMjliYTI=
9
+ MTA3Y2UzZTU1NDk5ZWVjZjc0ZDA0NGE0ODQ4YjQ2NjFkYTIwZWI5OWZkYzU1
10
+ MjJhZTBjZmY3NDAyOWZlZTk5OTdkZjNlYmZlMTMwNDc0YTlhNGI2MTRlYjE3
11
+ YjhmMTVkYmQ1ZGY4OTFiOTk1N2RiOWU2ZTdiMjA4OWQ4MTIwYTY=
12
12
  data.tar.gz: !binary |-
13
- YTgzOGJkOTUwMTAzZjFiOGEyYzBmZTNlM2VjOWNmNzI4Zjg1YTUyZDZlOWRi
14
- NGZlZmM0NTcwZTliNWU5MGJlNWYyMTFhMTVkZWJiMzlhYjlmYjQyMWVlMjNk
15
- MGI5ZTgzYzEwYjZlNDA4N2VlZjM3MWY2NTVkMWM3NjI5OWRjYTE=
13
+ NmQ2NzJjNTAyNWIyZWFkMDRjYTVjNDVlOGYzNmMxN2EyNzk5YjMxMDIzMTQx
14
+ ZDY2MzY1YzAxMTUzZjA3MjM5MGI5ZjNmZGU0ZGM5NzcwMTA0NDliZDE3MWI1
15
+ YjM0NmI5MWE2NjQzN2Y1NGU0NGEwMTI0OTYwMWFkZWUzZDlkOWU=
@@ -1,3 +1,5 @@
1
+ !https://badge.fury.io/rb/cti.png!:http://badge.fury.io/rb/cti
2
+
1
3
  h1. CTI
2
4
 
3
5
  CTI is a gem that implements Multiple Table Inheritance for ActiveRecord models.
@@ -23,40 +23,44 @@ module Cti
23
23
  alias_method_chain :predecessor, :build
24
24
 
25
25
  # Expose columns from the predecessor
26
- self._predecessor_klass.columns.reject{|c| c.primary || c.name =~ /^heir_/}.map(&:name).each do |att|
27
- define_method(att) do
28
- predecessor.send(att)
29
- end
30
- define_method("#{att}=") do |val|
31
- predecessor.send("#{att}=",val)
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
- end
34
-
35
+
35
36
  # Expose associations from the predecessor
36
- self._predecessor_klass.reflect_on_all_associations.reject{|a| a.name == :heir}.each do |association|
37
- define_method(association.name) do
38
- predecessor.send(association.name)
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
- define_method("#{association.name}=") do |val|
41
- predecessor.send("#{association.name}=",val)
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
- # Include validations from the predecessor
46
- self._predecessor_klass.validators.each do |validator|
47
- self.validates_with(validator.class, :attributes => validator.attributes, :options => validator.options)
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.0
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-02-28 00:00:00.000000000 Z
11
+ date: 2014-03-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rdoc