Class: Rasti::App::Facade
- Inherits:
-
Object
- Object
- Rasti::App::Facade
show all
- Defined in:
- lib/rasti/app/facade.rb
Defined Under Namespace
Classes: InteractionSpecification, SynchronicInteractionsFactory, UndefinedInteraction
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(namespace) ⇒ Facade
Returns a new instance of Facade.
72
73
74
75
76
77
|
# File 'lib/rasti/app/facade.rb', line 72
def initialize(namespace)
@interactions = Utils.classes_in(namespace, Interaction).each_with_object({}) do |interaction, hash|
specificaiton = InteractionSpecification.new interaction, namespace
hash[specificaiton.name] = specificaiton
end
end
|
Instance Attribute Details
#interactions ⇒ Object
Returns the value of attribute interactions.
70
71
72
|
# File 'lib/rasti/app/facade.rb', line 70
def interactions
@interactions
end
|
Instance Method Details
#asynchronic_interactions ⇒ Object
102
103
104
|
# File 'lib/rasti/app/facade.rb', line 102
def asynchronic_interactions
interactions.select { |k,v| v.asynchronic? }
end
|
79
80
81
|
# File 'lib/rasti/app/facade.rb', line 79
def build_form(name, params={})
interaction_class(name).build_form params
end
|
#call(name, environment, session, form) ⇒ Object
83
84
85
|
# File 'lib/rasti/app/facade.rb', line 83
def call(name, environment, session, form)
interaction_class(name).new(environment, session).call(form)
end
|
#enqueue(name, session, form, options = {}) ⇒ Object
87
88
89
90
91
92
93
94
95
96
|
# File 'lib/rasti/app/facade.rb', line 87
def enqueue(name, session, form, options={})
interaction = interaction_class name
Job.enqueue queue: options[:queue] || Asynchronic.default_queue,
id: options[:job_id],
wrapper: options[:job_wrapper],
alias: interaction,
interaction: interaction,
session: session,
params: form.to_h
end
|
#permissions ⇒ Object
106
107
108
|
# File 'lib/rasti/app/facade.rb', line 106
def permissions
interactions.values.map(&:permission).sort
end
|
#synchronic_interactions ⇒ Object
98
99
100
|
# File 'lib/rasti/app/facade.rb', line 98
def synchronic_interactions
interactions.select { |k,v| v.synchronic? }
end
|
#synchronic_interactions_factory(environment, session) ⇒ Object
115
116
117
|
# File 'lib/rasti/app/facade.rb', line 115
def synchronic_interactions_factory(environment, session)
SynchronicInteractionsFactory.new self, environment, session
end
|
#valid_permission?(permission) ⇒ Boolean
110
111
112
113
|
# File 'lib/rasti/app/facade.rb', line 110
def valid_permission?(permission)
permission = Permission.new permission
permissions.any? { |p| permission.include? p }
end
|