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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
# File 'lib/pakyow/reflection/framework.rb', line 14
def boot
object.include Application::Config::Reflection
object.include Application::Behavior::Reflection::Reflecting
object.isolated :Renderer do
include Presenter::Renderer::Behavior::Reflection::InstallFormMetadata
end
object.isolated :Controller do
def reflect(&block)
operations.reflect(controller: self, &block)
end
end
object.after "load" do
operation :reflect do
action :verify do
if (reflected_action = controller.connection.get(:__reflected_action)) && reflected_action.name == controller.connection.get(:__endpoint_name)
case reflected_action.name
when :create, :update
controller.verify_reflected_form
end
end
end
action :perform do
if (reflected_action = controller.connection.get(:__reflected_action)) && reflected_action.name == controller.connection.get(:__endpoint_name)
case reflected_action.name
when :create, :update, :delete
controller.perform_reflected_action
@object = controller.instance_variable_get(:@object)
end
end
end
action :expose do
if controller.connection.set?(:__reflected_endpoint)
controller.reflective_expose
end
end
action :redirect do
if (reflected_action = controller.connection.get(:__reflected_action)) && reflected_action.name == controller.connection.get(:__endpoint_name)
unless controller.connection.halted?
controller.redirect_to_reflected_destination
end
end
end
end
end
end
|