inherited_resources_helpers 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
@@ -4,48 +4,49 @@ module InheritedResources
|
|
4
4
|
def self.included(base)
|
5
5
|
base.extend(ClassMethods)
|
6
6
|
end
|
7
|
-
|
7
|
+
|
8
8
|
module ClassMethods
|
9
9
|
def define_resource_accessors(controller)
|
10
10
|
symbols = parents_symbols + [:self]
|
11
|
-
symbols.inject([]) do |parents,
|
12
|
-
|
11
|
+
symbols.inject([]) do |parents, symbol|
|
12
|
+
config = resources_configuration[symbol]
|
13
|
+
name = symbol == :self ? config[:instance_name] : symbol
|
14
|
+
|
15
|
+
define_resource_accessor(name, config, parents.last)
|
16
|
+
helper_method(name)
|
13
17
|
parents << name
|
14
18
|
end
|
15
19
|
@resource_accessors_defined = true
|
16
20
|
end
|
17
|
-
|
18
|
-
def define_resource_accessor(name,
|
19
|
-
|
20
|
-
target = parents.last || config[:parent_class]
|
21
|
-
method = config[:finder] || config[:collection_name]
|
21
|
+
|
22
|
+
def define_resource_accessor(name, config, target)
|
23
|
+
target ||= config[:parent_class] || resource_class
|
22
24
|
param = config[:param] || :id
|
23
|
-
name = name == :self ? config[:instance_name] : name
|
24
25
|
|
25
26
|
if target.is_a?(Symbol)
|
26
|
-
define_method(name) { send(target).send(
|
27
|
+
define_method(name) { send(target).send(config[:collection_name], params[param]).first }
|
27
28
|
else
|
28
|
-
define_method(name) { target.send(
|
29
|
+
define_method(name) { target.send(config[:finder] || :find, params[param]) }
|
29
30
|
end
|
30
31
|
end
|
31
|
-
|
32
|
+
|
32
33
|
def resource_accessors_defined?
|
33
34
|
!!@resource_accessors_defined
|
34
35
|
end
|
35
|
-
|
36
|
+
|
36
37
|
def resource_accessor?(name)
|
37
38
|
resource_accessors.include?(name.to_sym)
|
38
39
|
end
|
39
|
-
|
40
|
+
|
40
41
|
def resource_accessors
|
41
42
|
@resource_accessors ||= resources_configuration.except(:polymorphic).values.map { |c| c[:instance_name] }
|
42
43
|
end
|
43
44
|
end
|
44
|
-
|
45
|
-
def respond_to?(name)
|
45
|
+
|
46
|
+
def respond_to?(name, include_private = false)
|
46
47
|
self.class.resource_accessor?(name) || super
|
47
48
|
end
|
48
|
-
|
49
|
+
|
49
50
|
def method_missing(name, *args, &block)
|
50
51
|
self.class.define_resource_accessors(self) unless self.class.resource_accessors_defined?
|
51
52
|
respond_to?(name) ? send(name) : super
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: inherited_resources_helpers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 21
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 5
|
10
|
+
version: 0.0.5
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Sven Fuchs
|