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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 42ae899603df19fcd01dc7c565aabcc162be29b7e9a12e508ba1bf3b2c26002a
4
- data.tar.gz: 3f5ee794cdb712200821de3b9ecd17cbe6edc085b70e1af393f88fab98ef3de1
3
+ metadata.gz: e10835f0d5dff1baa1cc0e65f3a916372c9f97ecf02c80ae337b192aca99c082
4
+ data.tar.gz: 5b5d44b8d329282fe8dfef8d7867ed9d1d57174e7fdc4d1ecc07180ba720e491
5
5
  SHA512:
6
- metadata.gz: 8d36c239dbe64b1693756615fe7aadf111aa71646fa226320bb85c69945f79ae921f29533ed7f6f6d376a78c82ddd22d4e517aaef536732f8bc72b40ba7010fb
7
- data.tar.gz: 80a67649a61f32bf80f4d28195f9da07ec3528c801b00a79908a8baa9103577a70ce7a29e374d66fbf7f9ecbfee8b103a2f7c03c88ad4ffd22f827c8162351e2
6
+ metadata.gz: 56fdf04341dbf6b119d5682ad80d69beafe9147552bb26f53ba1c94e40ba509c7846d669de16b79f2ca667c18fceb8dc3d540d0922de934269ecc885f1a549c1
7
+ data.tar.gz: 611689e94f1846eb5b1f25a2d22b65666c34a28ab4d95239015f575c26f30f4e8dc9b4931aa8ebbb003a5a7f8a29224019036c3f49934d2f3e2c745fa63b4114
data/.gitignore CHANGED
@@ -1,4 +1,5 @@
1
1
  /.bundle/
2
+ /.claude/
2
3
  /.yardoc
3
4
  /_yardoc/
4
5
  /coverage/
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
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2018 Victor Afanasev
3
+ Copyright (c) 2025 Victor Afanasev
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Rubium
2
2
 
3
- > **Rubium updated to 0.2.0 version!** Added new options like `set_cookies`, `restart_after`, `urls_blacklist`, `disable_images` and others. Check the readme below:
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
 
@@ -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 = 2
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
- FileUtils.rm_rf(@data_dir) if Dir.exist?(@data_dir)
59
- @closed = true
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
- @data_dir = "/tmp/rubium_profile_#{SecureRandom.hex}"
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") ||
@@ -1,3 +1,3 @@
1
1
  module Rubium
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
data/lib/rubium.rb CHANGED
@@ -30,6 +30,7 @@ module Rubium
30
30
  --mute-audio
31
31
  --no-sandbox
32
32
  --disable-infobars
33
+ --disable-blink-features=AutomationControlled
33
34
  ).freeze
34
35
 
35
36
  def self.configuration
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.2"
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", "~> 1.16"
30
- spec.add_development_dependency "rake", "~> 10.0"
31
- spec.add_development_dependency "minitest", "~> 5.0"
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.0
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: 2019-01-05 00:00:00.000000000 Z
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.2'
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.2'
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: '1.16'
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: '1.16'
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: '10.0'
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: '10.0'
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.0'
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.0'
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
- rubyforge_project:
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: []