class Fixably::ActionPolicy
Attributes
resource[R]
Public Class Methods
new(resource:)
click to toggle source
# File lib/fixably/action_policy.rb, line 7 def initialize(resource:) @resource = resource.instance_of?(Class) ? resource : resource.class validate_resource! end
Public Instance Methods
create!()
click to toggle source
# File lib/fixably/action_policy.rb, line 16 def create! return true if create? raise( UnsupportedError, "Fixably does not support creating #{resource_name}" ) end
create?()
click to toggle source
# File lib/fixably/action_policy.rb, line 12 def create? resource.actions.include?(:create) end
delete!()
click to toggle source
# File lib/fixably/action_policy.rb, line 29 def delete! return true if delete? raise( UnsupportedError, "Fixably does not support deleting #{resource_name}" ) end
delete?()
click to toggle source
# File lib/fixably/action_policy.rb, line 25 def delete? resource.actions.include?(:delete) end
list!()
click to toggle source
# File lib/fixably/action_policy.rb, line 42 def list! return true if list? raise( UnsupportedError, "Fixably does not support listing #{resource_name}" ) end
list?()
click to toggle source
# File lib/fixably/action_policy.rb, line 38 def list? resource.actions.include?(:list) end
show!()
click to toggle source
# File lib/fixably/action_policy.rb, line 55 def show! return true if show? raise( UnsupportedError, "Fixably does not support retrieving #{resource_name}" ) end
show?()
click to toggle source
# File lib/fixably/action_policy.rb, line 51 def show? resource.actions.include?(:show) end
update!()
click to toggle source
# File lib/fixably/action_policy.rb, line 68 def update! return true if update? raise( UnsupportedError, "Fixably does not support updating #{resource_name}" ) end
update?()
click to toggle source
# File lib/fixably/action_policy.rb, line 64 def update? resource.actions.include?(:update) end
Private Instance Methods
resource_name()
click to toggle source
# File lib/fixably/action_policy.rb, line 88 def resource_name resource.name.split("::").last.underscore.humanize.pluralize.downcase end
validate_resource!()
click to toggle source
# File lib/fixably/action_policy.rb, line 79 def validate_resource! return if resource.ancestors.include?(ApplicationResource) raise( ArgumentError, "The resource should inherit from ApplicationResource" ) end