pagemodels 0.2.0 → 0.2.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.
@@ -1,5 +1,15 @@
1
1
  module PageModels
2
- class Base
2
+ class Base
3
+ @@callbacks = {:before_verify => [], :after_verify => []}
4
+
5
+ def self.before_verify(method_name)
6
+ @@callbacks[:before_verify] << method_name
7
+ end
8
+
9
+ def self.after_verify(method_name)
10
+ @@callbacks[:after_verify] << method_name
11
+ end
12
+
3
13
  def open!
4
14
  if config.driver.class.to_s == "Capybara::Session"
5
15
  visit(full_url)
@@ -9,6 +19,12 @@ module PageModels
9
19
  verify!
10
20
  end
11
21
 
22
+ def _verify!
23
+ @@callbacks[:before_verify].each { |callback| send(callback) if respond_to?(callback) }
24
+ verify!
25
+ @@callbacks[:after_verify].each { |callback| send(callback) if respond_to?(callback) }
26
+ end
27
+
12
28
  def method_missing(name, *args, &block)
13
29
  config.driver.send(name, *args, &block)
14
30
  rescue NoMethodError
@@ -1,7 +1,7 @@
1
1
  Given /^I (?:open|visit|go to) the (.+\s?page)(.*)$/ do |page_name, args|
2
2
  $page_model = PageModels.create(page_name, args)
3
3
  $page_model.open!
4
- $page_model.verify!
4
+ $page_model._verify!
5
5
  end
6
6
 
7
7
  Given /^I (?:try to|attempt to|fail to) (?:open|visit|go to) the (.+\s?page)(.*)$/ do |page_name, args|
@@ -12,7 +12,7 @@ end
12
12
  Then /^I should (?:see|be on) the (.+\s?page)(.*)$/ do |page_name, args|
13
13
  $page_model = PageModels.create(page_name, args)
14
14
  $page_model = self.page
15
- $page_model.verify!
15
+ $page_model._verify!
16
16
  end
17
17
 
18
18
  at_exit do
@@ -5,13 +5,13 @@ module PageModels
5
5
  def open_page(page_model)
6
6
  page_model = page_model.new if page_model.is_a? Class
7
7
  $page_model = page_model
8
- page_model.open!
8
+ $page_model.open!
9
9
  end
10
10
 
11
11
  def should_see_page(page_model)
12
12
  page_model = page_model.new if page_model.is_a? Class
13
13
  $page_model = page_model
14
- page_model.verify!
14
+ $page_model._verify!
15
15
  end
16
16
 
17
17
  end
@@ -1,3 +1,3 @@
1
1
  module PageModels
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
@@ -100,4 +100,22 @@ describe PageModels::Base do
100
100
  end
101
101
  end
102
102
  end
103
+
104
+ describe "lifecycle hooks" do
105
+ it "calls hooks before and after _verify" do
106
+ TestPageModel.after_verify :do_something
107
+ TestPageModel.after_verify :do_something_else
108
+ @page_model.should_receive :do_something
109
+ @page_model.should_receive :do_something_else
110
+
111
+ @page_model._verify!
112
+
113
+ TestPageModel.before_verify :do_something
114
+ TestPageModel.before_verify :do_something_else
115
+ @page_model.should_receive(:do_something).twice
116
+ @page_model.should_receive(:do_something_else).twice
117
+
118
+ @page_model._verify!
119
+ end
120
+ end
103
121
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pagemodels
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-17 00:00:00.000000000 Z
12
+ date: 2013-01-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake