module LinkedRails::Helpers::ResourceHelper

Public Instance Methods

current_resource() click to toggle source
# File lib/linked_rails/helpers/resource_helper.rb, line 6
def current_resource
  return @current_resource if instance_variable_defined?(:@current_resource)

  @current_resource ||= resolve_current_resource
end
new_resource() click to toggle source
# File lib/linked_rails/helpers/resource_helper.rb, line 12
def new_resource
  @new_resource ||=
    if requested_resource.try(:singular_resource?)
      requested_resource
    elsif parent_resource
      new_resource_from_parent
    else
      build_new_resource
    end
end
params_for_parent() click to toggle source
# File lib/linked_rails/helpers/resource_helper.rb, line 23
def params_for_parent
  params.dup
end
parent_from_params() click to toggle source
# File lib/linked_rails/helpers/resource_helper.rb, line 27
def parent_from_params
  @parent_from_params ||= LinkedRails.iri_mapper.parent_from_params(params, user_context)
end
parent_from_params!() click to toggle source
# File lib/linked_rails/helpers/resource_helper.rb, line 31
def parent_from_params!
  parent_from_params || raise(ActiveRecord::RecordNotFound)
end
parent_resource() click to toggle source
# File lib/linked_rails/helpers/resource_helper.rb, line 35
def parent_resource
  @parent_resource ||= requested_resource_parent || parent_from_params
end
parent_resource!() click to toggle source
# File lib/linked_rails/helpers/resource_helper.rb, line 39
def parent_resource!
  parent_resource || raise(ActiveRecord::RecordNotFound)
end
requested_resource_parent() click to toggle source
# File lib/linked_rails/helpers/resource_helper.rb, line 43
def requested_resource_parent
  requested_resource&.parent
end

Private Instance Methods

build_new_resource() click to toggle source
# File lib/linked_rails/helpers/resource_helper.rb, line 49
def build_new_resource
  controller_class.build_new(user_context: user_context)
end
new_resource_from_parent() click to toggle source
# File lib/linked_rails/helpers/resource_helper.rb, line 53
def new_resource_from_parent
  parent_resource.build_child(
    controller_class,
    user_context: user_context
  )
end
resolve_current_resource() click to toggle source
# File lib/linked_rails/helpers/resource_helper.rb, line 60
def resolve_current_resource
  case action_name
  when 'create', 'new'
    new_resource
  else
    requested_resource
  end
end