Module: ActiveJob::ArgumentsPlus
- Included in:
- Arguments
- Defined in:
- lib/active_job/arguments_plus.rb,
lib/active_job/arguments_plus/version.rb
Constant Summary collapse
- VERSION =
'0.2.0'
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.type_keys ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/active_job/arguments_plus.rb', line 17 def self.type_keys @type_keys ||= begin add_if_defined = lambda { |tk, klass_name| tk[klass_name.constantize] = "_aj_#{klass_name.underscore}" if const_defined?(klass_name) } tk = {} add_if_defined.call(tk, 'Module') add_if_defined.call(tk, 'Logger') add_if_defined.call(tk, 'PhModel') add_if_defined.call(tk, 'Time') tk end end |
Instance Method Details
#deserialize_argument(argument) ⇒ Object
36 37 38 39 40 41 42 43 |
# File 'lib/active_job/arguments_plus.rb', line 36 def deserialize_argument(argument) if argument.is_a?(Hash) && argument.size == 1 arg_klass, _ = type_keys.find { |_, key| argument.key?(key) } arg_klass ? deserialize_local_argument(arg_klass, argument) : super else super end end |
#serialize_argument(argument) ⇒ Object
31 32 33 34 |
# File 'lib/active_job/arguments_plus.rb', line 31 def serialize_argument(argument) arg_klass, _ = type_keys.find { |klass, _| klass === argument } arg_klass ? serialize_local_argument(arg_klass, argument) : super end |