Module: Engine2::MetaApproveSupport
Instance Attribute Summary collapse
Instance Method Summary
collapse
#action_defined, #get_type_info, #hide_pk, #pre_run, #show_pk, #unsupported_association
Instance Attribute Details
#validations ⇒ Object
Returns the value of attribute validations.
667
668
669
|
# File 'lib/engine2/meta.rb', line 667
def validations
@validations
end
|
Instance Method Details
#after_approve(handler, record) ⇒ Object
680
681
|
# File 'lib/engine2/meta.rb', line 680
def after_approve handler, record
end
|
#allocate_record(handler, json) ⇒ Object
695
696
697
698
699
700
701
702
703
704
705
|
# File 'lib/engine2/meta.rb', line 695
def allocate_record handler, json
model = assets[:model]
json_rec = json[:record]
handler.permit json_rec.is_a?(Hash)
val_fields = (dynamic? ? static.validate_fields : @validate_fields) || model.type_info.keys
handler.permit (json_rec.keys - val_fields).empty?
record = model.call(json_rec)
record.validate_fields = val_fields
record
end
|
#before_approve(handler, record) ⇒ Object
677
678
|
# File 'lib/engine2/meta.rb', line 677
def before_approve handler, record
end
|
#invoke(handler) ⇒ Object
711
712
713
714
715
|
# File 'lib/engine2/meta.rb', line 711
def invoke handler
json = handler.post_to_json
record = allocate_record(handler, json)
validate_and_approve(handler, record, json) ? static.record(handler, record) : {record: record.to_hash, errors: record.errors}
end
|
730
731
732
733
|
# File 'lib/engine2/meta.rb', line 730
def post_run
super
validate_fields *action.parent.*.get[:fields] unless validate_fields
end
|
#record(handler, record) ⇒ Object
707
708
709
|
# File 'lib/engine2/meta.rb', line 707
def record handler, record
{errors: nil}
end
|
#validate(name, &blk) ⇒ Object
717
718
719
|
# File 'lib/engine2/meta.rb', line 717
def validate name, &blk
(@validations ||= {})[name] = blk
end
|
#validate_and_approve(handler, record, json) ⇒ Object
683
684
685
686
687
688
689
690
691
692
693
|
# File 'lib/engine2/meta.rb', line 683
def validate_and_approve handler, record, json
static.before_approve(handler, record)
record.valid?
validate_record(handler, record)
if record.errors.empty?
static.after_approve(handler, record)
true
else
false
end
end
|
#validate_fields(*fields) ⇒ Object
669
670
671
672
673
674
675
|
# File 'lib/engine2/meta.rb', line 669
def validate_fields *fields
if fields.empty?
@validate_fields
else
@validate_fields = assets[:model].type_info.keys & (fields + assets[:model].primary_keys).uniq
end
end
|
#validate_record(handler, record) ⇒ Object
721
722
723
724
725
726
727
728
|
# File 'lib/engine2/meta.rb', line 721
def validate_record handler, record
@validations.each do |name, val|
unless record.errors[name]
result = val.(record, handler)
record.errors.add(name, result) if result
end
end if @validations
end
|