Sha256: 7d65f6b8a5676e28be120d5bf36992a147e8c5c1eca9c65919a7b2097fe1e4c7

Contents?: true

Size: 1.59 KB

Versions: 1

Compression:

Stored size: 1.59 KB

Contents

require "active_support/core_ext/kernel"

warnings = capture(:stderr) do
  require "pundit"
  require "pundit/rspec"
end

unless warnings.to_s.empty?
  puts "ERROR: Encountered deprecation warning!"
  puts warnings
  exit 1
end

require "pry"
require "active_support/core_ext"
require "active_model/naming"

I18n.enforce_available_locales = false

module PunditSpecHelper
  extend RSpec::Matchers::DSL

  matcher :be_truthy do
    match do |actual|
      actual
    end
  end
end

RSpec.configure do |config|
  config.include PunditSpecHelper
end

class PostPolicy < Struct.new(:user, :post)
  def update?
    post.user == user
  end
  def destroy?
    false
  end
  def show?
    true
  end
end
class PostPolicy::Scope < Struct.new(:user, :scope)
  def resolve
    scope.published
  end
end
class Post < Struct.new(:user)
  def self.published
    :published
  end
end

class CommentPolicy < Struct.new(:user, :comment); end
class CommentPolicy::Scope < Struct.new(:user, :scope)
  def resolve
    scope
  end
end
class Comment; extend ActiveModel::Naming; end

class Article; end

class BlogPolicy < Struct.new(:user, :blog); end
class Blog; end
class ArtificialBlog < Blog
  def self.policy_class
    BlogPolicy
  end
end
class ArticleTag
  def self.policy_class
    Struct.new(:user, :tag) do
      def show?
        true
      end
      def destroy?
        false
      end
    end
  end
end

class DashboardPolicy < Struct.new(:user, :dashboard); end

class Controller
  include Pundit

  attr_reader :current_user, :params

  def initialize(current_user, params)
    @current_user = current_user
    @params = params
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pundit-0.3.0 spec/spec_helper.rb