jobler 0.0.5 → 0.0.6
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/README.md +26 -0
- data/app/controllers/jobler/jobs_controller.rb +6 -1
- data/app/views/jobler/jobs/show.html.erb +2 -0
- data/db/migrate/20170217082955_add_host_protocol_and_port_to_jobler_jobs.rb +7 -0
- data/lib/jobler.rb +2 -1
- data/lib/jobler/base_jobler.rb +6 -0
- data/lib/jobler/job_scheduler.rb +12 -1
- data/lib/jobler/page_render.rb +10 -0
- data/lib/jobler/redirect_to.rb +7 -0
- data/lib/jobler/version.rb +1 -1
- metadata +5 -3
- data/lib/jobler/template_renderer.rb +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1def2ed60486bd0da4f736ea8109cb33fd70842c
|
4
|
+
data.tar.gz: d4fcbab53d884c89d8e952b9e0deb799bdc6c0d7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 93390acce23a95427e8a44f777bb87c40d30a26fea8a90cd7e7ab2e2363ab3f6136e6fa3c7bfa0870face2b6a0c138c08ad338335281f94e224194da2435082b
|
7
|
+
data.tar.gz: bb38dc88126b4c798ea38cc8de221dd22e5696e188e426761926e76d2b19e6a98e515c2bc980b2ac7470ee424c23ac1df6819b251c0fbfe3a8e2ef1e2b7753a4
|
data/README.md
CHANGED
@@ -97,11 +97,37 @@ class TestRenderJobler < Jobler::BaseJobler
|
|
97
97
|
content: render(:show)
|
98
98
|
)
|
99
99
|
end
|
100
|
+
|
101
|
+
def result
|
102
|
+
Jobler::RedirectTo.new(url: "/jobler_jobs/jobs/#{job.to_param}")
|
103
|
+
end
|
100
104
|
end
|
101
105
|
```
|
102
106
|
|
103
107
|
This will render the view located at "app/joblers/test_render_jobler/show.*"
|
104
108
|
|
109
|
+
You should then create a controller something like this:
|
110
|
+
|
111
|
+
```ruby
|
112
|
+
class JoblerJobsController < ApplicationController
|
113
|
+
def show
|
114
|
+
@job = Jobler::Job.find_by!(slug: param[:id])
|
115
|
+
@result = @job.results.find_by!(name: "render")
|
116
|
+
end
|
117
|
+
end
|
118
|
+
```
|
119
|
+
|
120
|
+
And a view in "app/views/jobler_jobs/show.html.erb":
|
121
|
+
```erb
|
122
|
+
<%= @result.result.force_encoding("utf-8").html_safe
|
123
|
+
```
|
124
|
+
|
125
|
+
You should also add a route like this:
|
126
|
+
```ruby
|
127
|
+
Rails.application.routes.draw do
|
128
|
+
resources :jobler_jobs, only: :show
|
129
|
+
end
|
130
|
+
```
|
105
131
|
|
106
132
|
## License
|
107
133
|
|
data/lib/jobler.rb
CHANGED
@@ -5,7 +5,8 @@ module Jobler
|
|
5
5
|
autoload :FileDownload, "#{path}/file_download"
|
6
6
|
autoload :JobScheduler, "#{path}/job_scheduler"
|
7
7
|
autoload :JobRunner, "#{path}/job_runner"
|
8
|
-
autoload :
|
8
|
+
autoload :PageRender, "#{path}/page_render"
|
9
|
+
autoload :RedirectTo, "#{path}/redirect_to"
|
9
10
|
end
|
10
11
|
|
11
12
|
require "jobler/engine"
|
data/lib/jobler/base_jobler.rb
CHANGED
@@ -60,8 +60,14 @@ class Jobler::BaseJobler
|
|
60
60
|
template_path = "joblers/#{jobler_name}/#{template_path}"
|
61
61
|
end
|
62
62
|
|
63
|
+
request = ActionDispatch::Request.new(
|
64
|
+
"HTTP_HOST" => "#{job.host}:#{job.port}",
|
65
|
+
"HTTP_X_FORWARDED_PROTO" => job.protocol
|
66
|
+
)
|
67
|
+
|
63
68
|
controller = ::ApplicationJoblerController.new
|
64
69
|
controller.instance_variable_set(:@jobler, self)
|
70
|
+
controller.request = request
|
65
71
|
controller.response = ActionDispatch::Response.new
|
66
72
|
|
67
73
|
render_result = controller.render(template_path, formats: Mime::EXTENSION_LOOKUP.keys, layout: false, locals: {jobler: self}.merge(locals))
|
data/lib/jobler/job_scheduler.rb
CHANGED
@@ -9,17 +9,28 @@ class Jobler::JobScheduler
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def initialize(args)
|
12
|
+
@controller = args[:controller]
|
12
13
|
@jobler_type = args.fetch(:jobler_type)
|
13
14
|
@job_args = args[:job_args]
|
14
15
|
@locale = args[:locale]
|
15
16
|
end
|
16
17
|
|
17
18
|
def create_job
|
18
|
-
@job = Jobler::Job.
|
19
|
+
@job = Jobler::Job.new(
|
19
20
|
jobler_type: @jobler_type,
|
20
21
|
locale: @locale.presence || I18n.locale,
|
21
22
|
parameters: YAML.dump(@job_args)
|
22
23
|
)
|
24
|
+
|
25
|
+
if @controller
|
26
|
+
@job.assign_attributes(
|
27
|
+
host: @controller.request.host,
|
28
|
+
port: @controller.request.port,
|
29
|
+
protocol: @controller.request.protocol
|
30
|
+
)
|
31
|
+
end
|
32
|
+
|
33
|
+
@job.save!
|
23
34
|
end
|
24
35
|
|
25
36
|
def perform_job_later
|
data/lib/jobler/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jobler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kaspernj
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-02-
|
11
|
+
date: 2017-02-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -53,13 +53,15 @@ files:
|
|
53
53
|
- db/migrate/20170203161045_add_locale_to_jobs.rb
|
54
54
|
- db/migrate/20170206100737_add_error_message_and_error_backtrace_to_jobs.rb
|
55
55
|
- db/migrate/20170206104246_add_slug_to_jobs.rb
|
56
|
+
- db/migrate/20170217082955_add_host_protocol_and_port_to_jobler_jobs.rb
|
56
57
|
- lib/jobler.rb
|
57
58
|
- lib/jobler/base_jobler.rb
|
58
59
|
- lib/jobler/engine.rb
|
59
60
|
- lib/jobler/file_download.rb
|
60
61
|
- lib/jobler/job_runner.rb
|
61
62
|
- lib/jobler/job_scheduler.rb
|
62
|
-
- lib/jobler/
|
63
|
+
- lib/jobler/page_render.rb
|
64
|
+
- lib/jobler/redirect_to.rb
|
63
65
|
- lib/jobler/version.rb
|
64
66
|
- lib/tasks/jobler_tasks.rake
|
65
67
|
homepage: https://www.github.com/kaspernj/jobler
|