Sha256: 16a79b7b93dc302732e05a2658b9262f265804d05933bfa1bb2ced5486a1f82c

Contents?: true

Size: 1.01 KB

Versions: 4

Compression:

Stored size: 1.01 KB

Contents

module Spec
  module DSL
    class Description
      module ClassMethods
        def generate_description(*args)
          description = args.shift.to_s
          unless args.empty?
            suffix = args.shift.to_s
            description << " " unless suffix =~ /^\s|\.|#/
            description << suffix
          end
          description
        end
      end
      extend ClassMethods

      attr_reader :description, :described_type
      
      def initialize(*args)
        args, @options = args_and_options(*args)
        @described_type = args.first unless args.first.is_a?(String)
        @description = self.class.generate_description(*args)
      end
  
      def [](key)
        @options[key]
      end
      
      def []=(key, value)
        @options[key] = value
      end
      
      def to_s; @description; end
      
      def ==(value)
        case value
        when Description
          @description == value.description
        else
          @description == value
        end
      end

    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rspec-1.0.0 lib/spec/dsl/description.rb
rspec-1.0.1 lib/spec/dsl/description.rb
rspec-1.0.2 lib/spec/dsl/description.rb
rspec-1.0.3 lib/spec/dsl/description.rb