cti 0.1.0 → 0.1.1

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.
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