class Golden::QueryFormOperator
Attributes
form[R]
mode[RW]
params[R]
Public Class Methods
has_query_form(form: nil, form_presenter: nil, result_presenter: nil, record_presenter: nil)
click to toggle source
rubocop:disable Naming/PredicateName
# File lib/golden/objects/query/query_form_operator.rb, line 7 def has_query_form(form: nil, form_presenter: nil, result_presenter: nil, record_presenter: nil) define_method :form_class do return form.to_s.constantize if form.present? "#{self.class.parent.name}::QueryForm".constantize end define_method :form_presenter_class do return form_presenter.to_s.constantize if form_presenter.present? "#{self.class.parent.name}::QueryFormPresenter".constantize end define_method :result_presenter_class do return result_presenter.to_s.constantize if result_presenter.present? "#{self.class.parent.name}::QueryResultPresenter".constantize end define_method :record_presenter_class do return record_presenter.to_s.constantize if record_presenter.present? "#{self.class.parent.name}::QueryRecordPresenter".constantize end end
new(params, accessors = {})
click to toggle source
# File lib/golden/objects/query/query_form_operator.rb, line 42 def initialize(params, accessors = {}) @params = params assign_attributes(accessors || {}) run_callbacks(:build_form) { @form ||= build_form } end
Public Instance Methods
form_presenter()
click to toggle source
# File lib/golden/objects/query/query_form_operator.rb, line 54 def form_presenter @form_presenter ||= form_presenter_class.new form end
perform()
click to toggle source
# File lib/golden/objects/query/query_form_operator.rb, line 48 def perform form.save errors.merge! form.errors errors.empty? end
result_presenter()
click to toggle source
# File lib/golden/objects/query/query_form_operator.rb, line 58 def result_presenter @result_presenter ||= result_presenter_class.collect query_result, record_presenter_class.name end
Private Instance Methods
build_form()
click to toggle source
# File lib/golden/objects/query/query_form_operator.rb, line 78 def build_form form_accessors = send(:query_accessors) if private_methods.include? :query_accessors form_class.new query_params, form_accessors end
query_accessors()
click to toggle source
# File lib/golden/objects/query/query_form_operator.rb, line 68 def query_accessors { mode: mode } end
query_params()
click to toggle source
# File lib/golden/objects/query/query_form_operator.rb, line 64 def query_params params end
query_result()
click to toggle source
# File lib/golden/objects/query/query_form_operator.rb, line 74 def query_result form.result end