12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/admin_bits.rb', line 12
def declare_resource(name, options = {}, &block)
raise "Name must be Symbol" unless name.is_a?(Symbol)
ab_config = AdminBits::BaseConfig.new
ab_config.instance_eval &block
helper_method name
helper Helpers
helper_method :admin_resource
helper_method :admin_filter
define_method :admin_resource do
AdminResource.new(
name,
raw_resource,
ab_config,
action_name,
params
)
end
define_method :raw_resource do
instance_variable_get("@#{name}")
end
define_method :admin_filter do |name|
admin_resource.filter_params[name]
end
define_method name do
admin_resource.output
end
if mods = ab_config.get_mods
mods.new(self)
end
end
|