dronejob 1.1.0 → 1.1.1

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
  SHA1:
3
- metadata.gz: 49ed6bec795138cb9ab9c9eee02fd9a15b4da8e7
4
- data.tar.gz: 888255bd00bd54f4970c627128a45f8778622ba1
3
+ metadata.gz: 4945a0a8896b7c9bf4ce1f0672c086e0a9dfe956
4
+ data.tar.gz: 1b41875621ed5d31aad837edd0354c089743b9db
5
5
  SHA512:
6
- metadata.gz: cf0137e6014b5ebe002413dbc17d9fbec26d5bdec0e47688ffd529927fcd46deb2ac6c7360d7879369f472ae937b6c5cbe0104c9f31ee6042ac18fef54094698
7
- data.tar.gz: 29dfcbb9bf3b7e9b91caff7540af886ad6e4ec81a95cbf486dd93da8d641e00dc16ec2f6b8d64bede9f44e0ba0adda41ea1c73f41da678d9c6eb1f0a1cd6f9f8
6
+ metadata.gz: 69466465ebaf6db5b03d0b77c461e4421385bb0abde2c90f2addb337017b6deb69850ca0a69ca6b56a01d38812fa918cc3f9f88b5d890d6073eb9671bc068fb5
7
+ data.tar.gz: 41c3a2ab4bb915018763550db1652621b0c2100f2b492c0cd93fb8bd1dbd435cb22ed21c8db59834c562d5ca8d71d409cc59a6b71322d11ccffce58dbba18d2b
data/.gitignore CHANGED
@@ -3,3 +3,4 @@ app/*
3
3
  tmp/*
4
4
  plugins/*
5
5
  /archive/*
6
+ .bundle/
data/Gemfile.lock CHANGED
@@ -1,16 +1,15 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- dronejob (1.1.0)
4
+ dronejob (1.1.1)
5
5
  activejob (~> 4.2)
6
- bundler (~> 1.11)
6
+ bundler (>= 1.3.0, < 2.0)
7
7
  git (~> 1.2)
8
8
  haml (~> 4.0)
9
9
  open_uri_redirections (~> 0.2)
10
- rake (~> 10.5)
11
10
  rubyzip (~> 1.1)
12
- sidekiq (~> 4.1.0)
13
- sidekiq-status (~> 0.6.0)
11
+ sidekiq (~> 4.1)
12
+ sidekiq-status (~> 0.6)
14
13
  thor (~> 0.19)
15
14
  typhoeus (~> 1.0)
16
15
 
@@ -26,7 +25,7 @@ GEM
26
25
  minitest (~> 5.1)
27
26
  thread_safe (~> 0.3, >= 0.3.4)
28
27
  tzinfo (~> 1.1)
29
- coderay (1.1.0)
28
+ coderay (1.1.1)
30
29
  concurrent-ruby (1.0.1)
31
30
  connection_pool (2.2.0)
32
31
  diff-lcs (1.2.5)
@@ -47,13 +46,12 @@ GEM
47
46
  coderay (~> 1.1.0)
48
47
  method_source (~> 0.8.1)
49
48
  slop (~> 3.4)
50
- rake (10.5.0)
51
49
  redis (3.3.0)
52
50
  rspec (3.4.0)
53
51
  rspec-core (~> 3.4.0)
54
52
  rspec-expectations (~> 3.4.0)
55
53
  rspec-mocks (~> 3.4.0)
56
- rspec-core (3.4.2)
54
+ rspec-core (3.4.4)
57
55
  rspec-support (~> 3.4.0)
58
56
  rspec-expectations (3.4.0)
59
57
  diff-lcs (>= 1.2.0, < 2.0)
@@ -87,4 +85,4 @@ DEPENDENCIES
87
85
  rspec (~> 3.3)
88
86
 
89
87
  BUNDLED WITH
90
- 1.11.2
88
+ 1.12.1
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Drone Factory
1
+ # DroneJob
2
2
 
3
3
  Scalable worker factory for ruby
4
4
 
@@ -10,19 +10,6 @@ Install gems:
10
10
 
11
11
  ## Usage
12
12
 
13
+ List dronejob commands:
13
14
 
14
- ### Logging
15
-
16
-
17
- ```ruby
18
- # Create stdout logger
19
- require "logging"
20
- Logging.color_scheme("bright", levels: { debug: :blue, info: :green, warn: :yellow, error: :red, fatal: [:white, :on_red] }, date: :blue, ndc: :blue, logger: :cyan, message: :black)
21
- Dronejob::Base.logger = Logging::Logger.new("Dronejob").add_appenders(Logging::Appenders::Stdout.new("stdout", {layout: Logging.layouts.pattern({pattern: '[%d] %-5l %c{1} %x %m\n', color_scheme: 'bright'})}))
22
-
23
- # Create gcl logger
24
- require "logging"
25
- require "logging/appenders/gcl"
26
- Logging.init(Logging::Appenders::GoogleCloudLogging::SEVERITY_NAMES)
27
- Dronejob::Base.logger = Logging::Logger.new("Dronejob").add_appenders(Logging::Appenders::GoogleCloudLogging.new("gcl", {project_id: "project-id", log_name: "dronejob", resource_type: "gce_instance", resource_labels: {instance_id: "instance-id", zone: "us-central1-b"}, buffer_size: '3', immediate_at: 'error, fatal'}))
28
- ```
15
+ $ bundle exec dronejob
data/bin/dronejob CHANGED
@@ -1,7 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
2
  $:.push("lib/")
3
3
  require "thor"
4
-
5
- # initialize dronejob
6
4
  require "dronejob/command"
7
5
  Dronejob::Command.start
data/dronejob.gemspec CHANGED
@@ -14,17 +14,16 @@ Gem::Specification.new do |s|
14
14
  s.description = "Scalable worker factory for ruby"
15
15
  s.required_ruby_version = '~> 2.0'
16
16
  s.required_rubygems_version = '~> 2.4'
17
- s.add_runtime_dependency "bundler", "~> 1.11"
18
- s.add_runtime_dependency "rake", "~> 10.5"
17
+ s.add_dependency "bundler", '>= 1.3.0', '< 2.0'
19
18
  s.add_runtime_dependency "git", "~> 1.2"
20
19
  s.add_runtime_dependency "thor", "~> 0.19"
21
- s.add_runtime_dependency "sidekiq", "~> 4.1.0"
22
20
  s.add_runtime_dependency "haml", "~> 4.0"
23
- s.add_runtime_dependency "sidekiq-status", "~> 0.6.0"
24
- s.add_runtime_dependency "open_uri_redirections", "~> 0.2"
21
+ s.add_runtime_dependency "sidekiq", "~> 4.1"
22
+ s.add_runtime_dependency "sidekiq-status", "~> 0.6"
25
23
  s.add_runtime_dependency "rubyzip", "~> 1.1"
26
24
  s.add_runtime_dependency "activejob", "~> 4.2"
27
25
  s.add_runtime_dependency "typhoeus", "~> 1.0"
26
+ s.add_runtime_dependency "open_uri_redirections", "~> 0.2"
28
27
  s.add_development_dependency "rspec", "~> 3.3"
29
28
  s.add_development_dependency "pry", "~> 0.10"
30
29
  s.files = `git ls-files`.split("\n")
data/lib/dronejob/base.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require "active_job"
2
2
  require 'dronejob/modules/attr_store'
3
+ require 'dronejob/modules/callbacks'
3
4
  require 'dronejob/modules/core'
4
5
  require 'dronejob/modules/git'
5
6
  require 'dronejob/modules/log'
@@ -7,7 +8,6 @@ require 'dronejob/modules/queue'
7
8
  require 'dronejob/modules/options'
8
9
  require 'dronejob/modules/params'
9
10
  require 'dronejob/modules/phases'
10
- require 'dronejob/modules/stateful'
11
11
  require 'dronejob/modules/workspace'
12
12
 
13
13
  module Dronejob
@@ -15,6 +15,7 @@ module Dronejob
15
15
  DRONEJOB_TYPE = "base"
16
16
  queue_as :dronejob
17
17
  include Modules::AttrStore
18
+ include Modules::Callbacks
18
19
  include Modules::Core
19
20
  include Modules::Git
20
21
  include Modules::Log
@@ -22,9 +23,22 @@ module Dronejob
22
23
  include Modules::Options
23
24
  include Modules::Params
24
25
  include Modules::Phases
25
- include Modules::Stateful
26
26
  include Modules::Workspace
27
27
 
28
+ def uuid
29
+ @uuid ||= "#{self.class.name.split('::').last.underscore}_#{SecureRandom.uuid}"
30
+ end
31
+
32
+ def title
33
+ self.class.name
34
+ end
35
+
36
+ rescue_from(Exception) do |exception|
37
+ publish_error(exception)
38
+ error(exception)
39
+ Kernel.exit!
40
+ end
41
+
28
42
  ActiveSupport.run_load_hooks(:dronejob, self)
29
43
  end
30
44
  end
@@ -7,7 +7,7 @@ module Dronejob
7
7
  attr_accessor :variables
8
8
  end
9
9
 
10
- module ClassMethods
10
+ class_methods do
11
11
  def attr_store(*args)
12
12
  @attr_stores ||= [:dronejob_completed]
13
13
  @attr_stores.push(*args)
@@ -0,0 +1,31 @@
1
+ module Dronejob
2
+ module Modules
3
+ module Callbacks
4
+ extend ActiveSupport::Concern
5
+ include ActiveSupport::Callbacks
6
+
7
+ included do
8
+ define_callbacks :phase
9
+ define_callbacks :job
10
+ end
11
+
12
+ class_methods do
13
+ def before_phase(*methods, &block)
14
+ set_callback(:phase, :before, *methods, &block)
15
+ end
16
+
17
+ def after_phase(*methods, &block)
18
+ set_callback(:phase, :after, *methods, &block)
19
+ end
20
+
21
+ def before_job(*methods, &block)
22
+ set_callback(:job, :before, *methods, &block)
23
+ end
24
+
25
+ def after_job(*methods, &block)
26
+ set_callback(:job, :after, *methods, &block)
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -10,53 +10,9 @@ module Dronejob
10
10
  def perform(params)
11
11
  set_parameters(params)
12
12
  validate_parameters!
13
- create_working_dir
14
-
15
- if self.class.stateful?
16
- load_variables
17
- git_init(@working_dir.to_s)
18
- git_collect_commits
19
- git_commit("start")
20
- if param(:from)
21
- info("starting from phase #{param(:from)}")
22
- phase = prev_phase(param(:from))
23
- raise("phase '#{param(:from)}' not found!") if phase.nil? or @commits[phase.to_s].nil?
24
- git_reset(phase.to_s)
25
- else
26
- git_reset
27
- end
28
- git_collect_commits
29
- git_clean
13
+ run_callbacks :job do
14
+ run_phases
30
15
  end
31
-
32
- # Run through phases
33
- each_phase do |phase, phase_config|
34
- begin
35
- phase_result = public_send(phase)
36
- rescue Exception => e
37
- error(e.message)
38
- error(e.backtrace.join("\n"))
39
- delete_working_dir if self.class.cleanup_on_error?
40
- publish_status({title: self.title, description: e.message, phase: phase, backtrace: e.backtrace}, "failed") if param(:notify) and !param(:run)
41
- return false
42
- end
43
-
44
- publish_status({title: self.title, description: phase_config[:title], phase: phase}, "working") if phase_config[:notify] and param(:notify) and !param(:run)
45
- git_commit(phase) if self.class.stateful?
46
- end
47
- @phase = "complete"
48
-
49
- publish_status({title: self.title, description: "Job Completed!", phase: @phase}, "complete") if param(:notify) and !param(:run)
50
-
51
- delete_working_dir if self.class.cleanup_on_complete?
52
- end
53
-
54
- def uuid
55
- @uuid ||= "#{self.class.name.split('::').last.underscore}_#{SecureRandom.uuid}"
56
- end
57
-
58
- def title
59
- self.class.name
60
16
  end
61
17
 
62
18
  def shell
@@ -7,6 +7,22 @@ module Dronejob
7
7
 
8
8
  included do
9
9
  attr_reader :git, :commits
10
+ set_callback :job, :before, :git_init_job, if: :stateful?
11
+ set_callback(:phase, :after, if: :stateful?){git_commit(@phase)}
12
+ end
13
+
14
+ class_methods do
15
+ def stateful(value=true)
16
+ @stateful = value
17
+ end
18
+
19
+ def stateful?
20
+ !!@stateful
21
+ end
22
+ end
23
+
24
+ def stateful?
25
+ self.class.stateful?
10
26
  end
11
27
 
12
28
  def git_init(path)
@@ -46,6 +62,28 @@ module Dronejob
46
62
  end
47
63
  end
48
64
 
65
+ def git_init_job
66
+ if self.class.stateful?
67
+ load_variables
68
+ git_init(@working_dir.to_s)
69
+ git_collect_commits
70
+ git_commit("start")
71
+ if param(:from) == "start"
72
+ info("starting from scratch")
73
+ git_reset("start")
74
+ elsif param(:from)
75
+ info("starting from phase #{param(:from)}")
76
+ phase = prev_phase(param(:from))
77
+ raise("phase '#{param(:from)}' not found!") if phase.nil? or @commits[phase.to_s].nil?
78
+ git_reset(phase.to_s)
79
+ else
80
+ git_reset
81
+ end
82
+ git_collect_commits
83
+ git_clean
84
+ end
85
+ end
86
+
49
87
  end
50
88
  end
51
89
  end
@@ -9,8 +9,7 @@ module Dronejob
9
9
  cattr_accessor(:logger) { ActiveSupport::TaggedLogging.new(ActiveSupport::Logger.new(STDOUT)) }
10
10
  end
11
11
 
12
- module ClassMethods
13
-
12
+ class_methods do
14
13
  def log(level, message, phase=:global)
15
14
  if !logger.nil?
16
15
  logger.send(level, message)
@@ -41,7 +40,26 @@ module Dronejob
41
40
  end
42
41
 
43
42
  def error(message)
44
- log(:error, message)
43
+ if Exception === message
44
+ say(" ERROR ", ["\e[38;5;15m", Thor::Shell::Color::BOLD, Thor::Shell::Color::ON_RED], false)
45
+ say(" #{message.class}: ", [Thor::Shell::Color::BOLD], false)
46
+ say("#{message.message}", [Thor::Shell::Color::BOLD, Thor::Shell::Color::RED])
47
+ backtrace(message.backtrace)
48
+ else
49
+ log(:error, message)
50
+ end
51
+ end
52
+
53
+ def backtrace(lines)
54
+ lines.each do |line|
55
+ line.gsub!("#{Dir.pwd}/", '')
56
+ (file, lineno, info) = line.split(":")
57
+ if /ruby\/?gems/.match(line).nil?
58
+ say(" #{lineno.rjust(5, ' ')} ", ["\e[48;5;255m", "\e[38;5;245m"], false)
59
+ say(" #{file} ", [Thor::Shell::Color::RED], false)
60
+ say(info, ["\e[38;5;245m"], true)
61
+ end
62
+ end
45
63
  end
46
64
 
47
65
  def error!(message)
@@ -7,7 +7,7 @@ module Dronejob
7
7
  attr_reader :options
8
8
  end
9
9
 
10
- module ClassMethods
10
+ class_methods do
11
11
  def options
12
12
  if @options.nil?
13
13
  yaml_file = File.join("dronejob.yml")
@@ -3,7 +3,7 @@ module Dronejob
3
3
  module Params
4
4
  extend ActiveSupport::Concern
5
5
 
6
- module ClassMethods
6
+ class_methods do
7
7
  def param(key, options)
8
8
  @params ||= {}
9
9
  @params[key] = options
@@ -2,12 +2,14 @@ module Dronejob
2
2
  module Modules
3
3
  module Phases
4
4
  extend ActiveSupport::Concern
5
+ include ActiveSupport::Callbacks
5
6
 
6
7
  included do
7
8
  attr_accessor :phase
9
+ set_callback(:phase, :around){|r, block| logger.tagged(@phase, &block)}
8
10
  end
9
11
 
10
- module ClassMethods
12
+ class_methods do
11
13
  def phase(key, options)
12
14
  @phases ||= {}
13
15
  @phases[key] = options
@@ -18,42 +20,46 @@ module Dronejob
18
20
  end
19
21
  end
20
22
 
21
- def each_phase(&block)
22
- self.class.phases.each do |phase, config|
23
- fail "Phase not found: '#{phase}'" unless self.respond_to?(phase)
23
+ def log_phase
24
+
25
+ end
26
+
27
+ def run_phases
28
+ self.class.phases.each do |phase, phase_config|
24
29
  @phase = phase
25
- before_phase(phase, config) if self.respond_to?(:before_phase)
26
-
27
- logger.tagged(phase) do
28
- if completed_phase?(phase) and !config[:always_run]
30
+ @phase_config = phase_config
31
+
32
+ # initialize phase
33
+ fail "Phase not found: '#{phase}'" unless self.respond_to?(phase)
34
+ run_callbacks :phase do
35
+ if completed_phase?(phase) and !@phase_config[:always_run]
29
36
  info("already completed")
30
37
  elsif skip_phase?(phase)
31
38
  info("skipping...")
32
39
  else
33
- info "running phase #{phase}"
40
+ info("running phase #{phase}")
34
41
  # Require libraries
35
- if !config[:require].nil?
36
- config[:require].each do |library|
42
+ if !@phase_config[:require].nil?
43
+ @phase_config[:require].each do |library|
37
44
  require library
38
45
  end
39
46
  end
40
47
 
41
48
  # Include helpers
42
- if !config[:helpers].nil?
43
- config[:helpers].each do |helper|
49
+ if !@phase_config[:helpers].nil?
50
+ @phase_config[:helpers].each do |helper|
44
51
  helper_path = "helpers/#{helper}"
45
52
  require "./app/#{helper_path}"
46
53
  self.class.send(:include, helper_path.camelcase.constantize)
47
54
  end
48
55
  end
49
-
50
- block.call(phase, config)
56
+
57
+ # OLD CODE FROM CORE
58
+ public_send(phase)
51
59
  end
52
60
  end
53
-
54
- after_phase(phase, config) if self.respond_to?(:after_phase)
55
61
  end
56
-
62
+ @phase = "complete"
57
63
  @dronejob_completed = true
58
64
  git_commit("dronejob_completed") if self.class.stateful?
59
65
  end
@@ -2,12 +2,14 @@ module Dronejob
2
2
  module Modules
3
3
  module Queue
4
4
  extend ActiveSupport::Concern
5
-
5
+
6
6
  included do
7
7
  attr_accessor :queue_adapter
8
+ set_callback :phase, :before, :notify_before_phase
9
+ set_callback :job, :after, :notify_after_job
8
10
  end
9
11
 
10
- module ClassMethods
12
+ class_methods do
11
13
  def run_worker!
12
14
  ActiveJob::Base.queue_adapter = self.queue_adapter
13
15
  require 'sidekiq/cli'
@@ -28,6 +30,27 @@ module Dronejob
28
30
  data[:secret_key] = option(:secret_key) if backend
29
31
  Redis.new(url: option(:redis_url)).publish("processes_#{backend ? 'backend' : data[:user_id]}", data.to_json)
30
32
  end
33
+
34
+ def publish_error(e)
35
+ publish_status({title: self.title, description: e.message, phase: @phase, backtrace: e.backtrace, progress: 100}, "failed") if should_notify?
36
+ end
37
+
38
+ def notify_before_phase
39
+ publish_status({title: self.title, description: @phase_config[:title], phase: @phase, progress: @phase_config[:progress]}, "working") if @phase_config[:notify] and should_notify?
40
+ end
41
+
42
+ def notify_after_job
43
+ publish_status({title: self.title, description: "Job Completed!", phase: @phase, progress: 100}, "complete") if should_notify?
44
+ end
45
+
46
+ def should_notify?
47
+ param(:notify) and !param(:run)
48
+ end
49
+
50
+ def publish_progress(progress, description=nil)
51
+ publish_status({title: self.title, description: description, phase: @phase, progress: progress}, "working") if should_notify?
52
+ end
53
+
31
54
  end
32
55
  end
33
56
  end
@@ -5,7 +5,13 @@ module Dronejob
5
5
  module Workspace
6
6
  extend ActiveSupport::Concern
7
7
 
8
- module ClassMethods
8
+ included do
9
+ cattr_accessor(:jobs_path) { "app/jobs" }
10
+ cattr_accessor(:output_path) { "tmp/jobs" }
11
+ set_callback :job, :after, :delete_working_dir
12
+ end
13
+
14
+ class_methods do
9
15
  def cleanup_on_complete(value=true)
10
16
  @cleanup_on_complete = value
11
17
  end
@@ -22,12 +28,6 @@ module Dronejob
22
28
  !!@cleanup_on_error
23
29
  end
24
30
  end
25
-
26
- included do
27
- attr_accessor :working_dir
28
- cattr_accessor(:jobs_path) { "app/jobs" }
29
- cattr_accessor(:output_path) { "tmp/jobs" }
30
- end
31
31
 
32
32
  def file(path, &block)
33
33
  f = working_dir.file(path)
@@ -42,14 +42,16 @@ module Dronejob
42
42
  working_dir.dir(path)
43
43
  end
44
44
 
45
- def create_working_dir
46
- @working_dir = WorkspaceDir.new(File.join(self.class.output_path, uuid))
47
- @working_dir.create
45
+ def working_dir
46
+ if !@working_dir
47
+ @working_dir = WorkspaceDir.new(File.join(self.class.output_path, uuid))
48
+ @working_dir.create
49
+ end
48
50
  @working_dir
49
51
  end
50
52
 
51
53
  def delete_working_dir
52
- working_dir.delete!
54
+ working_dir.delete! if self.class.cleanup_on_complete? && @working_dir
53
55
  end
54
56
 
55
57
  def asset_file(path)
@@ -1,3 +1,3 @@
1
1
  module Dronejob
2
- VERSION = "1.1.0"
2
+ VERSION = "1.1.1"
3
3
  end
metadata CHANGED
@@ -1,43 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dronejob
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tobias Strebitzer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-30 00:00:00.000000000 Z
11
+ date: 2016-05-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '1.11'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
17
+ - - ">="
25
18
  - !ruby/object:Gem::Version
26
- version: '1.11'
27
- - !ruby/object:Gem::Dependency
28
- name: rake
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
19
+ version: 1.3.0
20
+ - - "<"
32
21
  - !ruby/object:Gem::Version
33
- version: '10.5'
22
+ version: '2.0'
34
23
  type: :runtime
35
24
  prerelease: false
36
25
  version_requirements: !ruby/object:Gem::Requirement
37
26
  requirements:
38
- - - "~>"
27
+ - - ">="
39
28
  - !ruby/object:Gem::Version
40
- version: '10.5'
29
+ version: 1.3.0
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '2.0'
41
33
  - !ruby/object:Gem::Dependency
42
34
  name: git
43
35
  requirement: !ruby/object:Gem::Requirement
@@ -66,20 +58,6 @@ dependencies:
66
58
  - - "~>"
67
59
  - !ruby/object:Gem::Version
68
60
  version: '0.19'
69
- - !ruby/object:Gem::Dependency
70
- name: sidekiq
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: 4.1.0
76
- type: :runtime
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: 4.1.0
83
61
  - !ruby/object:Gem::Dependency
84
62
  name: haml
85
63
  requirement: !ruby/object:Gem::Requirement
@@ -95,33 +73,33 @@ dependencies:
95
73
  - !ruby/object:Gem::Version
96
74
  version: '4.0'
97
75
  - !ruby/object:Gem::Dependency
98
- name: sidekiq-status
76
+ name: sidekiq
99
77
  requirement: !ruby/object:Gem::Requirement
100
78
  requirements:
101
79
  - - "~>"
102
80
  - !ruby/object:Gem::Version
103
- version: 0.6.0
81
+ version: '4.1'
104
82
  type: :runtime
105
83
  prerelease: false
106
84
  version_requirements: !ruby/object:Gem::Requirement
107
85
  requirements:
108
86
  - - "~>"
109
87
  - !ruby/object:Gem::Version
110
- version: 0.6.0
88
+ version: '4.1'
111
89
  - !ruby/object:Gem::Dependency
112
- name: open_uri_redirections
90
+ name: sidekiq-status
113
91
  requirement: !ruby/object:Gem::Requirement
114
92
  requirements:
115
93
  - - "~>"
116
94
  - !ruby/object:Gem::Version
117
- version: '0.2'
95
+ version: '0.6'
118
96
  type: :runtime
119
97
  prerelease: false
120
98
  version_requirements: !ruby/object:Gem::Requirement
121
99
  requirements:
122
100
  - - "~>"
123
101
  - !ruby/object:Gem::Version
124
- version: '0.2'
102
+ version: '0.6'
125
103
  - !ruby/object:Gem::Dependency
126
104
  name: rubyzip
127
105
  requirement: !ruby/object:Gem::Requirement
@@ -164,6 +142,20 @@ dependencies:
164
142
  - - "~>"
165
143
  - !ruby/object:Gem::Version
166
144
  version: '1.0'
145
+ - !ruby/object:Gem::Dependency
146
+ name: open_uri_redirections
147
+ requirement: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: '0.2'
152
+ type: :runtime
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - "~>"
157
+ - !ruby/object:Gem::Version
158
+ version: '0.2'
167
159
  - !ruby/object:Gem::Dependency
168
160
  name: rspec
169
161
  requirement: !ruby/object:Gem::Requirement
@@ -211,6 +203,7 @@ files:
211
203
  - lib/dronejob/command.rb
212
204
  - lib/dronejob/loader.rb
213
205
  - lib/dronejob/modules/attr_store.rb
206
+ - lib/dronejob/modules/callbacks.rb
214
207
  - lib/dronejob/modules/core.rb
215
208
  - lib/dronejob/modules/git.rb
216
209
  - lib/dronejob/modules/log.rb
@@ -218,7 +211,6 @@ files:
218
211
  - lib/dronejob/modules/params.rb
219
212
  - lib/dronejob/modules/phases.rb
220
213
  - lib/dronejob/modules/queue.rb
221
- - lib/dronejob/modules/stateful.rb
222
214
  - lib/dronejob/modules/workspace.rb
223
215
  - lib/dronejob/railtie.rb
224
216
  - lib/dronejob/railties/dronejob.rake
@@ -1,18 +0,0 @@
1
- module Dronejob
2
- module Modules
3
- module Stateful
4
- extend ActiveSupport::Concern
5
-
6
- module ClassMethods
7
- def stateful(value=true)
8
- @stateful = value
9
- end
10
-
11
- def stateful?
12
- !!@stateful
13
- end
14
- end
15
-
16
- end
17
- end
18
- end