module LinkedRails::Policy::AttributeConditions::ClassMethods
Private Instance Methods
has_properties_shapes(properties)
click to toggle source
# File lib/linked_rails/policy/attribute_conditions.rb, line 25 def has_properties_shapes(properties) # rubocop:disable Naming/PredicateName properties.map do |key, boolean| SHACL::PropertyShape.new( path: policy_class.predicate_for_key(key), max_count: boolean ? nil : 0, min_count: boolean ? 1 : nil ) end end
has_values_shapes(values)
click to toggle source
# File lib/linked_rails/policy/attribute_conditions.rb, line 35 def has_values_shapes(values) # rubocop:disable Naming/PredicateName values.map do |key, value| enum = RDF::Serializers.serializer_for(policy_class).enum_options(key).try(:[], value) santized_value = enum ? -> { enum.iri } : value SHACL::PropertyShape.new( path: policy_class.predicate_for_key(key), has_value: santized_value ) end end
new_record_shapes(boolean)
click to toggle source
# File lib/linked_rails/policy/attribute_conditions.rb, line 47 def new_record_shapes(boolean) has_properties_shapes(created_at: !boolean) end