Skip to content

Commit c682c98

Browse files
authored
Merge pull request #98 from zombocom/schneems/delayed-website
Fix: Website commands now use lazy lookup
2 parents e2f570c + c7b013c commit c682c98

File tree

5 files changed

+36
-17
lines changed

5 files changed

+36
-17
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
## HEAD
22

33
- Fix: Internal error in `background.wait` introduced in 4.1.2 (https://github.com/zombocom/rundoc/pull/97)
4+
- Fix: Website commands such as `:::>> website.visit(...)` now use lazy lookup (like Background tasks since 4.1.2). This allows `pre.erb` to be used with these commands (https://github.com/zombocom/rundoc/pull/98)
45

56
## 4.1.2
67

lib/rundoc/code_command/website/navigate.rb

+6-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@ class Rundoc::CodeCommand::Website
22
class Navigate < Rundoc::CodeCommand
33
def initialize(name:)
44
@name = name
5-
@driver = Rundoc::CodeCommand::Website::Driver.find(name)
5+
@driver = nil
6+
end
7+
8+
def driver
9+
@driver ||= Rundoc::CodeCommand::Website::Driver.find(@name)
610
end
711

812
def to_md(env = {})
@@ -11,7 +15,7 @@ def to_md(env = {})
1115

1216
def call(env = {})
1317
puts "website.navigate [#{@name}]: #{contents}"
14-
@driver.safe_eval(contents, env)
18+
driver.safe_eval(contents, env)
1519
""
1620
end
1721

lib/rundoc/code_command/website/screenshot.rb

+9-4
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,28 @@
11
class Rundoc::CodeCommand::Website
22
class Screenshot < Rundoc::CodeCommand
33
def initialize(name:, upload: false)
4-
@driver = Rundoc::CodeCommand::Website::Driver.find(name)
4+
@name = name
55
@upload = upload
6+
@driver = nil
7+
end
8+
9+
def driver
10+
@driver ||= Rundoc::CodeCommand::Website::Driver.find(@name)
611
end
712

813
def to_md(env = {})
914
""
1015
end
1116

1217
def call(env = {})
13-
puts "Taking screenshot: #{@driver.current_url}"
14-
filename = @driver.screenshot(
18+
puts "Taking screenshot: #{driver.current_url}"
19+
filename = driver.screenshot(
1520
upload: @upload,
1621
screenshots_dir: env[:context].screenshots_dir
1722
)
1823

1924
relative_filename = filename.relative_path_from(env[:context].output_dir)
20-
env[:before] << "![Screenshot of #{@driver.current_url}](#{relative_filename})"
25+
env[:before] << "![Screenshot of #{driver.current_url}](#{relative_filename})"
2126
""
2227
end
2328

lib/rundoc/code_command/website/visit.rb

+18-11
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,21 @@ def initialize(name:, url: nil, scroll: nil, height: 720, width: 1024, visible:
66
@name = name
77
@url = url
88
@scroll = scroll
9-
@driver = Driver.new(
10-
name: name,
11-
url: url,
12-
height: height,
13-
width: width,
14-
visible: visible
15-
)
16-
Driver.add(@name, @driver)
9+
@height = height
10+
@width = width
11+
@visible = visible
12+
end
13+
14+
def driver
15+
@driver ||= Driver.new(
16+
name: @name,
17+
url: @url,
18+
height: @height,
19+
width: @width,
20+
visible: @visible
21+
).tap do |driver|
22+
Driver.add(@name, driver)
23+
end
1724
end
1825

1926
def to_md(env = {})
@@ -26,11 +33,11 @@ def call(env = {})
2633

2734
puts message
2835

29-
@driver.visit(@url) if @url
30-
@driver.scroll(@scroll) if @scroll
36+
driver.visit(@url) if @url
37+
driver.scroll(@scroll) if @scroll
3138

3239
return "" if contents.nil? || contents.empty?
33-
@driver.safe_eval(contents, env)
40+
driver.safe_eval(contents, env)
3441

3542
""
3643
end

test/integration/website_test.rb

+2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ def test_screenshot_command
66
```
77
:::>> website.visit(name: "example", url: "http://example.com")
88
:::>> website.screenshot(name: "example")
9+
:::>> website.navigate(name: "example")
10+
session.execute_script "window.scrollBy(0,10)"
911
```
1012
RUBY
1113

0 commit comments

Comments
 (0)