class Ducktrails::LinkCollection

Attributes

current_uri[RW]
resources[RW]

Public Class Methods

new(resources, current_uri) click to toggle source
# File lib/ducktrails/link_collection.rb, line 14
def initialize(resources, current_uri)
  @resources ||= default_resources(resources)
  @current_uri ||= current_uri
end

Public Instance Methods

Private Instance Methods

default_resources(yield_resources = nil) click to toggle source
# File lib/ducktrails/link_collection.rb, line 32
def default_resources(yield_resources = nil)
  return {} if yield_resources.nil?
  yield_resources.inject({}) do |resources, resource|
    resource[1].assert_valid_keys(Ducktrails::VALID_RESOURCES)
    @resource = resource[1]
    resources.merge(
      resource[0] => DEFAULTS.merge(sanitized_resource)
    )
  end
end
resource_decorated?() click to toggle source
# File lib/ducktrails/link_collection.rb, line 55
def resource_decorated?
  @resource[:resource].respond_to?(:decorated?) &&
    @resource[:resource].decorated?
rescue NoMethodError
  @resource
end
sanitized_resource() click to toggle source

Used to filter and sanitize decorated resources

# File lib/ducktrails/link_collection.rb, line 44
def sanitized_resource
  return @resource if @resource.is_a?(String)
  return unobjectified_resource if resource_decorated?
  @resource
end
split_uri() click to toggle source
# File lib/ducktrails/link_collection.rb, line 28
def split_uri
  @split_uri ||= current_uri.split('/').reject(&:empty?)
end
unobjectified_resource() click to toggle source
# File lib/ducktrails/link_collection.rb, line 50
def unobjectified_resource
  @resource[:resource] = @resource[:resource].object
  @resource
end