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
|
# File 'lib/cafe_car/auto_resolver.rb', line 13
def define(mod, name)
case name.to_s
when /^\w+Controller$/
TOPLEVEL_BINDING.eval <<~RUBY, __FILE__, __LINE__
class #{mod.name}::#{name} < CafeCar[:ApplicationController]
include CafeCar::Controller
cafe_car
self
end
RUBY
when /^\w+Policy$/
TOPLEVEL_BINDING.eval <<~RUBY, __FILE__, __LINE__
class #{mod.name}::#{name} < CafeCar[:ApplicationPolicy]
def admin? = Rails.env.development?
def index? = admin?
def show? = admin?
def create? = admin?
def update? = admin?
def destroy? = admin?
def permitted_attributes
model.info.fields.names.then do |names|
[*model.primary_key].reverse.map(&:to_sym) & names | names
end
end
class Scope < Scope
def resolve = scope.all
end
self
end
RUBY
end
end
|