custom_rspec_matchers 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/.bundle/config ADDED
@@ -0,0 +1,2 @@
1
+ ---
2
+ BUNDLE_DISABLE_SHARED_GEMS: "1"
data/.document ADDED
@@ -0,0 +1,5 @@
1
+ README.rdoc
2
+ lib/**/*.rb
3
+ bin/*
4
+ features/**/*.feature
5
+ LICENSE
data/.gitignore ADDED
@@ -0,0 +1,27 @@
1
+ ## MAC OS
2
+ .DS_Store
3
+
4
+ ## TEXTMATE
5
+ *.tmproj
6
+ tmtags
7
+
8
+ ## EMACS
9
+ *~
10
+ \#*
11
+ .\#*
12
+
13
+ ## VIM
14
+ *.swp
15
+
16
+ ## PROJECT::GENERAL
17
+ coverage
18
+ rdoc
19
+ pkg
20
+
21
+ ## PROJECT::SPECIFIC
22
+ .project
23
+ .redcar
24
+
25
+ pkg/*
26
+ *.gem
27
+ .bundle
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm use 1.9.2@custom
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "http://rubygems.org"
2
+
3
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,60 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ custom_rspec_matchers (0.0.1)
5
+ actionpack (~> 3.0)
6
+ activemodel (~> 3.0)
7
+ rake
8
+ rspec (~> 2.0)
9
+
10
+ GEM
11
+ remote: http://rubygems.org/
12
+ specs:
13
+ abstract (1.0.0)
14
+ actionpack (3.0.1)
15
+ activemodel (= 3.0.1)
16
+ activesupport (= 3.0.1)
17
+ builder (~> 2.1.2)
18
+ erubis (~> 2.6.6)
19
+ i18n (~> 0.4.1)
20
+ rack (~> 1.2.1)
21
+ rack-mount (~> 0.6.12)
22
+ rack-test (~> 0.5.4)
23
+ tzinfo (~> 0.3.23)
24
+ activemodel (3.0.1)
25
+ activesupport (= 3.0.1)
26
+ builder (~> 2.1.2)
27
+ i18n (~> 0.4.1)
28
+ activesupport (3.0.1)
29
+ builder (2.1.2)
30
+ diff-lcs (1.1.2)
31
+ erubis (2.6.6)
32
+ abstract (>= 1.0.0)
33
+ i18n (0.4.1)
34
+ rack (1.2.1)
35
+ rack-mount (0.6.13)
36
+ rack (>= 1.0.0)
37
+ rack-test (0.5.6)
38
+ rack (>= 1.0)
39
+ rake (0.8.7)
40
+ rspec (2.0.0)
41
+ rspec-core (= 2.0.0)
42
+ rspec-expectations (= 2.0.0)
43
+ rspec-mocks (= 2.0.0)
44
+ rspec-core (2.0.0)
45
+ rspec-expectations (2.0.0)
46
+ diff-lcs (>= 1.1.2)
47
+ rspec-mocks (2.0.0)
48
+ rspec-core (= 2.0.0)
49
+ rspec-expectations (= 2.0.0)
50
+ tzinfo (0.3.23)
51
+
52
+ PLATFORMS
53
+ ruby
54
+
55
+ DEPENDENCIES
56
+ actionpack (~> 3.0)
57
+ activemodel (~> 3.0)
58
+ custom_rspec_matchers!
59
+ rake
60
+ rspec (~> 2.0)
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2009 Kenny Ortmann
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,17 @@
1
+ = custom_rspec_matchers
2
+
3
+ Description goes here.
4
+
5
+ == Note on Patches/Pull Requests
6
+
7
+ * Fork the project.
8
+ * Make your feature addition or bug fix.
9
+ * Add tests for it. This is important so I don't break it in a
10
+ future version unintentionally.
11
+ * Commit, do not mess with rakefile, version, or history.
12
+ (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
13
+ * Send me a pull request. Bonus points for topic branches.
14
+
15
+ == Copyright
16
+
17
+ Copyright (c) 2010 Kenny Ortmann. See LICENSE for details.
data/Rakefile ADDED
@@ -0,0 +1,30 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
+
4
+ require 'rspec'
5
+ require "rspec/core/rake_task"
6
+ desc "Run all examples"
7
+ RSpec::Core::RakeTask.new(:spec) do |t|
8
+ t.rspec_opts = %w[--color]
9
+ end
10
+
11
+ namespace :spec do
12
+ desc "Run all examples using rcov"
13
+ RSpec::Core::RakeTask.new :rcov => :cleanup_rcov_files do |t|
14
+ t.rcov = true
15
+ t.rcov_opts = %[-Ilib -Ispec --exclude "gems/*,features"]
16
+ t.rcov_opts << %[--text-report --sort coverage --no-html --aggregate coverage.data]
17
+ end
18
+ end
19
+
20
+ task :default => :spec
21
+
22
+ require 'rake/rdoctask'
23
+ Rake::RDocTask.new do |rdoc|
24
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
25
+
26
+ rdoc.rdoc_dir = 'rdoc'
27
+ rdoc.title = "test #{version}"
28
+ rdoc.rdoc_files.include('README*')
29
+ rdoc.rdoc_files.include('lib/**/*.rb')
30
+ end
@@ -0,0 +1,23 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = "custom_rspec_matchers"
6
+ s.version = '0.0.1'
7
+ s.platform = Gem::Platform::RUBY
8
+ s.authors = ["kenny ortmann", "matt simpson", "amos king"]
9
+ s.email = ['kenny.ortmann@gmail.com', 'matt.simpson@asolutions.com', 'amos.king@asolutions.com']
10
+ s.homepage = ""
11
+ s.summary = %q{a few custom rspec matchers we have created to help with testing}
12
+ s.description = %q{custopm rspec mathcers }
13
+
14
+ s.files = `git ls-files`.split("\n")
15
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
+ s.require_paths = ["lib"]
18
+ s.add_dependency('rake')
19
+ s.add_dependency('rspec', '~>2.0')
20
+ s.add_dependency('actionpack', '~>3.0')
21
+ s.add_dependency('activemodel', '~>3.0')
22
+
23
+ end
@@ -0,0 +1,3 @@
1
+ require 'custom_rspec_matchers/matchers/callback_matcher'
2
+ require 'custom_rspec_matchers/matchers/filter_matcher'
3
+ require 'custom_rspec_matchers/matchers/inherit_from_matcher'
@@ -0,0 +1,60 @@
1
+ module CustomRspecMatchers
2
+ module Matchers
3
+ class CallbackMatcher
4
+ def initialize(kind, callback_on, method)
5
+ @kind = kind
6
+ @callback_on = callback_on
7
+ @method = method
8
+ end
9
+
10
+ def matches?(model)
11
+ @callbacks = model.send("_#{@callback_on}_callbacks").find_all {|cb| cb.kind == @kind && cb.raw_filter == @method}
12
+ @callbacks.size == 1
13
+ end
14
+
15
+ def description
16
+ " has #{@kind}_#{@callback_on} callback on #{@method}"
17
+ end
18
+
19
+ def failure_message
20
+ msg = " expected to have #{@kind}_#{@callback_on} callback on #{@method}"
21
+ end
22
+ end
23
+
24
+ def have_after_create_callback(method)
25
+ CallbackMatcher.new(:after, :create, method)
26
+ end
27
+
28
+ def have_before_create_callback(method)
29
+ CallbackMatcher.new(:before, :create, method)
30
+ end
31
+
32
+ def have_around_create_callback(method)
33
+ CallbackMatcher.new(:around, :create, method)
34
+ end
35
+
36
+ def have_after_save_callback(method)
37
+ CallbackMatcher.new(:after, :save, method)
38
+ end
39
+
40
+ def have_before_save_callback(method)
41
+ CallbackMatcher.new(:before, :save, method)
42
+ end
43
+
44
+ def have_around_save_callback(method)
45
+ CallbackMatcher.new(:around, :save, method)
46
+ end
47
+
48
+ def have_after_update_callback(method)
49
+ CallbackMatcher.new(:after, :update, method)
50
+ end
51
+
52
+ def have_before_update_callback(method)
53
+ CallbackMatcher.new(:before, :update, method)
54
+ end
55
+
56
+ def have_around_update_callback(method)
57
+ CallbackMatcher.new(:around, :update, method)
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,74 @@
1
+ module CustomRspecMatchers
2
+ module Matchers
3
+ class FilterMatcher
4
+ def initialize(filter_type, expected_filter)
5
+ @filter_type = filter_type
6
+ @expected_filter = expected_filter
7
+ @options = {}
8
+ @failure_message = ''
9
+ end
10
+
11
+ def description
12
+ "include #{@filter_type.to_s} filter: #{@expected_filter}"
13
+ end
14
+
15
+ def only_on(*only)
16
+ @options = {:only => only}
17
+ self
18
+ end
19
+
20
+ def except_on(*except)
21
+ @options = {:except => except}
22
+ self
23
+ end
24
+
25
+ def matches?(inheriting_instance)
26
+ filter = inheriting_instance._process_action_callbacks.find_all { |x| x.kind == @filter_type && x.raw_filter == @expected_filter }.first
27
+ if filter
28
+ filter_matches(filter)
29
+ else
30
+ actual_filters = inheriting_instance._process_action_callbacks.find_all { |x| x.kind == @filter_type }.collect(&:filter)
31
+ @failure_message = " expected to include #{@filter_type.to_s} filter #{@expected_filter} but not found in #{actual_filters}"
32
+ end
33
+ @failure_message.blank?
34
+ end
35
+
36
+ def filter_matches(filter)
37
+ only_options_difference = options_difference_for_type(filter, :only)
38
+ except_options_difference = options_difference_for_type(filter, :except)
39
+ unless only_options_difference.empty? && except_options_difference.empty?
40
+ @failure_message = " #{@filter_type}_type: #{@expected_filter} was found but these differences exist:\n"
41
+ unless only_options_difference.empty?
42
+ @failure_message += " expected only on actions '#{array_text @options[:only]}' but was on '#{array_text filter.options[:only]}'\n"
43
+ end
44
+ unless except_options_difference.empty?
45
+ @failure_message += " expected except on actions '#{array_text @options[:except]}' but was on '#{array_text filter.options[:except]}'\n"
46
+ end
47
+ end
48
+ end
49
+
50
+ def array_text(array)
51
+ real_array = ([] << array).flatten.compact
52
+ real_array.empty? ? '[]' : real_array
53
+ end
54
+
55
+ def options_difference_for_type(filter, option_type)
56
+ actual_filter_options = ([] << filter.options[option_type]).flatten
57
+ expected_filter_options = ([] << @options[option_type]).flatten
58
+ actual_filter_options - expected_filter_options
59
+ end
60
+
61
+ def failure_message
62
+ @failure_message
63
+ end
64
+ end
65
+
66
+ def include_before_filter(expected_filter)
67
+ FilterMatcher.new :before, expected_filter
68
+ end
69
+
70
+ def include_after_filter(expected_filter)
71
+ FilterMatcher.new :after, expected_filter
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,26 @@
1
+ module CustomRspecMatchers
2
+ module Matchers
3
+ class InheritFromMatcher
4
+ def initialize(clazz)
5
+ @clazz=clazz
6
+ end
7
+
8
+ def matches?(inheriting_instance)
9
+ @inheriting_class = inheriting_instance.class.superclass
10
+ @inheriting_class == @clazz
11
+ end
12
+
13
+ def description
14
+ "inherit from #{@clazz}"
15
+ end
16
+
17
+ def failure_message
18
+ " expected to inherit from #{@clazz} but was #{@inheriting_class}"
19
+ end
20
+ end
21
+
22
+ def inherit_from(clazz)
23
+ InheritFromMatcher.new(clazz)
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,52 @@
1
+ require 'spec_helper'
2
+
3
+ describe FooController do
4
+ describe "before all methods filter" do
5
+ it { should include_before_filter(:for_all_methods) }
6
+ end
7
+ describe "after all methods filter" do
8
+ it { should include_after_filter(:for_all_methods) }
9
+ end
10
+ describe "after_filters only create" do
11
+ it { should include_after_filter(:after_filter_only_create).only_on(:create) }
12
+ end
13
+ describe "after_filters only show" do
14
+ it { should include_after_filter(:after_filter_only_show).only_on(:show) }
15
+ end
16
+ describe "after_filters only show and create" do
17
+ it { should include_after_filter(:after_filter_only_show_and_create).only_on([:show, :create]) }
18
+ end
19
+ describe "after_filters only show and create without array" do
20
+ it { should include_after_filter(:after_filter_only_show_and_create).only_on(:show, :create) }
21
+ end
22
+ describe "after_filters only show and create with params flipped" do
23
+ it { should include_after_filter(:after_filter_only_show_and_create).only_on([:create, :show]) }
24
+ end
25
+ describe "after_filters except create" do
26
+ it { should include_after_filter(:after_filter_except_create).except_on(:create) }
27
+ end
28
+ describe "after_filters except show" do
29
+ it { should include_after_filter(:after_filter_except_show).except_on(:show) }
30
+ end
31
+ describe "after_filters except show and create" do
32
+ it { should include_after_filter(:after_filter_except_show_and_create).except_on([:show, :create]) }
33
+ end
34
+ describe "before_filters only create" do
35
+ it { should include_before_filter(:before_filter_only_create).only_on(:create) }
36
+ end
37
+ describe "before_filters only show" do
38
+ it { should include_before_filter(:before_filter_only_show).only_on(:show) }
39
+ end
40
+ describe "before_filters only show and create" do
41
+ it { should include_before_filter(:before_filter_only_show_and_create).only_on([:show, :create]) }
42
+ end
43
+ describe "before_filters except create" do
44
+ it { should include_before_filter(:before_filter_except_create).except_on(:create) }
45
+ end
46
+ describe "before_filters except show" do
47
+ it { should include_before_filter(:before_filter_except_show).except_on(:show) }
48
+ end
49
+ describe "before_filters except show and create" do
50
+ it { should include_before_filter(:before_filter_except_show_and_create).except_on([:show, :create]) }
51
+ end
52
+ end
@@ -0,0 +1,12 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'CallbackMatcher' do
4
+ before do
5
+ @type = :save
6
+ @on = :before
7
+ @method = :method
8
+ @to = CustomRspecMatchers::Matchers::CallbackMatcher.new(@on, @type, @method)
9
+ end
10
+ it { @to.description.should == " has #{@on}_#{@type} callback on #{@method}"}
11
+ it { @to.failure_message.should == " expected to have #{@on}_#{@type} callback on #{@method}" }
12
+ end
@@ -0,0 +1,68 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'FilterMatcher' do
4
+ describe "matcher for a before filter" do
5
+ before do
6
+ @filter_under_test = :another_before_filter
7
+ @matcher = FilterMatcher.new :before, @filter_under_test
8
+ end
9
+
10
+ it "has the correct description" do
11
+ @matcher.description.should == "include before filter: another_before_filter"
12
+ end
13
+
14
+ describe "calling matches? on the matcher with a controller that doesn't have any filters" do
15
+ before do
16
+ @test_object = @matcher.matches? NoFiltersController.new
17
+ end
18
+
19
+ it "returns false" do
20
+ @test_object.should == false
21
+ end
22
+ it "has the correct failure message" do
23
+ @matcher.failure_message.should == " expected to include before filter another_before_filter but not found in []"
24
+ end
25
+ end
26
+
27
+ describe "calling matches? on the matcher with a controller that doesn't have any before filters" do
28
+ before do
29
+ @test_object = @matcher.matches? OneAfterFilterController.new
30
+ end
31
+
32
+ it "returns false" do
33
+ @test_object.should == false
34
+ end
35
+ it "has the correct failure message" do
36
+ @matcher.failure_message.should == " expected to include before filter another_before_filter but not found in []"
37
+ end
38
+ end
39
+
40
+ describe "calling matches? on the matcher with a controller that doesn't have the before filter" do
41
+ before do
42
+ @test_object = @matcher.matches? OneBeforeFilterController.new
43
+ end
44
+
45
+ it "returns false" do
46
+ @test_object.should == false
47
+ end
48
+ it "has the correct failure message" do
49
+ @matcher.failure_message.should == " expected to include before filter another_before_filter but not found in [:one_before_filter]"
50
+ end
51
+ end
52
+
53
+ describe "calling matches? on the matcher with a controller that has only the matching before filter" do
54
+ before do
55
+ @controller = AnotherBeforeFilterController.new
56
+ @test_object = @matcher.matches? @controller
57
+ end
58
+
59
+ it "returns false" do
60
+ @test_object.should == true
61
+ end
62
+ it "has the correct failure message" do
63
+ @matcher.failure_message.should == ""
64
+ end
65
+ it { @controller.should include_before_filter(:another_before_filter) }
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ class Foo; end
4
+ class Bar < Foo; end
5
+
6
+ describe 'InheritFromMatcher' do
7
+ before do
8
+ @bar = Bar.new
9
+ @to = CustomRspecMatchers::Matchers::InheritFromMatcher.new(Foo)
10
+ end
11
+ it { @to.description.should == "inherit from #{Foo}"}
12
+ it { @to.matches?(Bar.new).should == true }
13
+ it { @bar.should inherit_from(Foo) }
14
+ describe 'failure message' do
15
+ before do
16
+ @to.matches?(@bar)
17
+ end
18
+ it { @to.failure_message.should == " expected to inherit from #{Foo} but was #{@bar.class.superclass}"}
19
+ end
20
+ end
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ describe Duck do
4
+
5
+ it { should have_after_create_callback(:after_create_callback) }
6
+ it { should have_around_create_callback(:around_create_callback) }
7
+ it { should have_before_create_callback(:before_create_callback) }
8
+
9
+ it { should have_after_save_callback(:after_save_callback) }
10
+ it { should have_around_save_callback(:around_save_callback) }
11
+ it { should have_before_save_callback(:before_save_callback) }
12
+
13
+ it { should have_after_update_callback(:after_update_callback) }
14
+ it { should have_around_update_callback(:around_update_callback) }
15
+ it { should have_before_update_callback(:before_update_callback) }
16
+
17
+ end
@@ -0,0 +1,3 @@
1
+ class AnotherBeforeFilterController < ActionController::Base
2
+ before_filter :another_before_filter
3
+ end
@@ -0,0 +1,18 @@
1
+ class FooController < ActionController::Base
2
+ before_filter :for_all_methods
3
+ after_filter :for_all_methods
4
+
5
+ after_filter :after_filter_only_create, :only => :create
6
+ after_filter :after_filter_only_show, :only => :show
7
+ after_filter :after_filter_only_show_and_create, :only => [:show, :create]
8
+ after_filter :after_filter_except_show, :except => :show
9
+ after_filter :after_filter_except_create, :except => :create
10
+ after_filter :after_filter_except_show_and_create, :except => [:show, :create]
11
+
12
+ before_filter :before_filter_only_create, :only => :create
13
+ before_filter :before_filter_only_show, :only => :show
14
+ before_filter :before_filter_only_show_and_create, :only => [:show, :create]
15
+ before_filter :before_filter_except_show, :except => :show
16
+ before_filter :before_filter_except_create, :except => :create
17
+ before_filter :before_filter_except_show_and_create, :except => [:show, :create]
18
+ end
@@ -0,0 +1 @@
1
+ class NoFiltersController < ActionController::Base ; end
@@ -0,0 +1,3 @@
1
+ class OneAfterFilterController < ActionController::Base
2
+ after_filter :one_after_filter
3
+ end
@@ -0,0 +1,3 @@
1
+ class OneBeforeFilterController < ActionController::Base
2
+ before_filter :one_before_filter
3
+ end
@@ -0,0 +1,16 @@
1
+ class Duck
2
+ extend ActiveModel::Callbacks
3
+ define_model_callbacks :create, :update, :save
4
+ after_create :after_create_callback
5
+ around_create :around_create_callback
6
+ before_create :before_create_callback
7
+
8
+ after_save :after_save_callback
9
+ around_save :around_save_callback
10
+ before_save :before_save_callback
11
+
12
+ after_update :after_update_callback
13
+ around_update :around_update_callback
14
+ before_update :before_update_callback
15
+
16
+ end
@@ -0,0 +1,12 @@
1
+ require 'rspec'
2
+ require 'custom_rspec_matchers'
3
+ require 'action_controller'
4
+
5
+
6
+ RSpec.configure do |config|
7
+ config.include CustomRspecMatchers::Matchers
8
+ config.include ActionController
9
+ config.include ActiveModel
10
+ end
11
+
12
+ Dir.glob(File.dirname(__FILE__) + "/fixtures/**/*.rb").each {|f| require f}
metadata ADDED
@@ -0,0 +1,159 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: custom_rspec_matchers
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 1
9
+ version: 0.0.1
10
+ platform: ruby
11
+ authors:
12
+ - kenny ortmann
13
+ - matt simpson
14
+ - amos king
15
+ autorequire:
16
+ bindir: bin
17
+ cert_chain: []
18
+
19
+ date: 2010-11-11 00:00:00 -06:00
20
+ default_executable:
21
+ dependencies:
22
+ - !ruby/object:Gem::Dependency
23
+ name: rake
24
+ prerelease: false
25
+ requirement: &id001 !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ">="
29
+ - !ruby/object:Gem::Version
30
+ segments:
31
+ - 0
32
+ version: "0"
33
+ type: :runtime
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: rspec
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ segments:
44
+ - 2
45
+ - 0
46
+ version: "2.0"
47
+ type: :runtime
48
+ version_requirements: *id002
49
+ - !ruby/object:Gem::Dependency
50
+ name: actionpack
51
+ prerelease: false
52
+ requirement: &id003 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ~>
56
+ - !ruby/object:Gem::Version
57
+ segments:
58
+ - 3
59
+ - 0
60
+ version: "3.0"
61
+ type: :runtime
62
+ version_requirements: *id003
63
+ - !ruby/object:Gem::Dependency
64
+ name: activemodel
65
+ prerelease: false
66
+ requirement: &id004 !ruby/object:Gem::Requirement
67
+ none: false
68
+ requirements:
69
+ - - ~>
70
+ - !ruby/object:Gem::Version
71
+ segments:
72
+ - 3
73
+ - 0
74
+ version: "3.0"
75
+ type: :runtime
76
+ version_requirements: *id004
77
+ description: "custopm rspec mathcers "
78
+ email:
79
+ - kenny.ortmann@gmail.com
80
+ - matt.simpson@asolutions.com
81
+ - amos.king@asolutions.com
82
+ executables: []
83
+
84
+ extensions: []
85
+
86
+ extra_rdoc_files: []
87
+
88
+ files:
89
+ - .bundle/config
90
+ - .document
91
+ - .gitignore
92
+ - .rvmrc
93
+ - Gemfile
94
+ - Gemfile.lock
95
+ - LICENSE
96
+ - README.rdoc
97
+ - Rakefile
98
+ - custom_rspec_matchers.gemspec
99
+ - lib/custom_rspec_matchers.rb
100
+ - lib/custom_rspec_matchers/matchers/callback_matcher.rb
101
+ - lib/custom_rspec_matchers/matchers/filter_matcher.rb
102
+ - lib/custom_rspec_matchers/matchers/inherit_from_matcher.rb
103
+ - spec/custom_rspec_matchers/controllers/foo_controller_spec.rb
104
+ - spec/custom_rspec_matchers/matchers/callback_mathcer_spec.rb
105
+ - spec/custom_rspec_matchers/matchers/filter_matcher_spec.rb
106
+ - spec/custom_rspec_matchers/matchers/inherit_from_matcher_spec.rb
107
+ - spec/custom_rspec_matchers/models/duck_spec.rb
108
+ - spec/fixtures/filter_matcher_controllers/another_before_filter_controller.rb
109
+ - spec/fixtures/filter_matcher_controllers/foo_controller.rb
110
+ - spec/fixtures/filter_matcher_controllers/no_filters_controller.rb
111
+ - spec/fixtures/filter_matcher_controllers/one_after_filter_controller.rb
112
+ - spec/fixtures/filter_matcher_controllers/one_before_filter_controller.rb
113
+ - spec/fixtures/models/duck.rb
114
+ - spec/spec_helper.rb
115
+ has_rdoc: true
116
+ homepage: ""
117
+ licenses: []
118
+
119
+ post_install_message:
120
+ rdoc_options: []
121
+
122
+ require_paths:
123
+ - lib
124
+ required_ruby_version: !ruby/object:Gem::Requirement
125
+ none: false
126
+ requirements:
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ segments:
130
+ - 0
131
+ version: "0"
132
+ required_rubygems_version: !ruby/object:Gem::Requirement
133
+ none: false
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ segments:
138
+ - 0
139
+ version: "0"
140
+ requirements: []
141
+
142
+ rubyforge_project:
143
+ rubygems_version: 1.3.7
144
+ signing_key:
145
+ specification_version: 3
146
+ summary: a few custom rspec matchers we have created to help with testing
147
+ test_files:
148
+ - spec/custom_rspec_matchers/controllers/foo_controller_spec.rb
149
+ - spec/custom_rspec_matchers/matchers/callback_mathcer_spec.rb
150
+ - spec/custom_rspec_matchers/matchers/filter_matcher_spec.rb
151
+ - spec/custom_rspec_matchers/matchers/inherit_from_matcher_spec.rb
152
+ - spec/custom_rspec_matchers/models/duck_spec.rb
153
+ - spec/fixtures/filter_matcher_controllers/another_before_filter_controller.rb
154
+ - spec/fixtures/filter_matcher_controllers/foo_controller.rb
155
+ - spec/fixtures/filter_matcher_controllers/no_filters_controller.rb
156
+ - spec/fixtures/filter_matcher_controllers/one_after_filter_controller.rb
157
+ - spec/fixtures/filter_matcher_controllers/one_before_filter_controller.rb
158
+ - spec/fixtures/models/duck.rb
159
+ - spec/spec_helper.rb