specstar-controllers 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.
Files changed (2) hide show
  1. data/lib/specstar/controllers.rb +50 -0
  2. metadata +45 -0
@@ -0,0 +1,50 @@
1
+ require 'rspec'
2
+
3
+ module Specstar
4
+ module Controllers
5
+ module Matchers
6
+ RSpec::Matchers.define :have_layout do |expected|
7
+ match do |controller|
8
+ expected == controller.class.instance_variable_get("@_layout")
9
+ end
10
+ end
11
+
12
+ def has_skip_before_filter?(controller, filter, action)
13
+ controller._process_action_callbacks.select { |callback|
14
+ callback.chain.select { |chain|
15
+ chain.kind == :before && chain.filter == filter && (action.nil? || chain.per_key[:unless].include?("action_name == '#{action}'"))
16
+ }.size > 0
17
+ }.size > 0
18
+ end
19
+
20
+ def has_before_filter?(controller, filter, action)
21
+ callbacks = controller.is_a?(ApplicationController) ? controller._process_action_callbacks : controller._dispatch_callbacks
22
+ callbacks.select { |callback|
23
+ callback.chain.select { |chain|
24
+ chain.kind == :before && chain.filter == filter && (action.nil? || chain.per_key[:if].include?("action_name == '#{action}'"))
25
+ }.size > 0
26
+ }.size > 0
27
+ end
28
+
29
+ RSpec::Matchers.define :have_skip_before_filter do |filter|
30
+ chain :only do |action|
31
+ @action = action
32
+ end
33
+
34
+ match do |controller|
35
+ has_skip_before_filter?(controller, filter, @action)
36
+ end
37
+ end
38
+
39
+ RSpec::Matchers.define :have_before_filter do |filter|
40
+ chain :only do |action|
41
+ @action = action
42
+ end
43
+
44
+ match do |controller|
45
+ has_before_filter?(controller, filter, @action)
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
metadata ADDED
@@ -0,0 +1,45 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: specstar-controllers
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Sujoy Gupta
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-10-10 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description:
15
+ email: sujoyg@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/specstar/controllers.rb
21
+ homepage: http://github.com/sujoyg/specstar-controllers
22
+ licenses: []
23
+ post_install_message:
24
+ rdoc_options: []
25
+ require_paths:
26
+ - lib
27
+ required_ruby_version: !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ required_rubygems_version: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ requirements: []
40
+ rubyforge_project:
41
+ rubygems_version: 1.8.24
42
+ signing_key:
43
+ specification_version: 3
44
+ summary: RSpec helpers for controllers.
45
+ test_files: []