Module: SimpleJob::JobDefinition
- Defined in:
- lib/simple_job/job_definition.rb
Defined Under Namespace
Modules: ClassMethods
Classes: JobLoggerWrapper
Constant Summary
collapse
- RESERVED_ATTRIBUTES =
[ :type, :version, :data ]
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.included(klass) ⇒ Object
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/simple_job/job_definition.rb', line 10
def self.included(klass)
klass.extend(ClassMethods)
klass.class_eval do
include ::ActiveModel::Naming
include ::ActiveModel::Conversion
include ::ActiveModel::Validations
include ::ActiveModel::Validations::Callbacks
include ::ActiveModel::Serializers::JSON
end
klass.include_root_in_json = false
klass.register_simple_job
end
|
.job_definition_class_for(type, version) ⇒ Object
Also known as:
class_for
29
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/simple_job/job_definition.rb', line 29
def job_definition_class_for(type, version)
type = type.to_s.underscore.to_sym
version = version.to_s
@job_definitions.each do |definition|
if (definition[:type] == type) && (definition[:versions].include?(version))
return definition[:class]
end
end
nil
end
|
.job_definitions ⇒ Object
43
44
45
|
# File 'lib/simple_job/job_definition.rb', line 43
def job_definitions
@job_definitions ||= []
end
|
Instance Method Details
#attributes ⇒ Object
55
56
57
58
59
60
61
|
# File 'lib/simple_job/job_definition.rb', line 55
def attributes
{
'type' => type,
'version' => version,
'data' => data,
}
end
|
#attributes=(attributes) ⇒ Object
63
64
65
66
67
|
# File 'lib/simple_job/job_definition.rb', line 63
def attributes=(attributes)
attributes.each do |key, value|
send("#{key}=", value)
end
end
|
#data ⇒ Object
69
70
71
72
73
74
75
|
# File 'lib/simple_job/job_definition.rb', line 69
def data
@data ||= {}
self.class.simple_job_attributes.each do |attribute|
@data[attribute.to_s] ||= nil
end
@data
end
|
#data=(data) ⇒ Object
77
78
79
|
# File 'lib/simple_job/job_definition.rb', line 77
def data=(data)
self.attributes = data
end
|
#enqueue(queue_type = nil, options = {}) ⇒ Object
107
108
109
110
111
112
113
114
|
# File 'lib/simple_job/job_definition.rb', line 107
def enqueue(queue_type = nil, options = {})
if valid?
queue = (queue_type && JobQueue[queue_type]) || self.class.job_queue || JobQueue.default
queue.enqueue(self.to_json, options)
else
false
end
end
|
#enqueue!(queue_type = nil) ⇒ Object
116
117
118
|
# File 'lib/simple_job/job_definition.rb', line 116
def enqueue!(queue_type = nil)
enqueue(queue_type) || raise("object is not valid: #{errors.full_messages.join('; ')}")
end
|
#execute ⇒ Object
51
52
|
# File 'lib/simple_job/job_definition.rb', line 51
def execute
end
|
#initialize(attributes = {}) ⇒ Object
128
129
130
131
132
|
# File 'lib/simple_job/job_definition.rb', line 128
def initialize(attributes = {})
attributes.each do |key, value|
send("#{key}=", value)
end
end
|
#logger ⇒ Object
134
135
136
|
# File 'lib/simple_job/job_definition.rb', line 134
def logger
self.class.logger
end
|
#persisted? ⇒ Boolean
for activemodel so form_for will work
139
140
141
|
# File 'lib/simple_job/job_definition.rb', line 139
def persisted?
false
end
|
#read_simple_job_attribute(attribute) ⇒ Object
120
121
122
|
# File 'lib/simple_job/job_definition.rb', line 120
def read_simple_job_attribute(attribute)
data[attribute.to_s]
end
|
#type ⇒ Object
81
82
83
|
# File 'lib/simple_job/job_definition.rb', line 81
def type
self.class.definition[:type]
end
|
#type=(type) ⇒ Object
85
86
87
88
89
90
|
# File 'lib/simple_job/job_definition.rb', line 85
def type=(type)
end
|
#version ⇒ Object
96
97
98
|
# File 'lib/simple_job/job_definition.rb', line 96
def version
versions.first
end
|
#version=(version) ⇒ Object
100
101
102
103
104
105
|
# File 'lib/simple_job/job_definition.rb', line 100
def version=(version)
end
|
#versions ⇒ Object
92
93
94
|
# File 'lib/simple_job/job_definition.rb', line 92
def versions
self.class.definition[:versions]
end
|
#write_simple_job_attribute(attribute, value) ⇒ Object
124
125
126
|
# File 'lib/simple_job/job_definition.rb', line 124
def write_simple_job_attribute(attribute, value)
data[attribute.to_s] = value
end
|