rspec_gandalf 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/.gitignore ADDED
@@ -0,0 +1 @@
1
+ .rvmrc
data/Gemfile ADDED
@@ -0,0 +1,7 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in RestApi.gemspec
4
+ gemspec
5
+
6
+ gem 'rspec'
7
+
data/Gemfile.lock ADDED
@@ -0,0 +1,25 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ rspec_gandalf (0.1)
5
+ rspec (~> 2.13)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ diff-lcs (1.2.1)
11
+ rspec (2.13.0)
12
+ rspec-core (~> 2.13.0)
13
+ rspec-expectations (~> 2.13.0)
14
+ rspec-mocks (~> 2.13.0)
15
+ rspec-core (2.13.1)
16
+ rspec-expectations (2.13.0)
17
+ diff-lcs (>= 1.1.3, < 2.0)
18
+ rspec-mocks (2.13.0)
19
+
20
+ PLATFORMS
21
+ ruby
22
+
23
+ DEPENDENCIES
24
+ rspec
25
+ rspec_gandalf!
data/README ADDED
@@ -0,0 +1 @@
1
+ # Test
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env rake
2
+ require "bundler/gem_tasks"
@@ -0,0 +1,68 @@
1
+ # coding: utf-8
2
+
3
+ RSpec::Matchers.define :pass do
4
+ match do |described_object|
5
+ shall_pass?(described_object)
6
+ end
7
+
8
+ failure_message_for_should do |described_object|
9
+ if @class_ancestors_contains_balrog
10
+ "RUN YOU FOOL. You cannot trick me. \nATTENTION: #{described_object.class.name} is a flame of Udun and SHALL NOT PASS"
11
+ else
12
+ "ATTENTION: #{described_object.class.name} is a flame of Udun and SHALL NOT PASS."
13
+ end
14
+ end
15
+
16
+ failure_message_for_should_not do |actual|
17
+ "Wow. Calm down. You aren't a Balrog and shall pass. But be warned: One does not simply shall pass the test."
18
+ end
19
+
20
+ def shall_pass?(described_object)
21
+ !is_balrog?(described_object.class)
22
+ end
23
+
24
+ def is_balrog?(described_class)
25
+ class_name_contains_balrog = !!(described_class.name.match(/balrog/i))
26
+ @class_ancestors_contains_balrog = described_class.ancestors.reduce(class_name_contains_balrog) { |mem, class_name|
27
+ (mem || !!(class_name.name.match(/balrog/i)))
28
+ }
29
+ end
30
+ end
31
+
32
+ # module RSpecGandalf
33
+ # module Matchers
34
+ # class Pass
35
+ # def matches?(described_object)
36
+ # @described_class = described_object.class
37
+ # shall_pass?()
38
+ # end
39
+
40
+ # def failure_message_for_should
41
+ # if @class_ancestors_contains_balrog
42
+ # "RUN YOU FOOL. You cannot trick me. \nATTENTION: #{@described_class.name} is a flame of Udun and SHALL NOT PASS"
43
+ # else
44
+ # "ATTENTION: #{@described_class.name} is a flame of Udun and SHALL NOT PASS."
45
+ # end
46
+ # end
47
+
48
+ # def failure_message_for_should_not
49
+ # "Wow. Calm down. You aren't a Balrog and shall pass. But be warned: One does not simply shall pass the test."
50
+ # end
51
+
52
+ # def shall_pass?
53
+ # !is_balrog?()
54
+ # end
55
+
56
+ # def is_balrog?
57
+ # class_name_contains_balrog = !!(@described_class.name.match(/balrog/i))
58
+ # @class_ancestors_contains_balrog = @described_class.ancestors.reduce(class_name_contains_balrog) { |mem, class_name|
59
+ # (mem || !!(class_name.name.match(/balrog/i)))
60
+ # }
61
+ # end
62
+ # end
63
+
64
+ # def pass
65
+ # Pass.new
66
+ # end
67
+ # end
68
+ # end
@@ -0,0 +1,14 @@
1
+ # coding: utf-8
2
+
3
+ require 'matchers/gandalf'
4
+ require 'rspec'
5
+
6
+ class Object
7
+ def shall(*args)
8
+ should(*args)
9
+ end
10
+
11
+ def shall_not(*args)
12
+ should_not(*args)
13
+ end
14
+ end
@@ -0,0 +1,19 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |gem|
4
+ gem.authors = ["Vinícius Oyama"]
5
+ gem.email = ["vinicius.oyama@gmail.com"]
6
+ gem.platform = Gem::Platform::RUBY
7
+ gem.description = %q{Bad tests shall not pass!}
8
+ gem.summary = %q{One does not simply pass the tests!}
9
+ gem.homepage = "https://github.com/codus/rest_api"
10
+
11
+ gem.files = `git ls-files`.split($\)
12
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
13
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
14
+ gem.name = "rspec_gandalf"
15
+ gem.require_paths = ["lib"]
16
+ gem.version = "0.1"
17
+
18
+ gem.add_dependency('rspec', '~> 2.13')
19
+ end
@@ -0,0 +1,21 @@
1
+ # coding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ class Balrog;end;
6
+
7
+ class Men;end;
8
+
9
+ class Hobbit;end;
10
+
11
+ class TrollRog < Balrog;end;
12
+
13
+ class PretaGil < Balrog;end;
14
+
15
+ describe Hobbit do
16
+ it { shall pass }
17
+ end
18
+
19
+ describe PretaGil do
20
+ it { shall pass }
21
+ end
@@ -0,0 +1,3 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+ require 'rspec_gandalf' # and any other gems you need
metadata ADDED
@@ -0,0 +1,73 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rspec_gandalf
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.1'
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Vinícius Oyama
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-03-29 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rspec
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '2.13'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '2.13'
30
+ description: Bad tests shall not pass!
31
+ email:
32
+ - vinicius.oyama@gmail.com
33
+ executables: []
34
+ extensions: []
35
+ extra_rdoc_files: []
36
+ files:
37
+ - .gitignore
38
+ - Gemfile
39
+ - Gemfile.lock
40
+ - README
41
+ - Rakefile
42
+ - lib/matchers/gandalf.rb
43
+ - lib/rspec_gandalf.rb
44
+ - rspec_gandalf.gemspec
45
+ - spec/rspec_gandalf/rspec_gandalf_spec.rb
46
+ - spec/spec_helper.rb
47
+ homepage: https://github.com/codus/rest_api
48
+ licenses: []
49
+ post_install_message:
50
+ rdoc_options: []
51
+ require_paths:
52
+ - lib
53
+ required_ruby_version: !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ! '>='
57
+ - !ruby/object:Gem::Version
58
+ version: '0'
59
+ required_rubygems_version: !ruby/object:Gem::Requirement
60
+ none: false
61
+ requirements:
62
+ - - ! '>='
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
65
+ requirements: []
66
+ rubyforge_project:
67
+ rubygems_version: 1.8.25
68
+ signing_key:
69
+ specification_version: 3
70
+ summary: One does not simply pass the tests!
71
+ test_files:
72
+ - spec/rspec_gandalf/rspec_gandalf_spec.rb
73
+ - spec/spec_helper.rb