Module: JSONAPI::Resources::AttributesDsl::FieldResolution
- Defined in:
- lib/json_api/resources/concerns/attributes_dsl.rb
Instance Method Summary collapse
- #inherits_field?(ivar, method) ⇒ Boolean
- #permitted_attributes ⇒ Object
- #permitted_creatable_fields ⇒ Object
- #permitted_updatable_fields ⇒ Object
- #resolve_field_list(ivar, method) ⇒ Object
- #should_inherit_attributes?(declared_attributes) ⇒ Boolean
Instance Method Details
#inherits_field?(ivar, method) ⇒ Boolean
51 52 53 54 55 |
# File 'lib/json_api/resources/concerns/attributes_dsl.rb', line 51 def inherits_field?(ivar, method) superclass != JSONAPI::Resource && superclass.respond_to?(method) && superclass.instance_variable_defined?(ivar) end |
#permitted_attributes ⇒ Object
29 30 31 32 33 34 |
# File 'lib/json_api/resources/concerns/attributes_dsl.rb', line 29 def permitted_attributes declared_attributes = instance_variable_defined?(:@attributes) attrs = @attributes || [] attrs = superclass.permitted_attributes + attrs if should_inherit_attributes?(declared_attributes) attrs.uniq end |
#permitted_creatable_fields ⇒ Object
36 37 38 |
# File 'lib/json_api/resources/concerns/attributes_dsl.rb', line 36 def permitted_creatable_fields resolve_field_list(:@creatable_fields, :permitted_creatable_fields) end |
#permitted_updatable_fields ⇒ Object
40 41 42 |
# File 'lib/json_api/resources/concerns/attributes_dsl.rb', line 40 def permitted_updatable_fields resolve_field_list(:@updatable_fields, :permitted_updatable_fields) end |
#resolve_field_list(ivar, method) ⇒ Object
44 45 46 47 48 49 |
# File 'lib/json_api/resources/concerns/attributes_dsl.rb', line 44 def resolve_field_list(ivar, method) return (instance_variable_get(ivar) || []).uniq if instance_variable_defined?(ivar) return superclass.public_send(method).uniq if inherits_field?(ivar, method) permitted_attributes.uniq end |
#should_inherit_attributes?(declared_attributes) ⇒ Boolean
57 58 59 60 61 |
# File 'lib/json_api/resources/concerns/attributes_dsl.rb', line 57 def should_inherit_attributes?(declared_attributes) !declared_attributes && superclass != JSONAPI::Resource && superclass.respond_to?(:permitted_attributes) end |