lib/jsonapi/resource.rb in jsonapi-resources-0.9.8 vs lib/jsonapi/resource.rb in jsonapi-resources-0.9.9

- old
+ new

@@ -455,10 +455,13 @@ unless subclass._attributes[:id] subclass.attribute :id, format: :id end check_reserved_resource_name(subclass._type, subclass.name) + + subclass._routed = false + subclass._warned_missing_route = false end def rebuild_relationships(relationships) original_relationships = relationships.deep_dup @@ -500,11 +503,11 @@ else model_name.rpartition('/').last end end - attr_accessor :_attributes, :_relationships, :_type, :_model_hints + attr_accessor :_attributes, :_relationships, :_type, :_model_hints, :_routed, :_warned_missing_route attr_writer :_allowed_filters, :_paginator def create(context) new(create_model, context) end @@ -1064,27 +1067,31 @@ def mutable? !@immutable end def exclude_links(exclude) + _resolve_exclude_links(exclude) + end + + def _exclude_links + @_exclude_links ||= _resolve_exclude_links(JSONAPI.configuration.default_exclude_links) + end + + def exclude_link?(link) + _exclude_links.include?(link.to_sym) + end + + def _resolve_exclude_links(exclude) case exclude when :default, "default" @_exclude_links = [:self] when :none, "none" @_exclude_links = [] when Array @_exclude_links = exclude.collect {|link| link.to_sym} else fail "Invalid exclude_links" end - end - - def _exclude_links - @_exclude_links ||= [] - end - - def exclude_link?(link) - _exclude_links.include?(link.to_sym) end def caching(val = true) @caching = val end