page_magic 1.1.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +13 -0
- data/VERSION +1 -1
- data/lib/page_magic/class_methods.rb +7 -0
- data/page_magic.gemspec +4 -4
- data/spec/page_magic/class_methods_spec.rb +15 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5de023c943b2c64e2b8bf0a74d4c3875be2b74c5
|
4
|
+
data.tar.gz: 2d3d1baf2f1f14965f7ac9d7825663cc3e329105
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 60c8b45cc4c56a0aac851a892b30710e8bfd0ccb962f985813289ca397d031b2ce68592558b56972f1538abd6cbcaeb44b82f459b32a866fe5a0e17e9fd779bc
|
7
|
+
data.tar.gz: 0e6222727b66e406d2dd1f365af3c46591f3189633b337832242209b9db41aaf0c3be39a12b4f1fca3fbcba6bd40102553bcf498b19907d23f65c2ffc36cd3a0
|
data/README.md
CHANGED
@@ -39,6 +39,7 @@ we are not aware of so your feedback/pull requests are greatly appreciated!
|
|
39
39
|
- [Page mapping](#page-mapping)
|
40
40
|
- [Mapping against query string parameters](#mapping-against-query-string-parameters)
|
41
41
|
- [Mapping against fragment identifiers](#mapping-against-fragment-identifiers)
|
42
|
+
- [Loading pages from source](#loading-pages-from-source)
|
42
43
|
- [Watchers](#watchers)
|
43
44
|
- [Method watchers](#method-watchers)
|
44
45
|
- [Simple watchers](#simple-watchers)
|
@@ -316,6 +317,18 @@ against URL fragments.
|
|
316
317
|
browser.define_page_mappings PageMagic.mapping(fragment: string_or_regex) => ResultsPage
|
317
318
|
```
|
318
319
|
|
320
|
+
# Loading pages from source
|
321
|
+
PageMagic supports loading page objects using html source. This technique can be useful for getting quick feedback that
|
322
|
+
your templates correctly render based on your view objects. I.e you can test your templates in isolation.
|
323
|
+
```ruby
|
324
|
+
class MyPage
|
325
|
+
include PageMagic
|
326
|
+
#element definitions
|
327
|
+
end
|
328
|
+
|
329
|
+
page_instance = Page.load(html_string)
|
330
|
+
```
|
331
|
+
|
319
332
|
# Watchers
|
320
333
|
PageMagic lets you set a watcher on any element. Use watchers to decide when things have changed. The `watch` method can be called from anywhere within an element definition. For PageObjects it can only be called from within hooks and helper methods.
|
321
334
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.2.0
|
@@ -4,6 +4,13 @@ module PageMagic
|
|
4
4
|
# Default block to be run when a page is loaded. This is used if a specific handler is not registered
|
5
5
|
DEFAULT_ON_LOAD = proc {}
|
6
6
|
|
7
|
+
# create an new page object instance based on top of the source supplied
|
8
|
+
# @param [String] source html source code
|
9
|
+
# @return [Object<InstanceMethods>] instance of class with all the same methods as normal PageMagic page objects.
|
10
|
+
def load(source)
|
11
|
+
new(Session.new(Capybara::Node::Simple.new(source)))
|
12
|
+
end
|
13
|
+
|
7
14
|
# sets block to run when page has loaded
|
8
15
|
# if one has not been set on the page object class it will return a default block that does nothing
|
9
16
|
def on_load(&block)
|
data/page_magic.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: page_magic 1.
|
5
|
+
# stub: page_magic 1.2.0 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "page_magic"
|
9
|
-
s.version = "1.
|
9
|
+
s.version = "1.2.0"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
13
13
|
s.authors = ["Leon Davis"]
|
14
|
-
s.date = "2015-11-
|
14
|
+
s.date = "2015-11-26"
|
15
15
|
s.description = "Framework for modeling and interacting with webpages which wraps capybara"
|
16
16
|
s.email = "info@lad-tech.com"
|
17
17
|
s.extra_rdoc_files = [
|
@@ -86,7 +86,7 @@ Gem::Specification.new do |s|
|
|
86
86
|
s.homepage = "https://github.com/ladtech/page_magic"
|
87
87
|
s.licenses = ["ruby"]
|
88
88
|
s.required_ruby_version = Gem::Requirement.new(">= 2.1")
|
89
|
-
s.rubygems_version = "2.
|
89
|
+
s.rubygems_version = "2.4.8"
|
90
90
|
s.summary = "Framework for modeling and interacting with webpages"
|
91
91
|
|
92
92
|
if s.respond_to? :specification_version then
|
@@ -7,6 +7,21 @@ module PageMagic
|
|
7
7
|
end
|
8
8
|
end
|
9
9
|
|
10
|
+
describe '#load' do
|
11
|
+
let(:page_title) { 'page title' }
|
12
|
+
let(:page_source) do
|
13
|
+
<<-HTML
|
14
|
+
<html>
|
15
|
+
<head><title>#{page_title}</title></head>
|
16
|
+
</html>
|
17
|
+
HTML
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'returns an instance using that source' do
|
21
|
+
expect(subject.load(page_source).title).to eq(page_title)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
10
25
|
describe 'on_load' do
|
11
26
|
context 'block not set' do
|
12
27
|
it 'returns a default block' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: page_magic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Leon Davis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-11-
|
11
|
+
date: 2015-11-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: capybara
|
@@ -199,7 +199,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
199
199
|
version: '0'
|
200
200
|
requirements: []
|
201
201
|
rubyforge_project:
|
202
|
-
rubygems_version: 2.
|
202
|
+
rubygems_version: 2.4.8
|
203
203
|
signing_key:
|
204
204
|
specification_version: 4
|
205
205
|
summary: Framework for modeling and interacting with webpages
|