jobly 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8ad67b7e96a1ee27e3034c812d05026f922b72585d70d0c8085f9173f8e70d04
4
- data.tar.gz: 9614bb05c9da5bf17a9e2d25e3aafdd859bf811828f71c6a511557dc926985ae
3
+ metadata.gz: efd28d722eeb4dc40024eda54bcc5f302a61db6a0036ce836435aeeafb6402e0
4
+ data.tar.gz: 949714c32284267a829dd32be6277739e3fb097a4343cbcecd3aa6805a03065f
5
5
  SHA512:
6
- metadata.gz: c891c3bbff7c1c37180fdc186b22f63a50730f978125546e48a2231ebeab630bb27312016c3d47fa39afcc48dd79bb0e59bb96c1abafebbc16804f77eec8da42
7
- data.tar.gz: f021ecf23d579f53fc713b4657ca2613b429da6e7ff2e503e21bf9edb3d4b9f18bf48362349deafd0e1fab36324d51f029ea2d4e9f8dc5d38b43912ce63dce42
6
+ metadata.gz: e7438be9408c00d912ea9ebf1f80cbb38e74463c37a87da2b2e85c491dec526450e8d22f15f8a65e6ee45a1daf98df2f7955a5bcd59068102b5f38b4c976727f
7
+ data.tar.gz: 852d6c6a6b0d3f224856a5c027f83d417bc9431edb766dc80ae653afd4d5eecba4cf6e0e3c71b720382fe5ffe98a42fbb3203802bb1a4989bfd11d8202215bbb
data/README.md CHANGED
@@ -1,12 +1,17 @@
1
+ <div align='center'>
2
+
3
+ <img src='/assets/logo.svg' width=300>
4
+
1
5
  Jobly
2
6
  ==================================================
3
7
 
8
+ Compact job server with API, CLI, Web UI and a Sidekiq heart.
9
+
4
10
  [![Gem Version](https://badge.fury.io/rb/jobly.svg)](https://badge.fury.io/rb/jobly)
5
11
  [![Build Status](https://travis-ci.com/DannyBen/jobly.svg?branch=master)](https://travis-ci.com/DannyBen/jobly)
12
+ [![Maintainability](https://api.codeclimate.com/v1/badges/b3932ebd153d831583e2/maintainability)](https://codeclimate.com/github/DannyBen/jobly/maintainability)
6
13
 
7
- ---
8
-
9
- Job server toolbelt with API, CLI, Web UI and a Sidekiq heart.
14
+ </div>
10
15
 
11
16
  ---
12
17
 
@@ -16,6 +21,7 @@ Installation
16
21
  $ gem install jobly
17
22
 
18
23
 
24
+
19
25
  What's in the Box
20
26
  --------------------------------------------------
21
27
 
@@ -27,15 +33,19 @@ sidekiq backgronud jobs system. It includes the following components:
27
33
  - **Web API** - for executing jobs.
28
34
  - **Web Dashboard** - including job progress and status.
29
35
 
30
- Getting Started
36
+
37
+
38
+ Quick Start
31
39
  --------------------------------------------------
32
40
 
33
- TODO
41
+ Follow one of these annotated [examples](/examples).
42
+
34
43
 
35
44
 
36
45
  Usage
37
46
  --------------------------------------------------
38
47
 
48
+
39
49
  ### Server
40
50
 
41
51
  To start the server run `jobly server` and open <http://localhost:3000/>
@@ -44,7 +54,7 @@ in your browser.
44
54
  This will start a webserver with two primary entrypoints:
45
55
 
46
56
  - `/` (root) - a dashboard for your background job processes.
47
- - `/do/:job?param=value` - an API for executing jobs
57
+ - `/do/JobName?param=value` - an API for executing jobs
48
58
 
49
59
 
50
60
  ### Worker
@@ -59,18 +69,43 @@ There are three ways to run a job from the command line:
59
69
  Run the job locally, without going through any of the background job
60
70
  processing chain:
61
71
 
62
- ```ruby
63
- jobly run JobName param:value
64
- ```
72
+ $ jobly run JobName param:value
73
+
65
74
 
66
75
  Run the job locally, but wait for a worker to process it.
67
76
 
68
- ```ruby
69
- jobly run --later JobName param:value
70
- ```
77
+ $ jobly run --later JobName param:value
78
+
71
79
 
72
80
  Send a job through the API (either localhost or remote).
73
81
 
74
- ```ruby
75
- jobly send JobName param:value
82
+ $ jobly send JobName param:value
83
+
84
+
85
+ ### Running jobs through the API
86
+
87
+ The API supports running jobs either by GET or by POST in the following URL
88
+ structure:
89
+
90
+ <http://localhost:3000/do/JobName>
91
+
92
+ Using GET:
93
+
94
+ ```
95
+ $ curl localhost:3000/do/Build?deploy=no
96
+ # => {"status":"received","job":"Build","params":{"deploy":"no"}}
97
+ ```
98
+
99
+ Using POST:
100
+
101
+ ```
102
+ $ curl -XPOST localhost:3000/do/Build -d deploy=yes
103
+ {"status":"received","job":"Build","params":{"deploy":"yes"}}
76
104
  ```
105
+
106
+
107
+ Building Jobs
108
+ --------------------------------------------------
109
+
110
+ TODO
111
+
@@ -8,7 +8,7 @@ module Jobly
8
8
  usage "jobly config (-h|--help)"
9
9
 
10
10
  def run
11
- line "custom config file", short_config_path, Jobly.custom_config?
11
+ line "custom config file", short_config_path, !Jobly.custom_config?
12
12
  Jobly.options.each do |key, value|
13
13
  if key.to_s.end_with? '_path'
14
14
  line key, value, !Dir.exist?(value)
@@ -20,7 +20,7 @@ module Jobly
20
20
  job_class = Jobs.get_class! job
21
21
 
22
22
  if args['--later']
23
- say "!txtgrn!Scheduling"
23
+ say "Scheduling !txtgrn!#{job_class}"
24
24
  if params.empty?
25
25
  job_class.perform_async
26
26
  else
@@ -28,7 +28,7 @@ module Jobly
28
28
  end
29
29
 
30
30
  else
31
- say "!txtgrn!Running"
31
+ say "Running !txtgrn!#{job_class}"
32
32
  job_class.new.perform params
33
33
  end
34
34
  end
data/lib/jobly/jobs.rb CHANGED
@@ -1,11 +1,11 @@
1
1
  module Jobly
2
2
  module Jobs
3
3
  def self.get_class(job)
4
- Object.const_get namespaced_job(job) rescue nil
4
+ Object.const_get full_job_name(job) rescue nil
5
5
  end
6
6
 
7
7
  def self.get_class!(job)
8
- Object.const_get namespaced_job(job)
8
+ Object.const_get full_job_name(job)
9
9
  rescue NameError
10
10
  raise JobNotFound, job
11
11
  end
@@ -15,7 +15,8 @@ module Jobly
15
15
  Dir["#{Jobly.full_jobs_path}/**/*.rb"].each { |file| require file }
16
16
  end
17
17
 
18
- def self.namespaced_job(job)
18
+ def self.full_job_name(job)
19
+ job = job.gsub '/', '::'
19
20
  if Jobly.jobs_namespace
20
21
  "#{Jobly.jobs_namespace}::#{job}"
21
22
  else
data/lib/jobly/server.rb CHANGED
@@ -29,13 +29,15 @@ module Jobly
29
29
  }.to_json
30
30
  end
31
31
 
32
- get '/:job' do
33
- job = params.delete :job
32
+ get '/*' do
33
+ job = params[:splat].first
34
+ params.delete :splat
34
35
  add_job job, params
35
36
  end
36
37
 
37
- post '/:job' do
38
- job = params.delete :job
38
+ post '/*' do
39
+ job = params[:splat].first
40
+ params.delete :splat
39
41
  add_job job, params
40
42
  end
41
43
 
data/lib/jobly/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Jobly
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jobly
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Danny Ben Shitrit
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-08 00:00:00.000000000 Z
11
+ date: 2019-03-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mister_bin
@@ -204,7 +204,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
204
204
  requirements:
205
205
  - - ">="
206
206
  - !ruby/object:Gem::Version
207
- version: 2.4.0
207
+ version: 2.5.0
208
208
  required_rubygems_version: !ruby/object:Gem::Requirement
209
209
  requirements:
210
210
  - - ">="