site_watcher 1.2.0 → 1.3.0

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: c4e2f96ed610dcd80aad605e87d12a091279ba95a3acf1c02fab68996758ceee
4
- data.tar.gz: f515eec47e817828a5f434a2c53c1b3b157f159bf0b37d72785f62c3b785bda3
3
+ metadata.gz: 3871bda59d433bb2e423b760919479b402714bcb2ac18ef0d2e6312f3e06a3ee
4
+ data.tar.gz: b154e6c67de541fe782cdf1583c335ddd30fbc92d98cdc8895d1541f397ac414
5
5
  SHA512:
6
- metadata.gz: fdf0653dfdcf6cb27498d2af4b519daeebe157b11a6b98534821f2d8ee31ea8cd57a1377ed81b93e20706457e46eb521c823d1cbcdef3c699fe7c6dcac7e39bd
7
- data.tar.gz: d3e1888fb72ef0d9e7d9acb0661ed50699325539f377d6cf1675a7a9f4a169eab7f6c897e8ec62df7eff2c6c86235092f4146a56a37be09f582a46412e6d475e
6
+ metadata.gz: 50a42cc608c857812f62578cac2f37eca9a7c2a8b1d3b73850c6a95a5ff75f1a940f71b856a069ccb4e93891906b097cc051bcd4b9284ced82beaa0b6e62437b
7
+ data.tar.gz: 5b2587837c2d4db18c2565c7818146ce7b70e83c2989a39197dde9f3e013456af86d721e3e71f58daf76f66af43b78b945a4ed9d9122ccc7886aa684b9b33049
@@ -1,3 +1,3 @@
1
1
  class SiteWatcher
2
- VERSION = "1.2.0"
2
+ VERSION = "1.3.0"
3
3
  end
data/lib/site_watcher.rb CHANGED
@@ -8,29 +8,30 @@ require "rspec/expectations"
8
8
 
9
9
  class SiteWatcher
10
10
  def self.watch(opts={}, &block)
11
- trap(:SIGINT) { abort(?\n) }
12
-
13
11
  dsl = DSL::Top.new
14
12
  dsl.instance_eval(&block)
15
13
 
16
14
  delay = opts.fetch(:every, 5)
17
- logger = opts.fetch(:logger, ::Logger.new($stderr))
15
+ logger = opts.fetch(:logger, ::Logger.new($stderr, level: :warn))
16
+ timeout = opts.fetch(:timeout, {connect: 3, read: 10})
18
17
 
19
18
  new(
20
19
  dsl.__sw_before_hooks,
21
20
  dsl.__sw_pages,
22
21
  dsl.__sw_after_hooks,
23
22
  delay,
24
- logger
23
+ logger,
24
+ timeout,
25
25
  ).watch
26
26
  end
27
27
 
28
- def initialize(before_hooks, pages, after_hooks, delay, logger)
28
+ def initialize(before_hooks, pages, after_hooks, delay, logger, timeout)
29
29
  @before_hooks = before_hooks
30
30
  @pages = pages
31
31
  @after_hooks = after_hooks
32
32
  @delay = delay
33
33
  @logger = logger
34
+ @timeout = timeout
34
35
  @force = false
35
36
  end
36
37
 
@@ -44,7 +45,7 @@ class SiteWatcher
44
45
 
45
46
  @pages.each do |page|
46
47
  begin
47
- page.__sw_run!(force)
48
+ page.__sw_run!(force, @logger, @timeout)
48
49
  @pages.delete(page) if page.__sw_remove_on_fulfillment
49
50
  rescue ::RSpec::Expectations::ExpectationNotMetError
50
51
  rescue => e
@@ -147,11 +148,13 @@ class SiteWatcher
147
148
  @__sw_remove_on_fulfillment = !!bool
148
149
  end
149
150
 
150
- def __sw_run!(force=false)
151
+ def __sw_run!(force, logger, timeout)
151
152
  if @__sw_fetch
152
153
  response = @__sw_fetch.call(@__sw_url)
153
154
  else
154
155
  response = ::HTTP
156
+ .use(logging: {logger: logger})
157
+ .timeout(timeout)
155
158
  .headers(@__sw_headers)
156
159
  .request(@__sw_method, @__sw_url, **@__sw_http_opts)
157
160
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: site_watcher
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Genco
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-07-12 00:00:00.000000000 Z
11
+ date: 2021-11-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capybara
@@ -108,7 +108,7 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
- description:
111
+ description:
112
112
  email:
113
113
  - alexgenco@gmail.com
114
114
  executables: []
@@ -123,7 +123,7 @@ homepage: https://github.com/alexgenco/site_watcher
123
123
  licenses:
124
124
  - MIT
125
125
  metadata: {}
126
- post_install_message:
126
+ post_install_message:
127
127
  rdoc_options: []
128
128
  require_paths:
129
129
  - lib
@@ -138,8 +138,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
138
138
  - !ruby/object:Gem::Version
139
139
  version: '0'
140
140
  requirements: []
141
- rubygems_version: 3.2.22
142
- signing_key:
141
+ rubygems_version: 3.1.4
142
+ signing_key:
143
143
  specification_version: 4
144
144
  summary: Periodically monitor a website
145
145
  test_files: []