Sha256: 121cb3abb43eab302e4d9ef2d30f81b0dd2b827ca2bafd242d4fee4593689590

Contents?: true

Size: 1.03 KB

Versions: 17

Compression:

Stored size: 1.03 KB

Contents

# frozen_string_literal: true

module ConvenientService
  module RSpec
    module Matchers
      module Custom
        ##
        # TODO: Specs.
        #
        class HaveAttrReader
          def initialize(attr_name)
            @attr_name = attr_name
          end

          def matches?(object)
            @object = object

            ##
            # IMPORTANT: A copy is created in order to be thread safe.
            #
            copy = object.dup

            copy.instance_variable_set("@#{attr_name}", :custom_value)

            copy.public_send(attr_name) == :custom_value
          end

          def description
            "have attr reader `#{attr_name}`"
          end

          def failure_message
            "expected `#{object.class}` to have attr reader `#{attr_name}`"
          end

          def failure_message_when_negated
            "expected `#{object.class}` NOT to have attr reader `#{attr_name}`"
          end

          private

          attr_reader :object, :attr_name
        end
      end
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
convenient_service-0.14.0 lib/convenient_service/rspec/matchers/custom/have_attr_reader.rb
convenient_service-0.13.0 lib/convenient_service/rspec/matchers/custom/have_attr_reader.rb
convenient_service-0.12.0 lib/convenient_service/rspec/matchers/custom/have_attr_reader.rb
convenient_service-0.11.0 lib/convenient_service/rspec/matchers/custom/have_attr_reader.rb
convenient_service-0.10.1 lib/convenient_service/rspec/matchers/custom/have_attr_reader.rb
convenient_service-0.10.0 lib/convenient_service/rspec/matchers/custom/have_attr_reader.rb
convenient_service-0.9.0 lib/convenient_service/rspec/matchers/custom/have_attr_reader.rb
convenient_service-0.8.0 lib/convenient_service/rspec/matchers/custom/have_attr_reader.rb
convenient_service-0.7.0 lib/convenient_service/rspec/matchers/custom/have_attr_reader.rb
convenient_service-0.6.0 lib/convenient_service/rspec/matchers/custom/have_attr_reader.rb
convenient_service-0.5.0 lib/convenient_service/rspec/matchers/custom/have_attr_reader.rb
convenient_service-0.4.0 lib/convenient_service/rspec/matchers/custom/have_attr_reader.rb
convenient_service-0.3.1 lib/convenient_service/rspec/matchers/custom/have_attr_reader.rb
convenient_service-0.3.0 lib/convenient_service/rspec/matchers/custom/have_attr_reader.rb
convenient_service-0.2.1 lib/convenient_service/rspec/matchers/custom/have_attr_reader.rb
convenient_service-0.2.0 lib/convenient_service/rspec/matchers/custom/have_attr_reader.rb
convenient_service-0.1.0 lib/convenient_service/rspec/matchers/custom/have_attr_reader.rb