Sha256: 3a8ceb4b8ca53a8ebf96b30d1a14101b3ead73aa9f4509cf6875a6c187c4facd

Contents?: true

Size: 925 Bytes

Versions: 8

Compression:

Stored size: 925 Bytes

Contents

module RSpec::RubyContentMatchers
  class HaveSubClasses < HaveModules
    attr_reader :superclass, :klass, :full_class

    def initialize *names 
      superclass = last_arg_value({:superclass => ''}, names) 
      @superclass = superclass ? superclass.to_s.camelize : nil
      super *names
      @type = :class
    end            
    
    def main_expr      
      if superclass
        'class' + SPACES + "#{full_class}" + OPT_SPACES + '<' + OPT_SPACES + "#{superclass}" + ANY_GROUP
      else
        super
      end
    end
    
    def failure_message  
      super
      "Expected there to be the subclass #{full_class} of #{superclass}"
    end 

    def negative_failure_message
      super
      "Did no expected there to be the subclass #{full_class} of #{superclass}"
    end    
  end

  # can take :postfix and :superclass hash args  
  def have_subclasses *names
    HaveSubClasses.new *names
  end    
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
code-spec-0.4.0 lib/code_spec/matchers/multi/have_subclasses.rb
code-spec-0.3.0 lib/code_spec/matchers/multi/have_subclasses.rb
code-spec-0.2.11 lib/code_spec/matchers/multi/have_subclasses.rb
code-spec-0.2.9 lib/code_spec/matchers/multi/have_subclasses.rb
code-spec-0.2.8 lib/code_spec/matchers/multi/have_subclasses.rb
code-spec-0.2.7 lib/code_spec/matchers/multi/have_subclasses.rb
code-spec-0.2.6 lib/code_spec/matchers/multi/have_subclasses.rb
code-spec-0.2.5 lib/code_spec/matchers/multi/have_subclasses.rb