expectations 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README +0 -0
- data/lib/expectations/expectation.rb +20 -0
- data/lib/expectations/results.rb +43 -0
- data/lib/expectations/suite.rb +21 -0
- data/lib/expectations/suite_results.rb +51 -0
- data/lib/expectations/suite_runner.rb +15 -0
- data/lib/expectations.rb +14 -0
- data/rakefile.rb +61 -0
- data/test/all_tests.rb +1 -0
- data/test/expectations/expectation_test.rb +32 -0
- data/test/expectations/results_test.rb +29 -0
- data/test/expectations/suite_results_test.rb +27 -0
- data/test/expectations/suite_test.rb +21 -0
- data/test/sample_expecations_test.rb +12 -0
- data/test/silent.rb +7 -0
- data/test/test_helper.rb +2 -0
- metadata +72 -0
    
        data/README
    ADDED
    
    | 
            File without changes
         | 
| @@ -0,0 +1,20 @@ | |
| 1 | 
            +
            class Expectations::Expectation
         | 
| 2 | 
            +
              attr_accessor :expected, :block, :file, :line, :actual
         | 
| 3 | 
            +
              def initialize(expected, &block)
         | 
| 4 | 
            +
                self.expected, self.block = expected, block
         | 
| 5 | 
            +
                self.file, self.line = eval "[__FILE__, __LINE__]", block.binding
         | 
| 6 | 
            +
              end
         | 
| 7 | 
            +
              
         | 
| 8 | 
            +
              def execute
         | 
| 9 | 
            +
                begin
         | 
| 10 | 
            +
                  self.actual = block.call
         | 
| 11 | 
            +
                  return self.extend(Expectations::Results::Fulfilled) if expected == actual
         | 
| 12 | 
            +
                rescue Exception => ex
         | 
| 13 | 
            +
                  return self.extend(Expectations::Results::Fulfilled) if expected == ex.class
         | 
| 14 | 
            +
                  self.extend(Expectations::Results::Error)
         | 
| 15 | 
            +
                  self.exception, self.actual = ex, ex.class
         | 
| 16 | 
            +
                  return self
         | 
| 17 | 
            +
                end
         | 
| 18 | 
            +
                self.extend(Expectations::Results::Failure)
         | 
| 19 | 
            +
              end
         | 
| 20 | 
            +
            end
         | 
| @@ -0,0 +1,43 @@ | |
| 1 | 
            +
            module Expectations::Results
         | 
| 2 | 
            +
              def initialize(file, line)
         | 
| 3 | 
            +
                self.line, self.file = line, file
         | 
| 4 | 
            +
              end
         | 
| 5 | 
            +
              
         | 
| 6 | 
            +
              def fulfilled?
         | 
| 7 | 
            +
                self.is_a?(Expectations::Results::Fulfilled)
         | 
| 8 | 
            +
              end
         | 
| 9 | 
            +
              
         | 
| 10 | 
            +
              def self.included(klass)
         | 
| 11 | 
            +
                klass.extend ClassMethods
         | 
| 12 | 
            +
              end
         | 
| 13 | 
            +
              
         | 
| 14 | 
            +
              module ClassMethods
         | 
| 15 | 
            +
                def char(arg)
         | 
| 16 | 
            +
                  define_method :char do
         | 
| 17 | 
            +
                    arg
         | 
| 18 | 
            +
                  end
         | 
| 19 | 
            +
                end
         | 
| 20 | 
            +
              end
         | 
| 21 | 
            +
            end
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            module Expectations::Results
         | 
| 24 | 
            +
              module Failure
         | 
| 25 | 
            +
                include Expectations::Results
         | 
| 26 | 
            +
                char "F"
         | 
| 27 | 
            +
              end
         | 
| 28 | 
            +
            end
         | 
| 29 | 
            +
             | 
| 30 | 
            +
            module Expectations::Results
         | 
| 31 | 
            +
              module Fulfilled
         | 
| 32 | 
            +
                include Expectations::Results
         | 
| 33 | 
            +
                char "."
         | 
| 34 | 
            +
              end
         | 
| 35 | 
            +
            end
         | 
| 36 | 
            +
             | 
| 37 | 
            +
            module Expectations::Results
         | 
| 38 | 
            +
              module Error
         | 
| 39 | 
            +
                attr_accessor :exception
         | 
| 40 | 
            +
                include Expectations::Results
         | 
| 41 | 
            +
                char "E"
         | 
| 42 | 
            +
              end
         | 
| 43 | 
            +
            end
         | 
| @@ -0,0 +1,21 @@ | |
| 1 | 
            +
            class Expectations::Suite
         | 
| 2 | 
            +
              
         | 
| 3 | 
            +
              def execute(out=STDOUT)
         | 
| 4 | 
            +
                suite_result = Expectations::SuiteResults.new(out)
         | 
| 5 | 
            +
                benchmark = Benchmark.measure do
         | 
| 6 | 
            +
                  expectations.each do |expectation|
         | 
| 7 | 
            +
                    suite_result << expectation.execute
         | 
| 8 | 
            +
                  end
         | 
| 9 | 
            +
                end
         | 
| 10 | 
            +
                suite_result.print_results(benchmark)
         | 
| 11 | 
            +
                suite_result.result
         | 
| 12 | 
            +
              end
         | 
| 13 | 
            +
              
         | 
| 14 | 
            +
              def expectations
         | 
| 15 | 
            +
                @expectations ||= []
         | 
| 16 | 
            +
              end
         | 
| 17 | 
            +
              
         | 
| 18 | 
            +
              def expect(expected, &block)
         | 
| 19 | 
            +
                self.expectations << Expectations::Expectation.new(expected, &block)
         | 
| 20 | 
            +
              end
         | 
| 21 | 
            +
            end
         | 
| @@ -0,0 +1,51 @@ | |
| 1 | 
            +
            class Expectations::SuiteResults
         | 
| 2 | 
            +
              attr_accessor :result, :out, :expectations
         | 
| 3 | 
            +
              
         | 
| 4 | 
            +
              def initialize(out)
         | 
| 5 | 
            +
                self.out, self.result, self.expectations = out, true, []
         | 
| 6 | 
            +
                out.print "Expectations "
         | 
| 7 | 
            +
              end
         | 
| 8 | 
            +
              
         | 
| 9 | 
            +
              def <<(expectation_result)
         | 
| 10 | 
            +
                out.print expectation_result.char
         | 
| 11 | 
            +
                self.expectations << expectation_result
         | 
| 12 | 
            +
                self.result &&= expectation_result.fulfilled?
         | 
| 13 | 
            +
                self
         | 
| 14 | 
            +
              end
         | 
| 15 | 
            +
              
         | 
| 16 | 
            +
              def fulfilled
         | 
| 17 | 
            +
                expectations.select { |expectation| expectation.is_a?(Expectations::Results::Fulfilled) }
         | 
| 18 | 
            +
              end
         | 
| 19 | 
            +
              
         | 
| 20 | 
            +
              def errors
         | 
| 21 | 
            +
                expectations.select { |expectation| expectation.is_a?(Expectations::Results::Error) }
         | 
| 22 | 
            +
              end
         | 
| 23 | 
            +
              
         | 
| 24 | 
            +
              def failures
         | 
| 25 | 
            +
                expectations.select { |expectation| expectation.is_a?(Expectations::Results::Failure) }
         | 
| 26 | 
            +
              end
         | 
| 27 | 
            +
              
         | 
| 28 | 
            +
              def print_results(benchmark)
         | 
| 29 | 
            +
                benchmark_seconds = benchmark.real.to_s.split(".").first
         | 
| 30 | 
            +
                benchmark_subseconds = benchmark.real.to_s.split(".").last[0..5]
         | 
| 31 | 
            +
                out.puts "\nFinished in #{benchmark_seconds}.#{benchmark_subseconds} seconds"
         | 
| 32 | 
            +
                if result
         | 
| 33 | 
            +
                  out.puts "\nSuccess: #{fulfilled.size} fulfilled"
         | 
| 34 | 
            +
                else
         | 
| 35 | 
            +
                  out.puts "\nFailure: #{failures.size} failed, #{errors.size} errors, #{fulfilled.size} fulfilled"
         | 
| 36 | 
            +
                  out.puts "\nErrors:" if errors.any?
         | 
| 37 | 
            +
                  errors.each do |error|
         | 
| 38 | 
            +
                    out.puts " #{error.file}:#{error.line}:in `expect'"
         | 
| 39 | 
            +
                    out.puts " line <#{error.line}>"
         | 
| 40 | 
            +
                    out.puts " error <#{error.exception.message}>"
         | 
| 41 | 
            +
                    out.puts " expected <#{error.expected.inspect}> got <#{error.actual.inspect}>"
         | 
| 42 | 
            +
                  end
         | 
| 43 | 
            +
                  out.puts "\nFailures:" if failures.any?
         | 
| 44 | 
            +
                  failures.each do |failure|
         | 
| 45 | 
            +
                    out.puts " #{failure.file}:#{failure.line}:in `expect'"
         | 
| 46 | 
            +
                    out.puts " line <#{failure.line}>"
         | 
| 47 | 
            +
                    out.puts " expected: <#{failure.expected.inspect}> got: <#{failure.actual.inspect}>"
         | 
| 48 | 
            +
                  end
         | 
| 49 | 
            +
                end
         | 
| 50 | 
            +
              end
         | 
| 51 | 
            +
            end
         | 
| @@ -0,0 +1,15 @@ | |
| 1 | 
            +
            class Expectations::SuiteRunner
         | 
| 2 | 
            +
              include Singleton
         | 
| 3 | 
            +
              attr_accessor :suite
         | 
| 4 | 
            +
              
         | 
| 5 | 
            +
              def initialize
         | 
| 6 | 
            +
                self.suite = Expectations::Suite.new
         | 
| 7 | 
            +
                at_exit do
         | 
| 8 | 
            +
                  exit 1 unless suite.execute
         | 
| 9 | 
            +
                end
         | 
| 10 | 
            +
              end
         | 
| 11 | 
            +
              
         | 
| 12 | 
            +
              def suite_eval(&block)
         | 
| 13 | 
            +
                self.suite.instance_eval &block
         | 
| 14 | 
            +
              end
         | 
| 15 | 
            +
            end
         | 
    
        data/lib/expectations.rb
    ADDED
    
    | @@ -0,0 +1,14 @@ | |
| 1 | 
            +
            module Expectations
         | 
| 2 | 
            +
            end
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            def Expectations(&block)
         | 
| 5 | 
            +
              Expectations::SuiteRunner.instance.suite_eval &block
         | 
| 6 | 
            +
            end
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            require 'singleton'
         | 
| 9 | 
            +
            require 'benchmark'
         | 
| 10 | 
            +
            require File.expand_path(File.dirname(__FILE__) + '/expectations/suite')
         | 
| 11 | 
            +
            require File.expand_path(File.dirname(__FILE__) + '/expectations/suite_runner')
         | 
| 12 | 
            +
            require File.expand_path(File.dirname(__FILE__) + '/expectations/suite_results')
         | 
| 13 | 
            +
            require File.expand_path(File.dirname(__FILE__) + '/expectations/expectation')
         | 
| 14 | 
            +
            require File.expand_path(File.dirname(__FILE__) + '/expectations/results')
         | 
    
        data/rakefile.rb
    ADDED
    
    | @@ -0,0 +1,61 @@ | |
| 1 | 
            +
            require 'rubygems'
         | 
| 2 | 
            +
            require 'rake/gempackagetask'
         | 
| 3 | 
            +
            require 'rake/rdoctask'
         | 
| 4 | 
            +
            require 'rake/contrib/sshpublisher'
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            task :default do
         | 
| 7 | 
            +
              require File.dirname(__FILE__) + '/test/all_tests.rb'  
         | 
| 8 | 
            +
            end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            desc 'Generate RDoc'
         | 
| 11 | 
            +
            Rake::RDocTask.new do |task|
         | 
| 12 | 
            +
              task.main = 'README'
         | 
| 13 | 
            +
              task.title = 'expectations'
         | 
| 14 | 
            +
              task.rdoc_dir = 'doc'
         | 
| 15 | 
            +
              task.options << "--line-numbers" << "--inline-source"
         | 
| 16 | 
            +
              task.rdoc_files.include('README', 'lib/**/*.rb')
         | 
| 17 | 
            +
            end
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            desc "Upload RDoc to RubyForge"
         | 
| 20 | 
            +
            task :publish_rdoc => [:rdoc] do
         | 
| 21 | 
            +
              Rake::SshDirPublisher.new("jaycfields@rubyforge.org", "/var/www/gforge-projects/expectations", "doc").upload
         | 
| 22 | 
            +
            end
         | 
| 23 | 
            +
             | 
| 24 | 
            +
            Gem::manage_gems
         | 
| 25 | 
            +
             | 
| 26 | 
            +
            specification = Gem::Specification.new do |s|
         | 
| 27 | 
            +
            	s.name   = "expectations"
         | 
| 28 | 
            +
              s.summary = "A lightweight unit testing framework. Tests (expectations) will be written as follows 
         | 
| 29 | 
            +
              expect 2 do 
         | 
| 30 | 
            +
                1 + 1 
         | 
| 31 | 
            +
              end 
         | 
| 32 | 
            +
              
         | 
| 33 | 
            +
              expect NoMethodError do 
         | 
| 34 | 
            +
                Object.invalid_method_call 
         | 
| 35 | 
            +
              end."
         | 
| 36 | 
            +
            	s.version = "0.0.1"
         | 
| 37 | 
            +
            	s.author = 'Jay Fields'
         | 
| 38 | 
            +
              s.description = "A lightweight unit testing framework. Tests (expectations) will be written as follows 
         | 
| 39 | 
            +
              expect 2 do 
         | 
| 40 | 
            +
                1 + 1 
         | 
| 41 | 
            +
              end 
         | 
| 42 | 
            +
              
         | 
| 43 | 
            +
              expect NoMethodError do 
         | 
| 44 | 
            +
                Object.invalid_method_call 
         | 
| 45 | 
            +
              end."
         | 
| 46 | 
            +
              s.homepage = 'http://expectations.rubyforge.org'
         | 
| 47 | 
            +
              s.rubyforge_project = 'expectations'
         | 
| 48 | 
            +
             | 
| 49 | 
            +
              s.has_rdoc = true
         | 
| 50 | 
            +
              s.extra_rdoc_files = ['README']
         | 
| 51 | 
            +
              s.rdoc_options << '--title' << 'expectations' << '--main' << 'README' << '--line-numbers'
         | 
| 52 | 
            +
                                     
         | 
| 53 | 
            +
              s.autorequire = 'arbs'
         | 
| 54 | 
            +
              s.files = FileList['{lib,test}/**/*.rb', '[A-Z]*$', 'rakefile.rb'].to_a
         | 
| 55 | 
            +
            	s.test_file = "test/all_tests.rb"
         | 
| 56 | 
            +
            end
         | 
| 57 | 
            +
             | 
| 58 | 
            +
            Rake::GemPackageTask.new(specification) do |package|
         | 
| 59 | 
            +
            	 package.need_zip = false
         | 
| 60 | 
            +
            	 package.need_tar = false
         | 
| 61 | 
            +
            end
         | 
    
        data/test/all_tests.rb
    ADDED
    
    | @@ -0,0 +1 @@ | |
| 1 | 
            +
            Dir['**/*_test.rb'].each { |test_case| require test_case }
         | 
| @@ -0,0 +1,32 @@ | |
| 1 | 
            +
            require File.dirname(__FILE__) + "/../test_helper"
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            Expectations do
         | 
| 4 | 
            +
              expect true do
         | 
| 5 | 
            +
                Expectations::Expectation.new(1) { 2 }.execute.is_a?(Expectations::Results::Failure)
         | 
| 6 | 
            +
              end
         | 
| 7 | 
            +
              
         | 
| 8 | 
            +
              expect true do
         | 
| 9 | 
            +
                Expectations::Expectation.new(1) { 1 }.execute.is_a?(Expectations::Results::Fulfilled)
         | 
| 10 | 
            +
              end
         | 
| 11 | 
            +
              
         | 
| 12 | 
            +
              expect true do
         | 
| 13 | 
            +
                Expectations::Expectation.new(1) { raise }.execute.is_a?(Expectations::Results::Error)
         | 
| 14 | 
            +
              end
         | 
| 15 | 
            +
              
         | 
| 16 | 
            +
              expect __LINE__ + 1 do
         | 
| 17 | 
            +
                Expectations::Expectation.new(1) { 2 }.execute.line
         | 
| 18 | 
            +
              end
         | 
| 19 | 
            +
             | 
| 20 | 
            +
              expect __LINE__ + 1 do
         | 
| 21 | 
            +
                Expectations::Expectation.new(1) { raise }.execute.line
         | 
| 22 | 
            +
              end
         | 
| 23 | 
            +
             | 
| 24 | 
            +
              expect __FILE__ do
         | 
| 25 | 
            +
                Expectations::Expectation.new(1) { 2 }.execute.file
         | 
| 26 | 
            +
              end
         | 
| 27 | 
            +
              
         | 
| 28 | 
            +
              expect __FILE__ do
         | 
| 29 | 
            +
                Expectations::Expectation.new(1) { raise }.execute.file
         | 
| 30 | 
            +
              end
         | 
| 31 | 
            +
             | 
| 32 | 
            +
            end
         | 
| @@ -0,0 +1,29 @@ | |
| 1 | 
            +
            require File.dirname(__FILE__) + "/../test_helper"
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            Expectations do
         | 
| 4 | 
            +
             | 
| 5 | 
            +
              expect "." do
         | 
| 6 | 
            +
                Object.new.extend(Expectations::Results::Fulfilled).char
         | 
| 7 | 
            +
              end
         | 
| 8 | 
            +
             | 
| 9 | 
            +
              expect "F" do
         | 
| 10 | 
            +
                Object.new.extend(Expectations::Results::Failure).char
         | 
| 11 | 
            +
              end
         | 
| 12 | 
            +
             | 
| 13 | 
            +
              expect "E" do
         | 
| 14 | 
            +
                Object.new.extend(Expectations::Results::Error).char
         | 
| 15 | 
            +
              end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
              expect true do
         | 
| 18 | 
            +
                Object.new.extend(Expectations::Results::Fulfilled).fulfilled?
         | 
| 19 | 
            +
              end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
              expect false do
         | 
| 22 | 
            +
                Object.new.extend(Expectations::Results::Failure).fulfilled?
         | 
| 23 | 
            +
              end
         | 
| 24 | 
            +
             | 
| 25 | 
            +
              expect false do
         | 
| 26 | 
            +
                Object.new.extend(Expectations::Results::Error).fulfilled?
         | 
| 27 | 
            +
              end
         | 
| 28 | 
            +
             | 
| 29 | 
            +
            end
         | 
| @@ -0,0 +1,27 @@ | |
| 1 | 
            +
            require File.dirname(__FILE__) + "/../test_helper"
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            Expectations do
         | 
| 4 | 
            +
              expect 1 do
         | 
| 5 | 
            +
                results = Expectations::SuiteResults.new(Silent)
         | 
| 6 | 
            +
                results << Object.new.extend(Expectations::Results::Fulfilled)
         | 
| 7 | 
            +
                results.fulfilled.size
         | 
| 8 | 
            +
              end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
              expect 0 do
         | 
| 11 | 
            +
                results = Expectations::SuiteResults.new(Silent)
         | 
| 12 | 
            +
                results << Object.new.extend(Expectations::Results::Fulfilled)
         | 
| 13 | 
            +
                results.errors.size
         | 
| 14 | 
            +
              end
         | 
| 15 | 
            +
              
         | 
| 16 | 
            +
              expect true do
         | 
| 17 | 
            +
                results = Expectations::SuiteResults.new(Silent)
         | 
| 18 | 
            +
                results << Object.new.extend(Expectations::Results::Fulfilled)
         | 
| 19 | 
            +
                results.result
         | 
| 20 | 
            +
              end
         | 
| 21 | 
            +
             | 
| 22 | 
            +
              expect false do
         | 
| 23 | 
            +
                results = Expectations::SuiteResults.new(Silent)
         | 
| 24 | 
            +
                results << Object.new.extend(Expectations::Results::Failure)
         | 
| 25 | 
            +
                results.result
         | 
| 26 | 
            +
              end
         | 
| 27 | 
            +
            end
         | 
| @@ -0,0 +1,21 @@ | |
| 1 | 
            +
            require File.dirname(__FILE__) + "/../test_helper"
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            Expectations do
         | 
| 4 | 
            +
              expect 1 do
         | 
| 5 | 
            +
                suite = Expectations::Suite.new
         | 
| 6 | 
            +
                suite.expect(1) { 1 }
         | 
| 7 | 
            +
                suite.expectations.size
         | 
| 8 | 
            +
              end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
              expect true do
         | 
| 11 | 
            +
                suite = Expectations::Suite.new
         | 
| 12 | 
            +
                suite.execute(Silent)
         | 
| 13 | 
            +
              end
         | 
| 14 | 
            +
              
         | 
| 15 | 
            +
              expect false do
         | 
| 16 | 
            +
                suite = Expectations::Suite.new
         | 
| 17 | 
            +
                suite.expect(1) { 2 }
         | 
| 18 | 
            +
                suite.execute(Silent)
         | 
| 19 | 
            +
              end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            end
         | 
    
        data/test/silent.rb
    ADDED
    
    
    
        data/test/test_helper.rb
    ADDED
    
    
    
        metadata
    ADDED
    
    | @@ -0,0 +1,72 @@ | |
| 1 | 
            +
            --- !ruby/object:Gem::Specification 
         | 
| 2 | 
            +
            name: expectations
         | 
| 3 | 
            +
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            +
              version: 0.0.1
         | 
| 5 | 
            +
            platform: ruby
         | 
| 6 | 
            +
            authors: 
         | 
| 7 | 
            +
            - Jay Fields
         | 
| 8 | 
            +
            autorequire: arbs
         | 
| 9 | 
            +
            bindir: bin
         | 
| 10 | 
            +
            cert_chain: []
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            date: 2007-12-25 00:00:00 -05:00
         | 
| 13 | 
            +
            default_executable: 
         | 
| 14 | 
            +
            dependencies: []
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            description: A lightweight unit testing framework. Tests (expectations) will be written as follows  expect 2 do  1 + 1  end   expect NoMethodError do  Object.invalid_method_call  end.
         | 
| 17 | 
            +
            email: 
         | 
| 18 | 
            +
            executables: []
         | 
| 19 | 
            +
             | 
| 20 | 
            +
            extensions: []
         | 
| 21 | 
            +
             | 
| 22 | 
            +
            extra_rdoc_files: 
         | 
| 23 | 
            +
            - README
         | 
| 24 | 
            +
            files: 
         | 
| 25 | 
            +
            - lib/expectations/expectation.rb
         | 
| 26 | 
            +
            - lib/expectations/results.rb
         | 
| 27 | 
            +
            - lib/expectations/suite.rb
         | 
| 28 | 
            +
            - lib/expectations/suite_results.rb
         | 
| 29 | 
            +
            - lib/expectations/suite_runner.rb
         | 
| 30 | 
            +
            - lib/expectations.rb
         | 
| 31 | 
            +
            - test/all_tests.rb
         | 
| 32 | 
            +
            - test/expectations/expectation_test.rb
         | 
| 33 | 
            +
            - test/expectations/results_test.rb
         | 
| 34 | 
            +
            - test/expectations/suite_results_test.rb
         | 
| 35 | 
            +
            - test/expectations/suite_test.rb
         | 
| 36 | 
            +
            - test/sample_expecations_test.rb
         | 
| 37 | 
            +
            - test/silent.rb
         | 
| 38 | 
            +
            - test/test_helper.rb
         | 
| 39 | 
            +
            - rakefile.rb
         | 
| 40 | 
            +
            - README
         | 
| 41 | 
            +
            has_rdoc: true
         | 
| 42 | 
            +
            homepage: http://expectations.rubyforge.org
         | 
| 43 | 
            +
            post_install_message: 
         | 
| 44 | 
            +
            rdoc_options: 
         | 
| 45 | 
            +
            - --title
         | 
| 46 | 
            +
            - expectations
         | 
| 47 | 
            +
            - --main
         | 
| 48 | 
            +
            - README
         | 
| 49 | 
            +
            - --line-numbers
         | 
| 50 | 
            +
            require_paths: 
         | 
| 51 | 
            +
            - lib
         | 
| 52 | 
            +
            required_ruby_version: !ruby/object:Gem::Requirement 
         | 
| 53 | 
            +
              requirements: 
         | 
| 54 | 
            +
              - - ">="
         | 
| 55 | 
            +
                - !ruby/object:Gem::Version 
         | 
| 56 | 
            +
                  version: "0"
         | 
| 57 | 
            +
              version: 
         | 
| 58 | 
            +
            required_rubygems_version: !ruby/object:Gem::Requirement 
         | 
| 59 | 
            +
              requirements: 
         | 
| 60 | 
            +
              - - ">="
         | 
| 61 | 
            +
                - !ruby/object:Gem::Version 
         | 
| 62 | 
            +
                  version: "0"
         | 
| 63 | 
            +
              version: 
         | 
| 64 | 
            +
            requirements: []
         | 
| 65 | 
            +
             | 
| 66 | 
            +
            rubyforge_project: expectations
         | 
| 67 | 
            +
            rubygems_version: 1.0.1
         | 
| 68 | 
            +
            signing_key: 
         | 
| 69 | 
            +
            specification_version: 2
         | 
| 70 | 
            +
            summary: A lightweight unit testing framework. Tests (expectations) will be written as follows  expect 2 do  1 + 1  end   expect NoMethodError do  Object.invalid_method_call  end.
         | 
| 71 | 
            +
            test_files: 
         | 
| 72 | 
            +
            - test/all_tests.rb
         |