ruby-clock 0.8.0.rc2 → 0.8.0.rc3

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: 2ec6ebc2ef5793e7d114920402b20ed5129e1f60a78cb444d208e45def25a36b
4
- data.tar.gz: 3935724aaa45567dd2e769274f76fc1b5a3785f155d4885764a25635a8bf6c96
3
+ metadata.gz: 7e8d972bb2c2468f53d943f233e4e799df71a449b6f7b8c00a1ddbea33c54c92
4
+ data.tar.gz: fc97259d0575bd220f79dd25206128001eece56ec51eda06d95f28d718b65080
5
5
  SHA512:
6
- metadata.gz: cf58749b267218114e3ad235fa64d0c7e21cecc13c75f6a655b63cf16f056dcc174e6cd724be74c3a5c39087eec808e03d72829674cff52d85f0f831340efeb3
7
- data.tar.gz: 04eefdc557205145fad64889dec7f7dcf6af4ead08dcc8795af58be4fffc2a54d97bb261048478c98aab58be30124e47f1d35c5115976cdd4119b95903e9b5ce
6
+ metadata.gz: 6dcf79cbebb137a9f04e920b8d6ff0f910bd61536e3e666297217aef8d9942c656fca0d67d794c753ab42a9e035be364bcf3d3b6e465058ebfe7e8683fa94fea
7
+ data.tar.gz: a3ca20e788af53d77d5526aaacb3b7ff4b07e8852e7586fe181e1681985b32b5bce3a9f0a305507be335dfeee7399567a6cd31afe8262b6e0b84db9cd2d9a75a
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.8.0 RC3
2
+
3
+ * make terrapin and posix-spawn gems optional
4
+
1
5
  ## 0.8.0 RC2
2
6
 
3
7
  * fix detection of Rails constant, for non-rails apps
data/Gemfile.lock CHANGED
@@ -3,14 +3,11 @@ PATH
3
3
  specs:
4
4
  ruby-clock (0.8.0.rc2)
5
5
  method_source
6
- posix-spawn (~> 0.3.15)
7
6
  rufus-scheduler (~> 3.8)
8
- terrapin (~> 0.6)
9
7
 
10
8
  GEM
11
9
  remote: https://rubygems.org/
12
10
  specs:
13
- climate_control (0.2.0)
14
11
  concurrent-ruby (1.1.9)
15
12
  et-orbi (1.2.5)
16
13
  tzinfo
@@ -18,13 +15,10 @@ GEM
18
15
  et-orbi (~> 1.1, >= 1.1.8)
19
16
  raabro (~> 1.4)
20
17
  method_source (1.0.0)
21
- posix-spawn (0.3.15)
22
18
  raabro (1.4.0)
23
19
  rake (12.3.3)
24
20
  rufus-scheduler (3.8.0)
25
21
  fugit (~> 1.1, >= 1.1.6)
26
- terrapin (0.6.0)
27
- climate_control (>= 0.0.3, < 1.0)
28
22
  tzinfo (2.0.4)
29
23
  concurrent-ruby (~> 1.0)
30
24
 
data/README.md CHANGED
@@ -138,9 +138,7 @@ to learn how to do this. Where the documentation references `s`, you should use
138
138
 
139
139
  ### Shell commands
140
140
 
141
- You can run shell commands in your jobs. They are invoked using
142
- [posix-spawn](https://github.com/rtomayko/posix-spawn), which means
143
- the ruby process is not forked.
141
+ You can run shell commands in your jobs.
144
142
 
145
143
  ```ruby
146
144
  schedule.every '1 day' do
@@ -148,9 +146,14 @@ schedule.every '1 day' do
148
146
  end
149
147
  ```
150
148
 
151
- `shell` is a very simple convenience method which is implemented with
152
- [terrapin](https://github.com/thoughtbot/terrapin). If you want to use other terrapin
153
- features you can do so:
149
+ By default they will be run with
150
+ [ruby backticks](https://livebook.manning.com/concept/ruby/backtick).
151
+ For better performance, install the [terrapin](https://github.com/thoughtbot/terrapin)
152
+ and [posix-spawn](https://github.com/rtomayko/posix-spawn) gems.
153
+
154
+ `shell` is a convenience method which just passes the string on.
155
+ If you want to use other terrapin features, you can skip the `shell` command
156
+ and use terrapin directly:
154
157
 
155
158
  ```ruby
156
159
  schedule.every '1 day' do
@@ -1,3 +1,11 @@
1
+ def schedule.on_error(job, error)
2
+ raise error
3
+ end
4
+
1
5
  schedule.every('2 seconds') do
2
6
  puts "hello from a ruby-clock job"
3
7
  end
8
+
9
+ schedule.every('2 seconds') do
10
+ shell 'say hello'
11
+ end
data/example-app/Gemfile CHANGED
@@ -3,3 +3,5 @@
3
3
  source "https://rubygems.org"
4
4
 
5
5
  gem 'ruby-clock', path: '../'
6
+ # gem 'terrapin'
7
+ # gem 'posix-spawn'
@@ -1,16 +1,13 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- ruby-clock (0.8.0.rc1)
4
+ ruby-clock (0.8.0.rc2)
5
5
  method_source
6
- posix-spawn (~> 0.3.15)
7
6
  rufus-scheduler (~> 3.8)
8
- terrapin (~> 0.6)
9
7
 
10
8
  GEM
11
9
  remote: https://rubygems.org/
12
10
  specs:
13
- climate_control (0.2.0)
14
11
  concurrent-ruby (1.1.9)
15
12
  et-orbi (1.2.5)
16
13
  tzinfo
@@ -18,12 +15,9 @@ GEM
18
15
  et-orbi (~> 1.1, >= 1.1.8)
19
16
  raabro (~> 1.4)
20
17
  method_source (1.0.0)
21
- posix-spawn (0.3.15)
22
18
  raabro (1.4.0)
23
19
  rufus-scheduler (3.8.0)
24
20
  fugit (~> 1.1, >= 1.1.6)
25
- terrapin (0.6.0)
26
- climate_control (>= 0.0.3, < 1.0)
27
21
  tzinfo (2.0.4)
28
22
  concurrent-ruby (~> 1.0)
29
23
 
@@ -1,3 +1,3 @@
1
1
  module RubyClock
2
- VERSION = "0.8.0.rc2"
2
+ VERSION = "0.8.0.rc3"
3
3
  end
data/lib/ruby-clock.rb CHANGED
@@ -69,8 +69,41 @@ module RubyClock
69
69
  @rake_mutex.synchronize { rake_async(task) }
70
70
  end
71
71
 
72
+ def shell_runner
73
+ @shell_runner ||= begin
74
+ require 'terrapin'
75
+ require 'posix-spawn'
76
+
77
+ unless Terrapin::CommandLine.runner.class == Terrapin::CommandLine::PosixRunner
78
+ puts <<~MESSAGE
79
+
80
+ 🤷 terrapin and posix-spawn are installed, but for some reason terrapin is
81
+ not using posix-spawn as its runner.
82
+
83
+ MESSAGE
84
+ end
85
+
86
+ puts '🐆 Using terrapin for shell commands.'
87
+ :terrapin
88
+ rescue LoadError
89
+ puts <<~MESSAGE
90
+
91
+ 🦥 Using ruby backticks for shell commands.
92
+ For better performance, install the terrapin and posix-spawn gems.
93
+ See README.md for more info.
94
+
95
+ MESSAGE
96
+ :backticks
97
+ end
98
+ end
99
+
72
100
  def shell(command)
73
- Terrapin::CommandLine.new(command).run
101
+ case shell_runner
102
+ when :terrapin
103
+ Terrapin::CommandLine.new(command).run
104
+ when :backticks
105
+ `#{command}`
106
+ end
74
107
  end
75
108
 
76
109
  end
data/release.md CHANGED
@@ -1,3 +1,4 @@
1
1
  1. update lib/ruby-clock/version.rb
2
2
  2. update CHANGELOG.md
3
+ 3. commit and push to github
3
4
  3. `rake release`
data/ruby-clock.gemspec CHANGED
@@ -31,6 +31,4 @@ Gem::Specification.new do |spec|
31
31
 
32
32
  spec.add_dependency "rufus-scheduler", '~> 3.8'
33
33
  spec.add_dependency "method_source"
34
- spec.add_dependency "terrapin", '~> 0.6'
35
- spec.add_dependency "posix-spawn", '~> 0.3.15'
36
34
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-clock
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0.rc2
4
+ version: 0.8.0.rc3
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Bachir
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-10-12 00:00:00.000000000 Z
11
+ date: 2021-10-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rufus-scheduler
@@ -38,34 +38,6 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: terrapin
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '0.6'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '0.6'
55
- - !ruby/object:Gem::Dependency
56
- name: posix-spawn
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: 0.3.15
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: 0.3.15
69
41
  description:
70
42
  email:
71
43
  - j@jjb.cc