Sha256: 078090fd94bda2d65e4ad0dd43c99db24981e3cc4852578b07f0f18a760eb972

Contents?: true

Size: 922 Bytes

Versions: 5

Compression:

Stored size: 922 Bytes

Contents

require 'hanami/hanamirc'
module Hanami
  module Generators
    class TestFramework
      RSPEC = 'rspec'.freeze
      MINITEST = 'minitest'.freeze
      VALID_FRAMEWORKS = [RSPEC, MINITEST].freeze

      attr_reader :framework

      def initialize(hanamirc, framework)
        @framework = (framework || hanamirc.options.fetch(:test))
        assert_framework!
      end

      def rspec?
        framework == RSPEC
      end

      def minitest?
        framework == MINITEST
      end

      private

      def assert_framework!
        if !supported_framework?
          raise ArgumentError.new("Unknown test framework '#{ framework}'. Please use one of #{ valid_test_frameworks.join(', ')}")
        end
      end

      def valid_test_frameworks
        VALID_FRAMEWORKS.map { |name| "'#{ name }'"}
      end

      def supported_framework?
        VALID_FRAMEWORKS.include?(framework)
      end

    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
hanami-0.8.0 lib/hanami/generators/test_framework.rb
hanami-0.7.3 lib/hanami/generators/test_framework.rb
hanami-0.7.2 lib/hanami/generators/test_framework.rb
hanami-0.7.1 lib/hanami/generators/test_framework.rb
hanami-0.7.0 lib/hanami/generators/test_framework.rb