rubium 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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/CHANGELOG.md +28 -0
- data/LICENSE.txt +1 -1
- data/README.md +9 -3
- data/lib/rubium/browser.rb +9 -4
- data/lib/rubium/version.rb +1 -1
- data/lib/rubium.rb +1 -0
- data/rubium.gemspec +4 -4
- metadata +12 -15
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e10835f0d5dff1baa1cc0e65f3a916372c9f97ecf02c80ae337b192aca99c082
|
|
4
|
+
data.tar.gz: 5b5d44b8d329282fe8dfef8d7867ed9d1d57174e7fdc4d1ecc07180ba720e491
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 56fdf04341dbf6b119d5682ad80d69beafe9147552bb26f53ba1c94e40ba509c7846d669de16b79f2ca667c18fceb8dc3d540d0922de934269ecc885f1a549c1
|
|
7
|
+
data.tar.gz: 611689e94f1846eb5b1f25a2d22b65666c34a28ab4d95239015f575c26f30f4e8dc9b4931aa8ebbb003a5a7f8a29224019036c3f49934d2f3e2c745fa63b4114
|
data/.gitignore
CHANGED
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [0.2.1] - 2025-12-07
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- Added CHANGELOG.md to track version changes
|
|
12
|
+
- Require fileutils to make sure fileutils included in newer ruby versions
|
|
13
|
+
- Update dependencies
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
- Updated MAX_CONNECT_WAIT_TIME to 6 seconds
|
|
17
|
+
- Added option to provide custom data-dir path
|
|
18
|
+
|
|
19
|
+
## [0.2.0] - 2019-02-24
|
|
20
|
+
|
|
21
|
+
- Added logging support
|
|
22
|
+
- Added cookies and restart_after options
|
|
23
|
+
- Added urls_blacklist and disable_images options
|
|
24
|
+
- Various bug fixes and improvements
|
|
25
|
+
|
|
26
|
+
## [0.1.0] - 2019-01-XX
|
|
27
|
+
|
|
28
|
+
- Initial release
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Rubium
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
## Description
|
|
4
4
|
|
|
5
5
|
Rubium is a handy wrapper around [chrome_remote](https://github.com/cavalle/chrome_remote) gem. It adds browsers instances handling, and some Capybara-like methods. It is very lightweight (250 lines of code in the main `Rubium::Browser` class for now) and doens't use Selenium or Capybara. Consider Rubium as a _very simple_ and _basic_ implementation of [Puppeteer](https://github.com/GoogleChrome/puppeteer) in Ruby language.
|
|
6
6
|
|
|
@@ -101,12 +101,18 @@ Rubium.configure do |config|
|
|
|
101
101
|
end
|
|
102
102
|
```
|
|
103
103
|
|
|
104
|
+
Common Chrome path example for MacOS:
|
|
105
|
+
|
|
106
|
+
```ruby
|
|
107
|
+
Rubium.configure do |config|
|
|
108
|
+
config.chrome_path = "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
|
|
109
|
+
end
|
|
110
|
+
```
|
|
111
|
+
|
|
104
112
|
|
|
105
113
|
## Installation
|
|
106
114
|
Rubium tested with `2.3.0` Ruby version and up.
|
|
107
115
|
|
|
108
|
-
Rubium is in the alpha stage (and therefore will have breaking updates in the future), so it's recommended to hard-code latest gem version in your Gemfile, like: `gem 'rubium', '0.1.0'`.
|
|
109
|
-
|
|
110
116
|
## Contribution
|
|
111
117
|
Sure, feel free to fork and add new functionality.
|
|
112
118
|
|
data/lib/rubium/browser.rb
CHANGED
|
@@ -5,6 +5,7 @@ require 'cliver'
|
|
|
5
5
|
require 'timeout'
|
|
6
6
|
require 'securerandom'
|
|
7
7
|
require 'logger'
|
|
8
|
+
require 'fileutils'
|
|
8
9
|
|
|
9
10
|
at_exit do
|
|
10
11
|
Rubium::Browser.running_pids.each { |pid| Process.kill("HUP", pid) }
|
|
@@ -14,7 +15,7 @@ module Rubium
|
|
|
14
15
|
class Browser
|
|
15
16
|
class ConfigurationError < StandardError; end
|
|
16
17
|
|
|
17
|
-
MAX_CONNECT_WAIT_TIME =
|
|
18
|
+
MAX_CONNECT_WAIT_TIME = 6
|
|
18
19
|
MAX_DEFAULT_TIMEOUT = 60
|
|
19
20
|
|
|
20
21
|
class << self
|
|
@@ -55,10 +56,13 @@ module Rubium
|
|
|
55
56
|
self.class.running_pids.delete(@pid)
|
|
56
57
|
self.class.ports_pool.release(@port)
|
|
57
58
|
|
|
58
|
-
|
|
59
|
-
|
|
59
|
+
# Delete temp profile directory, if there is no custom one
|
|
60
|
+
unless options[:data_dir]
|
|
61
|
+
FileUtils.rm_rf(@data_dir) if Dir.exist?(@data_dir)
|
|
62
|
+
end
|
|
60
63
|
|
|
61
64
|
logger.info "Closed browser" if options[:enable_logger]
|
|
65
|
+
@closed = true
|
|
62
66
|
end
|
|
63
67
|
end
|
|
64
68
|
|
|
@@ -188,7 +192,8 @@ module Rubium
|
|
|
188
192
|
@processed_requests_count = 0
|
|
189
193
|
|
|
190
194
|
@port = options[:debugging_port] || self.class.ports_pool.acquire
|
|
191
|
-
|
|
195
|
+
|
|
196
|
+
@data_dir = options[:data_dir] || "/tmp/rubium_profile_#{SecureRandom.hex}"
|
|
192
197
|
|
|
193
198
|
chrome_path = Rubium.configuration.chrome_path ||
|
|
194
199
|
Cliver.detect("chromium-browser") ||
|
data/lib/rubium/version.rb
CHANGED
data/lib/rubium.rb
CHANGED
data/rubium.gemspec
CHANGED
|
@@ -21,12 +21,12 @@ Gem::Specification.new do |spec|
|
|
|
21
21
|
end
|
|
22
22
|
spec.require_paths = ["lib"]
|
|
23
23
|
|
|
24
|
-
spec.add_dependency "chrome_remote", "~> 0.
|
|
24
|
+
spec.add_dependency "chrome_remote", "~> 0.3"
|
|
25
25
|
spec.add_dependency "cliver", "~> 0.3"
|
|
26
26
|
spec.add_dependency "random-port"
|
|
27
27
|
spec.add_dependency "nokogiri"
|
|
28
28
|
|
|
29
|
-
spec.add_development_dependency "bundler", "~>
|
|
30
|
-
spec.add_development_dependency "rake", "~>
|
|
31
|
-
spec.add_development_dependency "minitest", "~> 5.
|
|
29
|
+
spec.add_development_dependency "bundler", "~> 2.4"
|
|
30
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
|
31
|
+
spec.add_development_dependency "minitest", "~> 5.22"
|
|
32
32
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rubium
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Victor Afanasev
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: chrome_remote
|
|
@@ -16,14 +15,14 @@ dependencies:
|
|
|
16
15
|
requirements:
|
|
17
16
|
- - "~>"
|
|
18
17
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '0.
|
|
18
|
+
version: '0.3'
|
|
20
19
|
type: :runtime
|
|
21
20
|
prerelease: false
|
|
22
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
22
|
requirements:
|
|
24
23
|
- - "~>"
|
|
25
24
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '0.
|
|
25
|
+
version: '0.3'
|
|
27
26
|
- !ruby/object:Gem::Dependency
|
|
28
27
|
name: cliver
|
|
29
28
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -72,42 +71,42 @@ dependencies:
|
|
|
72
71
|
requirements:
|
|
73
72
|
- - "~>"
|
|
74
73
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: '
|
|
74
|
+
version: '2.4'
|
|
76
75
|
type: :development
|
|
77
76
|
prerelease: false
|
|
78
77
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
78
|
requirements:
|
|
80
79
|
- - "~>"
|
|
81
80
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: '
|
|
81
|
+
version: '2.4'
|
|
83
82
|
- !ruby/object:Gem::Dependency
|
|
84
83
|
name: rake
|
|
85
84
|
requirement: !ruby/object:Gem::Requirement
|
|
86
85
|
requirements:
|
|
87
86
|
- - "~>"
|
|
88
87
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: '
|
|
88
|
+
version: '13.0'
|
|
90
89
|
type: :development
|
|
91
90
|
prerelease: false
|
|
92
91
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
92
|
requirements:
|
|
94
93
|
- - "~>"
|
|
95
94
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: '
|
|
95
|
+
version: '13.0'
|
|
97
96
|
- !ruby/object:Gem::Dependency
|
|
98
97
|
name: minitest
|
|
99
98
|
requirement: !ruby/object:Gem::Requirement
|
|
100
99
|
requirements:
|
|
101
100
|
- - "~>"
|
|
102
101
|
- !ruby/object:Gem::Version
|
|
103
|
-
version: '5.
|
|
102
|
+
version: '5.22'
|
|
104
103
|
type: :development
|
|
105
104
|
prerelease: false
|
|
106
105
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
106
|
requirements:
|
|
108
107
|
- - "~>"
|
|
109
108
|
- !ruby/object:Gem::Version
|
|
110
|
-
version: '5.
|
|
109
|
+
version: '5.22'
|
|
111
110
|
description: Headless Chromium Ruby API based on ChromeRemote gem
|
|
112
111
|
email:
|
|
113
112
|
- vicfreefly@gmail.com
|
|
@@ -116,6 +115,7 @@ extensions: []
|
|
|
116
115
|
extra_rdoc_files: []
|
|
117
116
|
files:
|
|
118
117
|
- ".gitignore"
|
|
118
|
+
- CHANGELOG.md
|
|
119
119
|
- Gemfile
|
|
120
120
|
- LICENSE.txt
|
|
121
121
|
- README.md
|
|
@@ -130,7 +130,6 @@ homepage: https://github.com/vifreefly/rubium
|
|
|
130
130
|
licenses:
|
|
131
131
|
- MIT
|
|
132
132
|
metadata: {}
|
|
133
|
-
post_install_message:
|
|
134
133
|
rdoc_options: []
|
|
135
134
|
require_paths:
|
|
136
135
|
- lib
|
|
@@ -145,9 +144,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
145
144
|
- !ruby/object:Gem::Version
|
|
146
145
|
version: '0'
|
|
147
146
|
requirements: []
|
|
148
|
-
|
|
149
|
-
rubygems_version: 2.7.6
|
|
150
|
-
signing_key:
|
|
147
|
+
rubygems_version: 3.6.7
|
|
151
148
|
specification_version: 4
|
|
152
149
|
summary: Headless Chromium Ruby API based on ChromeRemote gem
|
|
153
150
|
test_files: []
|