Sha256: cfbc41322238b2b47749e569558e593071a7142f73f8878b7e2fce80507102bc

Contents?: true

Size: 965 Bytes

Versions: 6

Compression:

Stored size: 965 Bytes

Contents

# frozen_string_literal: true

module ConvenientService
  module RSpec
    module PrimitiveMatchers
      module Classes
        ##
        # TODO: Specs.
        #
        class HaveAttrAccessor
          def initialize(attr_name)
            @attr_name = attr_name
          end

          def matches?(object)
            @object = object

            Classes::HaveAttrReader.new(attr_name).matches?(object)
            Classes::HaveAttrWriter.new(attr_name).matches?(object)

            true
          end

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

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

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

          private

          attr_reader :object, :attr_name
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
convenient_service-0.19.1 lib/convenient_service/rspec/primitive_matchers/classes/have_attr_accessor.rb
convenient_service-0.19.0 lib/convenient_service/rspec/primitive_matchers/classes/have_attr_accessor.rb
convenient_service-0.18.0 lib/convenient_service/rspec/primitive_matchers/classes/have_attr_accessor.rb
convenient_service-0.17.0 lib/convenient_service/rspec/primitive_matchers/classes/have_attr_accessor.rb
convenient_service-0.16.0 lib/convenient_service/rspec/primitive_matchers/classes/have_attr_accessor.rb
convenient_service-0.15.0 lib/convenient_service/rspec/primitive_matchers/classes/have_attr_accessor.rb