delegate_id_to 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/delegate_id_to.rb +16 -13
- data/lib/delegate_id_to/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: 0c89fc957e10541434a071b91443e404187163ba
|
4
|
+
data.tar.gz: ac267f0b78cc03dd70d0cca6db140b87ec90c519
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e90bc5d493f094893e1fdae05fd890001160781cbc72232cf13669881c76364654a9640ed576a82060e6e5ae0a245c2165ad6048da0c50d1bfb6888492ffb346
|
7
|
+
data.tar.gz: a575378f744bf688608d0b19e647d31fc7838a28ffaf8ce00bcc41d70cb0f3926c3630b7b4a34fa0aafae856a8b8f0cbb88e8b9efa9b35766ee56915a412d52e
|
data/lib/delegate_id_to.rb
CHANGED
@@ -1,21 +1,24 @@
|
|
1
1
|
module DelegateIdTo
|
2
|
-
def self.included(base)
|
3
|
-
base.
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
2
|
+
def self.included(base)
|
3
|
+
base.extend ClassMethods
|
4
|
+
end
|
5
|
+
|
6
|
+
module ClassMethods
|
7
|
+
def delegate_id_to(*args)
|
8
|
+
args.each do |method_sym|
|
9
|
+
define_method(:"#{method_sym}_id") do
|
10
|
+
object = send(method_sym)
|
11
|
+
object && object.id
|
10
12
|
end
|
11
13
|
end
|
14
|
+
end
|
12
15
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
end
|
16
|
+
def delegate_id_to_singular_associations
|
17
|
+
# @note For ActiveRecord::Base and children only
|
18
|
+
delegate_id_to *reflect_on_all_associations(:has_one).map(&:name)
|
17
19
|
end
|
18
20
|
end
|
21
|
+
|
19
22
|
end
|
20
23
|
|
21
|
-
|
24
|
+
Object.send(:include, DelegateIdTo) unless Object.included_modules.include? DelegateIdTo
|