generic_job 0.0.2 → 0.1.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 92d3bc04b8a275912c8db7c199066a1fd2b9a490c95c8885bb6dd81fa85afab3
4
- data.tar.gz: 9952a976e9a4b2fbe71ed1201643ce04355f75c238c366bb8bd1a5d234b989a3
3
+ metadata.gz: 275512632bb09acb00d99e453832ecc4522e3b103413aa4b81d560944b8ecd49
4
+ data.tar.gz: fe65070bc71024d7c5ee30344d0e5f384e7cbb47b7700348546141b5c3dbff59
5
5
  SHA512:
6
- metadata.gz: d64823b2bfbd3ee24f754f8232a3e6d56014d039ae918dd9021466e2cfa5b6efe73c8d987f02b048f1853a87cff67fc3e4a4d59c625986b25a6b48960a0836f1
7
- data.tar.gz: bd04831cdf0bbc45fa395a0b48b29b178d8b81868c883fc06c0943d5e533ae96239eb7c30b71aabb3be1e6662f8f86082070a767e710f30b8aae9d31eef57b9a
6
+ metadata.gz: 962a7b7a531388ea2f0eca41873e957fbfd281b16caf078c970517710388cb093a04b11cd2a3878e64c67648fdd091f98dd53f9c2ee095f58eee6af99e5fe93a
7
+ data.tar.gz: 66126cf732b1b4405483e10e55d5cffa077333f6673cf0e1eb86b6e19c7356652e7eb62c329b459fd318008c8d37f49ffb8159ebab6ba9fce600d285908f8628
@@ -5,12 +5,12 @@ class GenericJob
5
5
  extend ActiveSupport::Concern
6
6
 
7
7
  class_methods do
8
- def async opts = {}
8
+ def async(opts = {})
9
9
  GenericJob::Stub.new self, opts
10
10
  end
11
11
  end
12
12
 
13
- def async opts = {}
13
+ def async(opts = {})
14
14
  GenericJob::Stub.new self, opts
15
15
  end
16
16
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  class GenericJob
4
4
  module Perform
5
- def perform receiver, data
5
+ def perform(receiver, data)
6
6
  case receiver
7
7
  when Hash
8
8
  handle_passed_hash receiver.symbolize_keys, data
@@ -15,35 +15,36 @@ class GenericJob
15
15
 
16
16
  private
17
17
 
18
- def fetch_receiver hash
19
- if hash[:init_args]
20
- hash[:class].constantize.new(*to_array(hash[:init_args]))
21
- else
22
- hash[:class].constantize
23
- end
18
+ def fetch_receiver(hash)
19
+ if hash[:init_args]
20
+ hash[:class].constantize.new(**to_array(hash[:init_args]).first)
21
+ else
22
+ hash[:class].constantize
24
23
  end
24
+ end
25
25
 
26
- def handle_passed_hash hash, meth
27
- if hash[:meth_args]
28
- fetch_receiver(hash).send meth, *to_array(hash[:meth_args])
29
- else
30
- fetch_receiver(hash).send meth
31
- end
26
+ def handle_passed_hash(hash, meth)
27
+ if hash[:meth_args]
28
+ fetch_receiver(hash).send meth, *to_array(hash[:meth_args])
29
+ else
30
+ fetch_receiver(hash).send meth
32
31
  end
32
+ end
33
33
 
34
- def handle_passed_obj obj, data
35
- case data
36
- when String
37
- obj.send data
38
- when Hash
39
- args = data[:args] || [data[:arg]]
40
- obj.send data[:meth], *args
41
- end
34
+ def handle_passed_obj(obj, data)
35
+ case data
36
+ when String
37
+ obj.send data
38
+ when Hash
39
+ args = data[:args] || [data[:arg]]
40
+ obj.send data[:meth], *args
42
41
  end
42
+ end
43
43
 
44
- def to_array args
45
- return args if args.is_a? Array
46
- [args]
47
- end
44
+ def to_array(args)
45
+ return args if args.is_a? Array
46
+
47
+ [args]
48
+ end
48
49
  end
49
50
  end
@@ -2,17 +2,17 @@
2
2
 
3
3
  class GenericJob
4
4
  class Stub
5
- def initialize receiver, opts
5
+ def initialize(receiver, opts)
6
6
  @receiver = receiver
7
7
  @opts = opts
8
8
  @init_args = nil
9
9
  end
10
10
 
11
- def respond_to_missing? name, include_private
11
+ def respond_to_missing?(name, include_private)
12
12
  receiver_has_method?(name) || super
13
13
  end
14
14
 
15
- def method_missing name, *args, &_block
15
+ def method_missing(name, *args, &_block)
16
16
  if receiver_has_method? name
17
17
  call_missing_method name.to_s, *args
18
18
  else
@@ -20,41 +20,42 @@ class GenericJob
20
20
  end
21
21
  end
22
22
 
23
- def new *args
24
- @init_args = args
23
+ def new(*args)
24
+ @init_args = args.first
25
25
  self
26
26
  end
27
27
 
28
28
  private
29
29
 
30
- def receiver_has_method? name
31
- if @init_args
32
- @receiver.new(*@init_args).respond_to? name
33
- else
34
- @receiver.respond_to? name
35
- end
30
+ def receiver_has_method?(name)
31
+ if @init_args
32
+ @receiver.new(**@init_args).respond_to? name
33
+ else
34
+ @receiver.respond_to? name
36
35
  end
36
+ end
37
37
 
38
- def call_missing_method name, *args
39
- if @init_args
40
- GenericJob.set(@opts).perform_later receiver_as_hash(args), name
41
- else
42
- GenericJob.set(@opts)
43
- .perform_later prepare_receiver, meth: name, args: args
44
- end
38
+ def call_missing_method(name, *args)
39
+ if @init_args
40
+ GenericJob.set(@opts).perform_later receiver_as_hash(args), name
41
+ else
42
+ GenericJob.set(@opts)
43
+ .perform_later prepare_receiver, meth: name, args: args
45
44
  end
45
+ end
46
46
 
47
- def receiver_as_hash args
48
- {
49
- class: @receiver.name,
50
- init_args: @init_args,
51
- meth_args: args
52
- }
53
- end
47
+ def receiver_as_hash(args)
48
+ {
49
+ class: @receiver.name,
50
+ init_args: @init_args,
51
+ meth_args: args
52
+ }
53
+ end
54
54
 
55
- def prepare_receiver
56
- return @receiver unless @receiver.is_a? Class
57
- @receiver.name
58
- end
55
+ def prepare_receiver
56
+ return @receiver unless @receiver.is_a? Class
57
+
58
+ @receiver.name
59
+ end
59
60
  end
60
61
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: generic_job
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zbigniew Humeniuk
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-28 00:00:00.000000000 Z
11
+ date: 2021-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -30,68 +30,34 @@ dependencies:
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '7.0'
33
- - !ruby/object:Gem::Dependency
34
- name: listen
35
- requirement: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - ">="
38
- - !ruby/object:Gem::Version
39
- version: 3.1.5
40
- - - "<"
41
- - !ruby/object:Gem::Version
42
- version: '3.2'
43
- type: :development
44
- prerelease: false
45
- version_requirements: !ruby/object:Gem::Requirement
46
- requirements:
47
- - - ">="
48
- - !ruby/object:Gem::Version
49
- version: 3.1.5
50
- - - "<"
51
- - !ruby/object:Gem::Version
52
- version: '3.2'
53
- - !ruby/object:Gem::Dependency
54
- name: overcommit
55
- requirement: !ruby/object:Gem::Requirement
56
- requirements:
57
- - - '='
58
- - !ruby/object:Gem::Version
59
- version: 0.49.1
60
- type: :development
61
- prerelease: false
62
- version_requirements: !ruby/object:Gem::Requirement
63
- requirements:
64
- - - '='
65
- - !ruby/object:Gem::Version
66
- version: 0.49.1
67
33
  - !ruby/object:Gem::Dependency
68
34
  name: rubocop
69
35
  requirement: !ruby/object:Gem::Requirement
70
36
  requirements:
71
37
  - - "~>"
72
38
  - !ruby/object:Gem::Version
73
- version: 0.74.0
39
+ version: '1.14'
74
40
  type: :development
75
41
  prerelease: false
76
42
  version_requirements: !ruby/object:Gem::Requirement
77
43
  requirements:
78
44
  - - "~>"
79
45
  - !ruby/object:Gem::Version
80
- version: 0.74.0
46
+ version: '1.14'
81
47
  - !ruby/object:Gem::Dependency
82
48
  name: rubocop-rails
83
49
  requirement: !ruby/object:Gem::Requirement
84
50
  requirements:
85
51
  - - "~>"
86
52
  - !ruby/object:Gem::Version
87
- version: 2.3.1
53
+ version: '2.10'
88
54
  type: :development
89
55
  prerelease: false
90
56
  version_requirements: !ruby/object:Gem::Requirement
91
57
  requirements:
92
58
  - - "~>"
93
59
  - !ruby/object:Gem::Version
94
- version: 2.3.1
60
+ version: '2.10'
95
61
  - !ruby/object:Gem::Dependency
96
62
  name: sqlite3
97
63
  requirement: !ruby/object:Gem::Requirement
@@ -124,7 +90,7 @@ homepage: https://artofcode.co
124
90
  licenses:
125
91
  - MIT
126
92
  metadata: {}
127
- post_install_message:
93
+ post_install_message:
128
94
  rdoc_options: []
129
95
  require_paths:
130
96
  - lib
@@ -132,15 +98,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
132
98
  requirements:
133
99
  - - ">="
134
100
  - !ruby/object:Gem::Version
135
- version: '0'
101
+ version: 2.6.0
136
102
  required_rubygems_version: !ruby/object:Gem::Requirement
137
103
  requirements:
138
104
  - - ">="
139
105
  - !ruby/object:Gem::Version
140
106
  version: '0'
141
107
  requirements: []
142
- rubygems_version: 3.0.3
143
- signing_key:
108
+ rubygems_version: 3.2.15
109
+ signing_key:
144
110
  specification_version: 4
145
111
  summary: Higher level abstraction on the top of ActiveJob.
146
112
  test_files: []