puppeteer-ruby 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (110) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +30 -0
  3. data/.rubocop.yml +4 -5
  4. data/docs/Puppeteer.html +2010 -0
  5. data/docs/Puppeteer/AsyncAwaitBehavior.html +105 -0
  6. data/docs/Puppeteer/Browser.html +2150 -0
  7. data/docs/Puppeteer/BrowserContext.html +809 -0
  8. data/docs/Puppeteer/BrowserFetcher.html +214 -0
  9. data/docs/Puppeteer/BrowserRunner.html +914 -0
  10. data/docs/Puppeteer/BrowserRunner/BrowserProcess.html +477 -0
  11. data/docs/Puppeteer/CDPSession.html +784 -0
  12. data/docs/Puppeteer/CDPSession/Error.html +124 -0
  13. data/docs/Puppeteer/ConcurrentRubyUtils.html +430 -0
  14. data/docs/Puppeteer/Connection.html +960 -0
  15. data/docs/Puppeteer/Connection/MessageCallback.html +434 -0
  16. data/docs/Puppeteer/Connection/ProtocolError.html +216 -0
  17. data/docs/Puppeteer/Connection/RequestDebugPrinter.html +217 -0
  18. data/docs/Puppeteer/Connection/ResponseDebugPrinter.html +244 -0
  19. data/docs/Puppeteer/ConsoleMessage.html +565 -0
  20. data/docs/Puppeteer/ConsoleMessage/Location.html +433 -0
  21. data/docs/Puppeteer/DOMWorld.html +1580 -0
  22. data/docs/Puppeteer/DOMWorld/DetachedError.html +124 -0
  23. data/docs/Puppeteer/DOMWorld/DocumentEvaluationError.html +124 -0
  24. data/docs/Puppeteer/DebugPrint.html +233 -0
  25. data/docs/Puppeteer/Device.html +470 -0
  26. data/docs/Puppeteer/Devices.html +139 -0
  27. data/docs/Puppeteer/ElementHandle.html +1603 -0
  28. data/docs/Puppeteer/ElementHandle/ElementNotFoundError.html +206 -0
  29. data/docs/Puppeteer/ElementHandle/ElementNotVisibleError.html +206 -0
  30. data/docs/Puppeteer/ElementHandle/Point.html +481 -0
  31. data/docs/Puppeteer/ElementHandle/ScrollIntoViewError.html +124 -0
  32. data/docs/Puppeteer/EmulationManager.html +454 -0
  33. data/docs/Puppeteer/EventCallbackable.html +433 -0
  34. data/docs/Puppeteer/EventCallbackable/EventListeners.html +435 -0
  35. data/docs/Puppeteer/ExecutionContext.html +772 -0
  36. data/docs/Puppeteer/ExecutionContext/EvaluationError.html +124 -0
  37. data/docs/Puppeteer/ExecutionContext/JavaScriptExpression.html +357 -0
  38. data/docs/Puppeteer/ExecutionContext/JavaScriptFunction.html +389 -0
  39. data/docs/Puppeteer/Frame.html +3625 -0
  40. data/docs/Puppeteer/FrameManager.html +2414 -0
  41. data/docs/Puppeteer/FrameManager/NavigationError.html +124 -0
  42. data/docs/Puppeteer/IfPresent.html +222 -0
  43. data/docs/Puppeteer/JSHandle.html +1352 -0
  44. data/docs/Puppeteer/Keyboard.html +1557 -0
  45. data/docs/Puppeteer/Keyboard/KeyDefinition.html +831 -0
  46. data/docs/Puppeteer/Keyboard/KeyDescription.html +603 -0
  47. data/docs/Puppeteer/Launcher.html +237 -0
  48. data/docs/Puppeteer/Launcher/Base.html +385 -0
  49. data/docs/Puppeteer/Launcher/Base/ExecutablePathNotFound.html +124 -0
  50. data/docs/Puppeteer/Launcher/BrowserOptions.html +441 -0
  51. data/docs/Puppeteer/Launcher/Chrome.html +628 -0
  52. data/docs/Puppeteer/Launcher/Chrome/DefaultArgs.html +382 -0
  53. data/docs/Puppeteer/Launcher/ChromeArgOptions.html +531 -0
  54. data/docs/Puppeteer/Launcher/LaunchOptions.html +893 -0
  55. data/docs/Puppeteer/LifecycleWatcher.html +834 -0
  56. data/docs/Puppeteer/LifecycleWatcher/ExpectedLifecycle.html +363 -0
  57. data/docs/Puppeteer/LifecycleWatcher/FrameDetachedError.html +206 -0
  58. data/docs/Puppeteer/LifecycleWatcher/TerminatedError.html +124 -0
  59. data/docs/Puppeteer/Mouse.html +1105 -0
  60. data/docs/Puppeteer/Mouse/Button.html +136 -0
  61. data/docs/Puppeteer/NetworkManager.html +901 -0
  62. data/docs/Puppeteer/NetworkManager/Credentials.html +385 -0
  63. data/docs/Puppeteer/Page.html +5426 -0
  64. data/docs/Puppeteer/Page/ScreenshotOptions.html +845 -0
  65. data/docs/Puppeteer/Page/ScriptTag.html +555 -0
  66. data/docs/Puppeteer/Page/StyleTag.html +448 -0
  67. data/docs/Puppeteer/Page/TargetCrashedError.html +124 -0
  68. data/docs/Puppeteer/RemoteObject.html +951 -0
  69. data/docs/Puppeteer/Target.html +1384 -0
  70. data/docs/Puppeteer/Target/InitializeFailure.html +124 -0
  71. data/docs/Puppeteer/Target/TargetInfo.html +729 -0
  72. data/docs/Puppeteer/TimeoutError.html +135 -0
  73. data/docs/Puppeteer/TimeoutSettings.html +496 -0
  74. data/docs/Puppeteer/TouchScreen.html +464 -0
  75. data/docs/Puppeteer/Viewport.html +757 -0
  76. data/docs/Puppeteer/WaitTask.html +211 -0
  77. data/docs/Puppeteer/WaitTask/TerminatedError.html +124 -0
  78. data/docs/Puppeteer/WebSocket.html +673 -0
  79. data/docs/Puppeteer/WebSocket/DriverImpl.html +412 -0
  80. data/docs/Puppeteer/WebSocketTransport.html +600 -0
  81. data/docs/Puppeteer/WebSocktTransportError.html +124 -0
  82. data/docs/_index.html +788 -0
  83. data/docs/class_list.html +51 -0
  84. data/docs/css/common.css +1 -0
  85. data/docs/css/full_list.css +58 -0
  86. data/docs/css/style.css +496 -0
  87. data/docs/file.README.html +121 -0
  88. data/docs/file_list.html +56 -0
  89. data/docs/frames.html +17 -0
  90. data/docs/index.html +121 -0
  91. data/docs/js/app.js +314 -0
  92. data/docs/js/full_list.js +216 -0
  93. data/docs/js/jquery.js +4 -0
  94. data/docs/method_list.html +3747 -0
  95. data/docs/top-level-namespace.html +126 -0
  96. data/lib/puppeteer.rb +9 -7
  97. data/lib/puppeteer/async_await_behavior.rb +6 -0
  98. data/lib/puppeteer/browser.rb +21 -1
  99. data/lib/puppeteer/connection.rb +1 -1
  100. data/lib/puppeteer/dom_world.rb +15 -2
  101. data/lib/puppeteer/element_handle.rb +3 -2
  102. data/lib/puppeteer/frame.rb +4 -0
  103. data/lib/puppeteer/frame_manager.rb +1 -1
  104. data/lib/puppeteer/js_handle.rb +3 -2
  105. data/lib/puppeteer/launcher.rb +0 -1
  106. data/lib/puppeteer/lifecycle_watcher.rb +3 -3
  107. data/lib/puppeteer/page.rb +6 -4
  108. data/lib/puppeteer/version.rb +1 -1
  109. data/puppeteer-ruby.gemspec +4 -1
  110. metadata +138 -4
@@ -0,0 +1,126 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>
7
+ Top Level Namespace
8
+
9
+ &mdash; Documentation by YARD 0.9.24
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="css/style.css" type="text/css" />
14
+
15
+ <link rel="stylesheet" href="css/common.css" type="text/css" />
16
+
17
+ <script type="text/javascript">
18
+ pathId = "";
19
+ relpath = '';
20
+ </script>
21
+
22
+
23
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
24
+
25
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
26
+
27
+
28
+ </head>
29
+ <body>
30
+ <div class="nav_wrap">
31
+ <iframe id="nav" src="class_list.html?1"></iframe>
32
+ <div id="resizer"></div>
33
+ </div>
34
+
35
+ <div id="main" tabindex="-1">
36
+ <div id="header">
37
+ <div id="menu">
38
+
39
+ <a href="_index.html">Index</a> &raquo;
40
+
41
+
42
+ <span class="title">Top Level Namespace</span>
43
+
44
+ </div>
45
+
46
+ <div id="search">
47
+
48
+ <a class="full_list_link" id="class_list_link"
49
+ href="class_list.html">
50
+
51
+ <svg width="24" height="24">
52
+ <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
53
+ <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
54
+ <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
55
+ </svg>
56
+ </a>
57
+
58
+ </div>
59
+ <div class="clear"></div>
60
+ </div>
61
+
62
+ <div id="content"><h1>Top Level Namespace
63
+
64
+
65
+
66
+ </h1>
67
+ <div class="box_info">
68
+
69
+
70
+
71
+
72
+
73
+
74
+ <dl>
75
+ <dt>Includes:</dt>
76
+ <dd><span class='object_link'><a href="Puppeteer/ConcurrentRubyUtils.html" title="Puppeteer::ConcurrentRubyUtils (module)">Puppeteer::ConcurrentRubyUtils</a></span></dd>
77
+ </dl>
78
+
79
+
80
+
81
+
82
+
83
+
84
+ </div>
85
+
86
+ <h2>Defined Under Namespace</h2>
87
+ <p class="children">
88
+
89
+
90
+
91
+
92
+ <strong class="classes">Classes:</strong> <span class='object_link'><a href="Puppeteer.html" title="Puppeteer (class)">Puppeteer</a></span>
93
+
94
+
95
+ </p>
96
+
97
+
98
+
99
+
100
+
101
+
102
+
103
+
104
+
105
+
106
+
107
+
108
+
109
+
110
+ <h2>Method Summary</h2>
111
+
112
+ <h3 class="inherited">Methods included from <span class='object_link'><a href="Puppeteer/ConcurrentRubyUtils.html" title="Puppeteer::ConcurrentRubyUtils (module)">Puppeteer::ConcurrentRubyUtils</a></span></h3>
113
+ <p class="inherited"><span class='object_link'><a href="Puppeteer/ConcurrentRubyUtils.html#await-instance_method" title="Puppeteer::ConcurrentRubyUtils#await (method)">#await</a></span>, <span class='object_link'><a href="Puppeteer/ConcurrentRubyUtils.html#await_all-instance_method" title="Puppeteer::ConcurrentRubyUtils#await_all (method)">#await_all</a></span>, <span class='object_link'><a href="Puppeteer/ConcurrentRubyUtils.html#await_any-instance_method" title="Puppeteer::ConcurrentRubyUtils#await_any (method)">#await_any</a></span>, <span class='object_link'><a href="Puppeteer/ConcurrentRubyUtils.html#future-instance_method" title="Puppeteer::ConcurrentRubyUtils#future (method)">#future</a></span>, <span class='object_link'><a href="Puppeteer/ConcurrentRubyUtils.html#resolvable_future-instance_method" title="Puppeteer::ConcurrentRubyUtils#resolvable_future (method)">#resolvable_future</a></span></p>
114
+
115
+
116
+ </div>
117
+
118
+ <div id="footer">
119
+ Generated on Sun Apr 26 15:52:55 2020 by
120
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
121
+ 0.9.24 (ruby-2.6.3).
122
+ </div>
123
+
124
+ </div>
125
+ </body>
126
+ </html>
data/lib/puppeteer.rb CHANGED
@@ -55,9 +55,10 @@ class Puppeteer
55
55
 
56
56
  def instance
57
57
  @instance ||= Puppeteer.new(
58
- project_root: __dir__,
59
- preferred_revision: '706915',
60
- is_puppeteer_core: true)
58
+ project_root: __dir__,
59
+ preferred_revision: '706915',
60
+ is_puppeteer_core: true,
61
+ )
61
62
  end
62
63
  end
63
64
 
@@ -151,10 +152,11 @@ class Puppeteer
151
152
 
152
153
  private def launcher
153
154
  @launcher ||= Puppeteer::Launcher.new(
154
- project_root: @project_root,
155
- preferred_revision: @preferred_revision,
156
- is_puppeteer_core: @is_puppeteer_core,
157
- product: @product_name)
155
+ project_root: @project_root,
156
+ preferred_revision: @preferred_revision,
157
+ is_puppeteer_core: @is_puppeteer_core,
158
+ product: @product_name,
159
+ )
158
160
  end
159
161
 
160
162
  # @return {string}
@@ -11,6 +11,9 @@ module Puppeteer::AsyncAwaitBehavior
11
11
  define_method(method_name) do |*args|
12
12
  Concurrent::Promises.future do
13
13
  original_method.bind(self).call(*args)
14
+ rescue => err
15
+ Logger.new(STDERR).warn(err)
16
+ raise err
14
17
  end
15
18
  end
16
19
  rescue NameError
@@ -24,6 +27,9 @@ module Puppeteer::AsyncAwaitBehavior
24
27
  define_singleton_method(method_name) do |*args|
25
28
  Concurrent::Promises.future do
26
29
  original_method.call(*args)
30
+ rescue => err
31
+ Logger.new(STDERR).warn(err)
32
+ raise err
27
33
  end
28
34
  end
29
35
  end
@@ -4,6 +4,7 @@ require 'timeout'
4
4
  class Puppeteer::Browser
5
5
  include Puppeteer::DebugPrint
6
6
  include Puppeteer::EventCallbackable
7
+ include Puppeteer::IfPresent
7
8
  using Puppeteer::AsyncAwaitBehavior
8
9
 
9
10
  # @param {!Puppeteer.Connection} connection
@@ -106,6 +107,10 @@ class Puppeteer::Browser
106
107
  emit_event 'Events.Browser.TargetCreated', target
107
108
  context.emit_event 'Events.BrowserContext.TargetCreated', target
108
109
  end
110
+
111
+ if_present(pending_target_info_changed_event.delete(target_info.target_id)) do |pending_event|
112
+ handle_target_info_changed(pending_event)
113
+ end
109
114
  end
110
115
 
111
116
 
@@ -127,7 +132,18 @@ class Puppeteer::Browser
127
132
  target_info = Puppeteer::Target::TargetInfo.new(event['targetInfo'])
128
133
  target = @targets[target_info.target_id]
129
134
  if !target
130
- throw StandardError.new('target should exist before targetInfoChanged')
135
+ # targetCreated is sometimes notified after targetInfoChanged.
136
+ # We don't raise error. Instead, keep the event as a pending change,
137
+ # and handle it on handle_target_created.
138
+ #
139
+ # D, [2020-04-22T00:22:26.630328 #79646] DEBUG -- : RECV << {"method"=>"Target.targetInfoChanged", "params"=>{"targetInfo"=>{"targetId"=>"8068CED48357B9557EEC85AA62165A8E", "type"=>"iframe", "title"=>"", "url"=>"", "attached"=>true, "browserContextId"=>"7895BFB24BF22CE40584808713D96E8D"}}}
140
+ # E, [2020-04-22T00:22:26.630448 #79646] ERROR -- : target should exist before targetInfoChanged (StandardError)
141
+ # D, [2020-04-22T00:22:26.630648 #79646] DEBUG -- : RECV << {"method"=>"Target.targetCreated", "params"=>{"targetInfo"=>{"targetId"=>"8068CED48357B9557EEC85AA62165A8E", "type"=>"iframe", "title"=>"", "url"=>"", "attached"=>false, "browserContextId"=>"7895BFB24BF22CE40584808713D96E8D"}}}
142
+ pending_target_info_changed_event[target_info.target_id] = event
143
+ return
144
+ # original implementation is:
145
+ #
146
+ # raise StandardError.new('target should exist before targetInfoChanged')
131
147
  end
132
148
  previous_url = target.url
133
149
  was_initialized = target.initialized?
@@ -138,6 +154,10 @@ class Puppeteer::Browser
138
154
  end
139
155
  end
140
156
 
157
+ private def pending_target_info_changed_event
158
+ @pending_target_info_changed_event ||= {}
159
+ end
160
+
141
161
  # @return [String]
142
162
  def websocket_endpoint
143
163
  @connection.url
@@ -172,7 +172,7 @@ class Puppeteer::Connection
172
172
  session_id = message['params']['sessionId']
173
173
  session = @sessions[session_id]
174
174
  if session
175
- session._onClosed
175
+ session.handle_closed
176
176
  @sessions.delete(session_id)
177
177
  end
178
178
  end
@@ -55,7 +55,7 @@ class Puppeteer::DOMWorld
55
55
  @context_promise.resolved?
56
56
  end
57
57
 
58
- private def detach
58
+ def detach
59
59
  @detached = true
60
60
  @wait_tasks.each do |wait_task|
61
61
  wait_task.terminate(Puppeteer::WaitTask::TerminatedError.new('waitForFunction failed: frame got detached.'))
@@ -93,8 +93,21 @@ class Puppeteer::DOMWorld
93
93
  document.S(selector)
94
94
  end
95
95
 
96
+ class DocumentEvaluationError < StandardError; end
97
+
98
+ private def evaluate_document
99
+ # sometimes execution_context.evaluate_handle('document') returns null object.
100
+ # D, [2020-04-24T02:17:51.023631 #220] DEBUG -- : RECV << {"id"=>20, "result"=>{"result"=>{"type"=>"object", "subtype"=>"null", "value"=>nil}}, "sessionId"=>"78E9CF1E14D81294E320E7C20E5CDE06"}
101
+ # retry if so.
102
+ 5.times do
103
+ handle = execution_context.evaluate_handle('document')
104
+ return handle if handle.is_a?(Puppeteer::ElementHandle)
105
+ end
106
+ raise DocumentEvaluationError.new("'document' object cannot be evaluated as an Element")
107
+ end
108
+
96
109
  private def document
97
- @document ||= execution_context.evaluate_handle('document').as_element
110
+ @document ||= evaluate_document.as_element
98
111
  end
99
112
 
100
113
  # `$x()` in JavaScript. $ is not allowed to use as a method name in Ruby.
@@ -410,8 +410,9 @@ class Puppeteer::ElementHandle < Puppeteer::JSHandle
410
410
  # @return [Object]
411
411
  def SSeval(selector, page_function, *args)
412
412
  handles = evaluate_handle(
413
- '(element, selector) => Array.from(element.querySelectorAll(selector))',
414
- selector)
413
+ '(element, selector) => Array.from(element.querySelectorAll(selector))',
414
+ selector,
415
+ )
415
416
  result = handles.evaluate(page_function, *args)
416
417
  handles.dispose
417
418
 
@@ -248,6 +248,10 @@ class Puppeteer::Frame
248
248
  # TODO(lushnikov): remove this once requestInterception has loaderId exposed.
249
249
  @navigation_url = frame_payload['url']
250
250
  @url = frame_payload['url']
251
+
252
+ # Ensure loaderId updated.
253
+ # The order of [Page.lifecycleEvent name="init"] and [Page.frameNavigated] is random... for some reason...
254
+ @loader_id = frame_payload['loaderId']
251
255
  end
252
256
 
253
257
  # @param url [String]
@@ -219,7 +219,7 @@ class Puppeteer::FrameManager
219
219
 
220
220
  # @param frame_payload [Hash]
221
221
  def handle_frame_navigated(frame_payload)
222
- is_main_frame = !frame_payload['parent_id']
222
+ is_main_frame = !frame_payload['parentId']
223
223
  frame =
224
224
  if is_main_frame
225
225
  @main_frame
@@ -89,8 +89,9 @@ class Puppeteer::JSHandle
89
89
  response['result'].each_with_object({}) do |prop, h|
90
90
  next unless prop['enumerable']
91
91
  h[prop['name']] = Puppeteer::JSHandle.create(
92
- context: @context,
93
- remote_object: Puppeteer::RemoteObject.new(prop['value']))
92
+ context: @context,
93
+ remote_object: Puppeteer::RemoteObject.new(prop['value']),
94
+ )
94
95
  end
95
96
  end
96
97
 
@@ -6,7 +6,6 @@ require_relative './launcher/launch_options'
6
6
 
7
7
  # https://github.com/puppeteer/puppeteer/blob/master/lib/Launcher.js
8
8
  module Puppeteer::Launcher
9
-
10
9
  # @param {string} projectRoot
11
10
  # @param {string} preferredRevision
12
11
  # @param {boolean} isPuppeteerCore
@@ -73,7 +73,7 @@ class Puppeteer::LifecycleWatcher
73
73
  terminate(TerminatedError.new('Navigation failed because browser has disconnected!'))
74
74
  end
75
75
  @listener_ids['frame_manager'] = [
76
- @frame_manager.add_event_listener('Events.FrameManager.LifecycleEvent') do |frame|
76
+ @frame_manager.add_event_listener('Events.FrameManager.LifecycleEvent') do |_|
77
77
  check_lifecycle_complete
78
78
  end,
79
79
  @frame_manager.add_event_listener('Events.FrameManager.FrameNavigatedWithinDocument', &method(:navigated_within_document)),
@@ -149,10 +149,10 @@ class Puppeteer::LifecycleWatcher
149
149
  if @frame.loader_id == @initial_loader_id && !@has_same_document_navigation
150
150
  return
151
151
  end
152
- if @has_same_document_navigation
152
+ if @has_same_document_navigation && @same_document_navigation_promise.pending?
153
153
  @same_document_navigation_promise.fulfill(true)
154
154
  end
155
- if @frame.loader_id != @initial_loader_id
155
+ if @frame.loader_id != @initial_loader_id && @new_document_navigation_promise.pending?
156
156
  @new_document_navigation_promise.fulfill(true)
157
157
  end
158
158
  end
@@ -48,10 +48,10 @@ class Puppeteer::Page
48
48
  if event['targetInfo']['type'] != 'worker'
49
49
  # If we don't detach from service workers, they will never die.
50
50
  await @client.send_message('Target.detachFromTarget', sessionId: event['sessionId'])
51
- return
51
+ next
52
52
  end
53
53
 
54
- session = Puppeteer::Connection.from_session(@client).session(event['sessionId'])
54
+ session = Puppeteer::Connection.from_session(@client).session(event['sessionId']) # rubocop:disable Lint/UselessAssignment
55
55
  # const worker = new Worker(session, event.targetInfo.url, this._addConsoleMessage.bind(this), this._handleException.bind(this));
56
56
  # this._workers.set(event.sessionId, worker);
57
57
  # this.emit(Events.Page.WorkerCreated, worker);
@@ -59,7 +59,7 @@ class Puppeteer::Page
59
59
  @client.on_event 'Target.detachedFromTarget' do |event|
60
60
  session_id = event['sessionId']
61
61
  worker = @workers[session_id]
62
- return unless worker
62
+ next unless worker
63
63
 
64
64
  emit_event('Events.Page.WorkerDestroyed', worker)
65
65
  @workers.delete(session_id)
@@ -204,7 +204,9 @@ class Puppeteer::Page
204
204
  end
205
205
  if source != 'worker'
206
206
  console_message_location = Puppeteer::ConsoleMessage::Location.new(
207
- url: url, line_number: line_number)
207
+ url: url,
208
+ line_number: line_number,
209
+ )
208
210
  emit_event('Events.Page.Console',
209
211
  Puppeteer::ConsoleMessage.new(level, text, [], console_message_location))
210
212
  end
@@ -1,3 +1,3 @@
1
1
  class Puppeteer
2
- VERSION = '0.0.4'
2
+ VERSION = '0.0.5'
3
3
  end
@@ -25,5 +25,8 @@ Gem::Specification.new do |spec|
25
25
  spec.add_development_dependency 'pry-byebug'
26
26
  spec.add_development_dependency 'rake', '~> 10.0'
27
27
  spec.add_development_dependency 'rspec', '~> 3.0'
28
- spec.add_development_dependency 'rubocop', '~> 0.80.0'
28
+ spec.add_development_dependency 'rspec_junit_formatter' # for CircleCI.
29
+ spec.add_development_dependency 'rubocop', '~> 0.82.0'
30
+ spec.add_development_dependency 'rubocop-rspec'
31
+ spec.add_development_dependency 'yard'
29
32
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppeteer-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - YusukeIwaki
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-04-20 00:00:00.000000000 Z
11
+ date: 2020-04-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -108,20 +108,62 @@ dependencies:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: '3.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rspec_junit_formatter
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: rubocop
113
127
  requirement: !ruby/object:Gem::Requirement
114
128
  requirements:
115
129
  - - "~>"
116
130
  - !ruby/object:Gem::Version
117
- version: 0.80.0
131
+ version: 0.82.0
118
132
  type: :development
119
133
  prerelease: false
120
134
  version_requirements: !ruby/object:Gem::Requirement
121
135
  requirements:
122
136
  - - "~>"
123
137
  - !ruby/object:Gem::Version
124
- version: 0.80.0
138
+ version: 0.82.0
139
+ - !ruby/object:Gem::Dependency
140
+ name: rubocop-rspec
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: yard
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
125
167
  description:
126
168
  email:
127
169
  - q7w8e9w8q7w8e9@yahoo.co.jp
@@ -142,6 +184,98 @@ files:
142
184
  - bin/console
143
185
  - bin/setup
144
186
  - docker-compose.yml
187
+ - docs/Puppeteer.html
188
+ - docs/Puppeteer/AsyncAwaitBehavior.html
189
+ - docs/Puppeteer/Browser.html
190
+ - docs/Puppeteer/BrowserContext.html
191
+ - docs/Puppeteer/BrowserFetcher.html
192
+ - docs/Puppeteer/BrowserRunner.html
193
+ - docs/Puppeteer/BrowserRunner/BrowserProcess.html
194
+ - docs/Puppeteer/CDPSession.html
195
+ - docs/Puppeteer/CDPSession/Error.html
196
+ - docs/Puppeteer/ConcurrentRubyUtils.html
197
+ - docs/Puppeteer/Connection.html
198
+ - docs/Puppeteer/Connection/MessageCallback.html
199
+ - docs/Puppeteer/Connection/ProtocolError.html
200
+ - docs/Puppeteer/Connection/RequestDebugPrinter.html
201
+ - docs/Puppeteer/Connection/ResponseDebugPrinter.html
202
+ - docs/Puppeteer/ConsoleMessage.html
203
+ - docs/Puppeteer/ConsoleMessage/Location.html
204
+ - docs/Puppeteer/DOMWorld.html
205
+ - docs/Puppeteer/DOMWorld/DetachedError.html
206
+ - docs/Puppeteer/DOMWorld/DocumentEvaluationError.html
207
+ - docs/Puppeteer/DebugPrint.html
208
+ - docs/Puppeteer/Device.html
209
+ - docs/Puppeteer/Devices.html
210
+ - docs/Puppeteer/ElementHandle.html
211
+ - docs/Puppeteer/ElementHandle/ElementNotFoundError.html
212
+ - docs/Puppeteer/ElementHandle/ElementNotVisibleError.html
213
+ - docs/Puppeteer/ElementHandle/Point.html
214
+ - docs/Puppeteer/ElementHandle/ScrollIntoViewError.html
215
+ - docs/Puppeteer/EmulationManager.html
216
+ - docs/Puppeteer/EventCallbackable.html
217
+ - docs/Puppeteer/EventCallbackable/EventListeners.html
218
+ - docs/Puppeteer/ExecutionContext.html
219
+ - docs/Puppeteer/ExecutionContext/EvaluationError.html
220
+ - docs/Puppeteer/ExecutionContext/JavaScriptExpression.html
221
+ - docs/Puppeteer/ExecutionContext/JavaScriptFunction.html
222
+ - docs/Puppeteer/Frame.html
223
+ - docs/Puppeteer/FrameManager.html
224
+ - docs/Puppeteer/FrameManager/NavigationError.html
225
+ - docs/Puppeteer/IfPresent.html
226
+ - docs/Puppeteer/JSHandle.html
227
+ - docs/Puppeteer/Keyboard.html
228
+ - docs/Puppeteer/Keyboard/KeyDefinition.html
229
+ - docs/Puppeteer/Keyboard/KeyDescription.html
230
+ - docs/Puppeteer/Launcher.html
231
+ - docs/Puppeteer/Launcher/Base.html
232
+ - docs/Puppeteer/Launcher/Base/ExecutablePathNotFound.html
233
+ - docs/Puppeteer/Launcher/BrowserOptions.html
234
+ - docs/Puppeteer/Launcher/Chrome.html
235
+ - docs/Puppeteer/Launcher/Chrome/DefaultArgs.html
236
+ - docs/Puppeteer/Launcher/ChromeArgOptions.html
237
+ - docs/Puppeteer/Launcher/LaunchOptions.html
238
+ - docs/Puppeteer/LifecycleWatcher.html
239
+ - docs/Puppeteer/LifecycleWatcher/ExpectedLifecycle.html
240
+ - docs/Puppeteer/LifecycleWatcher/FrameDetachedError.html
241
+ - docs/Puppeteer/LifecycleWatcher/TerminatedError.html
242
+ - docs/Puppeteer/Mouse.html
243
+ - docs/Puppeteer/Mouse/Button.html
244
+ - docs/Puppeteer/NetworkManager.html
245
+ - docs/Puppeteer/NetworkManager/Credentials.html
246
+ - docs/Puppeteer/Page.html
247
+ - docs/Puppeteer/Page/ScreenshotOptions.html
248
+ - docs/Puppeteer/Page/ScriptTag.html
249
+ - docs/Puppeteer/Page/StyleTag.html
250
+ - docs/Puppeteer/Page/TargetCrashedError.html
251
+ - docs/Puppeteer/RemoteObject.html
252
+ - docs/Puppeteer/Target.html
253
+ - docs/Puppeteer/Target/InitializeFailure.html
254
+ - docs/Puppeteer/Target/TargetInfo.html
255
+ - docs/Puppeteer/TimeoutError.html
256
+ - docs/Puppeteer/TimeoutSettings.html
257
+ - docs/Puppeteer/TouchScreen.html
258
+ - docs/Puppeteer/Viewport.html
259
+ - docs/Puppeteer/WaitTask.html
260
+ - docs/Puppeteer/WaitTask/TerminatedError.html
261
+ - docs/Puppeteer/WebSocket.html
262
+ - docs/Puppeteer/WebSocket/DriverImpl.html
263
+ - docs/Puppeteer/WebSocketTransport.html
264
+ - docs/Puppeteer/WebSocktTransportError.html
265
+ - docs/_index.html
266
+ - docs/class_list.html
267
+ - docs/css/common.css
268
+ - docs/css/full_list.css
269
+ - docs/css/style.css
270
+ - docs/file.README.html
271
+ - docs/file_list.html
272
+ - docs/frames.html
273
+ - docs/index.html
274
+ - docs/js/app.js
275
+ - docs/js/full_list.js
276
+ - docs/js/jquery.js
277
+ - docs/method_list.html
278
+ - docs/top-level-namespace.html
145
279
  - lib/puppeteer.rb
146
280
  - lib/puppeteer/async_await_behavior.rb
147
281
  - lib/puppeteer/browser.rb