Class: ActionBlocks::ModelBuilder
Instance Attribute Summary
Attributes inherited from BaseBuilder
#dsl_delegate, #id
Instance Method Summary
collapse
Methods inherited from BlockType
#is_block?, #type
Methods inherited from BaseBuilder
#after_load, array_fields, #before_build, block_type, builds, builds_many, delegate_class, #evaluate, #freeze, includes_scheme_helpers, #initialize, #is_block?, #key, references, sets, sets_many, #ui_reference, #valid?
Instance Method Details
#active_model_is_an_active_record_class ⇒ Object
21
22
23
24
25
26
27
28
29
|
# File 'lib/action_blocks/builders/model_builder.rb', line 21
def active_model_is_an_active_record_class
if @active_model.class != Class
errors.add(:active_model, "Must be an ActiveRecord Class")
else
if !@active_model.ancestors.include? ActiveRecord::Base
errors.add(:active_model, "Must be an ActiveRecord Class")
end
end
end
|
#after_build(parent, *args) ⇒ Object
31
32
33
34
35
36
|
# File 'lib/action_blocks/builders/model_builder.rb', line 31
def after_build(parent, *args)
if !@fields.map(&:id).include?(:id)
@dsl_delegate.identity
end
end
|
#filter_reqs(record_id:, user:) ⇒ Object
62
63
64
|
# File 'lib/action_blocks/builders/model_builder.rb', line 62
def filter_reqs(record_id:, user:)
[:eq, :id, record_id]
end
|
#hashify(user) ⇒ Object
66
67
68
69
70
71
72
73
74
|
# File 'lib/action_blocks/builders/model_builder.rb', line 66
def hashify(user)
{
key: key,
type: type,
name_field: name_field.try(:id),
singular_name: singular_name,
plural_name: plural_name
}
end
|
#name_to_json(record_id:, user:) ⇒ Object
45
46
47
48
49
50
|
# File 'lib/action_blocks/builders/model_builder.rb', line 45
def name_to_json(record_id:, user:)
select_reqs = [name_field.select_requirements]
filter_reqs = [:eq, :id, record_id]
engine = DataEngine.new(active_model, select_reqs: select_reqs, filter_reqs: filter_reqs)
engine.first_to_json
end
|
#select_requirements(fields = nil) ⇒ Object
38
39
40
41
42
43
|
# File 'lib/action_blocks/builders/model_builder.rb', line 38
def select_requirements(fields = nil)
sel_reqs = @fields.map(&:select_requirements)
sel_reqs = sel_reqs.select { |r| fields.include? r[:field_name] } unless fields.nil?
return sel_reqs
end
|
#selection_filter_reqs(record_id:, user:) ⇒ Object
52
53
54
55
56
57
58
59
60
|
# File 'lib/action_blocks/builders/model_builder.rb', line 52
def selection_filter_reqs(record_id:, user:)
[
{
base_path: [active_model, :id],
predicate: :eq,
related_path: [record_id]
}
]
end
|