jobler 0.0.3 → 0.0.4
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/lib/jobler/base_jobler.rb +33 -3
- data/lib/jobler/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 48611c7dac3539e71c56fd8b94861495e6d42bfd
|
4
|
+
data.tar.gz: 90ace36fd054d1eb70b55947ace2d5c83a5be55d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9d5a976300160f6a0144fd7c5225c0d187023d5b1f259db31bdd385419547fcf7c38fc7e0ed212af39fd41086c05f9eb628aaffb97e76aa7fa05257d2644227c
|
7
|
+
data.tar.gz: 5620d5fede8a100fa849d98c32df9001573b9aa1c2fb9c5dfc85f481640a6e02cafbf12034aab837f992adaf2ae41e1c2101b1901c3bbc523eeda6eab5ff0acd
|
data/README.md
CHANGED
@@ -36,6 +36,7 @@ end
|
|
36
36
|
|
37
37
|
Jobler is going to queue its jobs through the ActiveJob queue called `:jobler`, so make sure a worker is listening to that queue.
|
38
38
|
|
39
|
+
|
39
40
|
## Usage
|
40
41
|
|
41
42
|
Write a new Jobler located in "app/joblers":
|
@@ -77,6 +78,31 @@ end
|
|
77
78
|
|
78
79
|
This will show a wait page and them a complete page with a download link, once the job is completed.
|
79
80
|
|
81
|
+
|
82
|
+
# Rendering views
|
83
|
+
|
84
|
+
First add a special controller that your Jobler's can use:
|
85
|
+
|
86
|
+
```ruby
|
87
|
+
class ApplicationJoblerController < ApplicationController
|
88
|
+
end
|
89
|
+
```
|
90
|
+
|
91
|
+
Then call render from within the execute method:
|
92
|
+
```ruby
|
93
|
+
class TestRenderJobler < Jobler::BaseJobler
|
94
|
+
def execute!
|
95
|
+
create_result!(
|
96
|
+
name: "render",
|
97
|
+
content: render(:show)
|
98
|
+
)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
```
|
102
|
+
|
103
|
+
This will render the view located at "app/joblers/test_render_jobler/show.*"
|
104
|
+
|
105
|
+
|
80
106
|
## License
|
81
107
|
|
82
108
|
This project rocks and uses MIT-LICENSE.
|
data/lib/jobler/base_jobler.rb
CHANGED
@@ -2,12 +2,17 @@ class Jobler::BaseJobler
|
|
2
2
|
attr_reader :args, :job
|
3
3
|
|
4
4
|
def create_result!(args)
|
5
|
-
|
6
|
-
|
5
|
+
if args[:temp_file]
|
6
|
+
temp_file = args.fetch(:temp_file)
|
7
|
+
temp_file.close unless temp_file.closed?
|
8
|
+
content = File.read(temp_file.path)
|
9
|
+
else
|
10
|
+
content = args.fetch(:content)
|
11
|
+
end
|
7
12
|
|
8
13
|
job.results.create!(
|
9
14
|
name: args.fetch(:name),
|
10
|
-
result:
|
15
|
+
result: content
|
11
16
|
)
|
12
17
|
end
|
13
18
|
|
@@ -15,6 +20,18 @@ class Jobler::BaseJobler
|
|
15
20
|
raise NoMethodError, "You should define the 'execute!' method on #{self.class.name}"
|
16
21
|
end
|
17
22
|
|
23
|
+
def jobler_name
|
24
|
+
new_name = ""
|
25
|
+
|
26
|
+
parts = self.class.name.split("::")
|
27
|
+
parts.each do |part|
|
28
|
+
new_name << "/" unless new_name.empty?
|
29
|
+
new_name << part.underscore
|
30
|
+
end
|
31
|
+
|
32
|
+
new_name
|
33
|
+
end
|
34
|
+
|
18
35
|
def increment_progress!
|
19
36
|
@_progress_count ||= 0.0
|
20
37
|
@_progress_count += 1.0
|
@@ -38,6 +55,19 @@ class Jobler::BaseJobler
|
|
38
55
|
@_progress_total = new_total.to_f
|
39
56
|
end
|
40
57
|
|
58
|
+
def render(template_path, locals = {})
|
59
|
+
if template_path.is_a?(Symbol)
|
60
|
+
template_path = "joblers/#{jobler_name}/#{template_path}"
|
61
|
+
end
|
62
|
+
|
63
|
+
controller = ::ApplicationJoblerController.new
|
64
|
+
controller.instance_variable_set(:@jobler, self)
|
65
|
+
controller.response = ActionDispatch::Response.new
|
66
|
+
|
67
|
+
render_result = controller.render(template_path, formats: Mime::EXTENSION_LOOKUP.keys, layout: false, locals: {jobler: self}.merge(locals))
|
68
|
+
render_result.join
|
69
|
+
end
|
70
|
+
|
41
71
|
def result
|
42
72
|
raise NoMethodError, "You should define the 'result' method on #{self.class.name}"
|
43
73
|
end
|
data/lib/jobler/version.rb
CHANGED