task_scheduler 1.0.1 → 1.0.2

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: 5667540718eb766101b3c4e9bfc1257fb7247585
4
- data.tar.gz: efe74860457dfdc5892855bb280be7a15f30ea2e
3
+ metadata.gz: 548d5cd005cf8f86e3ce5c26d83ebe9b22d0cabd
4
+ data.tar.gz: 0e7149e7338810207b716ed24bb22d803ebe15f8
5
5
  SHA512:
6
- metadata.gz: 97c228d282e5ea77e29c897004c03245522022812868bbec7a51252cbf84284d5726ad4c7463482382c5795c4465b99265d7d75f1f71d3f469760330109e5a9e
7
- data.tar.gz: 808d9688f615c4a6baba02304cdd38cb13182c4ef1079d5114f59b409bb92d0dbaff2e91378426de2fbcef94a852763ce8263c89d5544d2f4b86f4ccb65dba85
6
+ metadata.gz: 51424a5ddb77611fce08bba44e9c7d02ad601b4e95b6dd317a3095d3646bad109db11345a7ebcff9dc5e13e5077c9f68ee1377d9ec94bae5ba0db2cc45388d09
7
+ data.tar.gz: bd0c3a79aeab1097925e9148b457b77488ee424f13d0aa640938fecc76bd4c8bedb1fb5cb9fdb8f9f67bcd571f9fee2ed0f9b7e8233f7453768bde2dbc438235
@@ -4,11 +4,12 @@ module TaskScheduler
4
4
 
5
5
  def self.included(base)
6
6
  base.class_eval do
7
- after_save :update_scheduled_task, if: 'OS.windows?'
7
+ after_update :update_scheduled_task, if: 'OS.windows?'
8
8
  after_create :create_scheduled_task, if: 'OS.windows?'
9
9
 
10
10
  validates_presence_of :scheduler, :task_name, :rake_task_name, :import_at,
11
- :import_time, :repeat_time, :repeat_type
11
+ :import_time, :repeat_time, :repeat_type, :username,
12
+ :password
12
13
  end
13
14
  end
14
15
 
@@ -18,7 +19,7 @@ module TaskScheduler
18
19
  process_name = 'directory_auto_sync_scheduler.bat'
19
20
 
20
21
  scheduler = WindowsScheduler.new(task_name, process_name)
21
- task = scheduler.create_task(import_at, repeat_type, repeat_time, bat_params)
22
+ task = scheduler.create_task(import_at, import_time, repeat_type, repeat_time, username, password, batch_params)
22
23
  task.run
23
24
  end
24
25
 
@@ -26,7 +27,7 @@ module TaskScheduler
26
27
  process_name = 'directory_auto_sync_scheduler.bat'
27
28
 
28
29
  scheduler = WindowsScheduler.new(task_name, process_name)
29
- task = scheduler.update_task(import_at, repeat_type, repeat_time, bat_params)
30
+ task = scheduler.update_task(import_at, import_time, repeat_type, repeat_time, username, password, batch_params)
30
31
  task.run
31
32
  end
32
33
  end
@@ -1,3 +1,3 @@
1
1
  module TaskScheduler
2
- VERSION = '1.0.1'.freeze
2
+ VERSION = '1.0.2'.freeze
3
3
  end
@@ -17,24 +17,26 @@ module TaskScheduler
17
17
 
18
18
  # creates a windows scheduled task via command line
19
19
  #
20
- def create_task(import_at, repeat_type, repeat_time, bat_params = nil)
20
+ def create_task(import_at, import_time, repeat_type, repeat_time, username, password, bat_params = nil)
21
21
  io = StringIO.new
22
22
  io << 'SchTasks /Create '
23
+ io << "/RU #{username} /RP #{password} "
23
24
  if repeat_type && repeat_time
24
- io << "/SC #{repeat_type} " # schedule frequency
25
+ io << "/SC #{get_schedule_type(repeat_type)} " # schedule frequency
25
26
  io << "/MO #{repeat_time} " # time between runs
26
- end
27
+ end
27
28
  io << "/TN '#{task_name}' " # name of the task
28
29
  io << "/TR '#{build_bat_params(bat_params)}' " # what to execute when task runs
29
- io << "/ST '#{import_at}'" if import_at # start time
30
+ io << "/ST '#{import_time.strftime('%H:%M')}' " if import_time # start time
31
+ io << "/SD '#{import_at.strftime('%m/%d/%Y')}'" if import_at # start date
30
32
  io
31
33
  end
32
34
 
33
35
  # updates a windows scheuled task via the command line
34
36
  #
35
- def update_task(import_at, repeat_type, repeat_time, bat_params = nil)
37
+ def update_task(import_at, import_time, repeat_type, repeat_time, username, password, bat_params = nil)
36
38
  delete_task&.run
37
- create_task(import_at, repeat_type, repeat_time, bat_params)
39
+ create_task(import_at, import_time, repeat_type, repeat_time, username, password, bat_params)
38
40
  end
39
41
 
40
42
  def delete_task
@@ -46,16 +48,26 @@ module TaskScheduler
46
48
 
47
49
  def build_bat_params(bat_params)
48
50
  io = StringIO.new
49
- io << "#{File.join(File.dirname(__FILE__), 'task_runner.bat')} "
51
+ io << "#{File.join(File.expand_path('..', File.dirname(__FILE__)), 'task_runner.bat')}"
50
52
 
51
53
  return io.string unless bat_params
52
54
 
53
- io << "#{Rails.root} " # first param so the bat file knows where to cd into
55
+ io << " #{Rails.root} " # first param so the bat file knows where to cd into
54
56
  bat_params.each do |_param_name, value|
55
57
  io << "#{value} "
56
58
  end
57
59
  io.string
58
60
  end
61
+
62
+ def get_schedule_type(type)
63
+ if type == 'minutes'
64
+ 'MINUTE'
65
+ elsif type == 'hours'
66
+ 'HOURLY'
67
+ elsif type == 'days'
68
+ 'DAILY'
69
+ end
70
+ end
59
71
  end
60
72
  end
61
73
 
metadata CHANGED
@@ -1,16 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: task_scheduler
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Corey Votta
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-20 00:00:00.000000000 Z
11
+ date: 2017-11-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
+ name: rails
14
15
  requirement: !ruby/object:Gem::Requirement
15
16
  requirements:
16
17
  - - "~>"
@@ -19,9 +20,8 @@ dependencies:
19
20
  - - ">="
20
21
  - !ruby/object:Gem::Version
21
22
  version: 4.2.0
22
- name: rails
23
- prerelease: false
24
23
  type: :runtime
24
+ prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
@@ -31,14 +31,14 @@ dependencies:
31
31
  - !ruby/object:Gem::Version
32
32
  version: 4.2.0
33
33
  - !ruby/object:Gem::Dependency
34
+ name: os
34
35
  requirement: !ruby/object:Gem::Requirement
35
36
  requirements:
36
37
  - - "~>"
37
38
  - !ruby/object:Gem::Version
38
39
  version: '0'
39
- name: os
40
- prerelease: false
41
40
  type: :runtime
41
+ prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
@@ -59,11 +59,11 @@ files:
59
59
  - lib/task_scheduler/scheduler.rb
60
60
  - lib/task_scheduler/version.rb
61
61
  - lib/task_scheduler/windows_scheduler.rb
62
- homepage:
62
+ homepage:
63
63
  licenses:
64
64
  - MIT
65
65
  metadata: {}
66
- post_install_message:
66
+ post_install_message:
67
67
  rdoc_options: []
68
68
  require_paths:
69
69
  - lib
@@ -78,9 +78,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
78
78
  - !ruby/object:Gem::Version
79
79
  version: '0'
80
80
  requirements: []
81
- rubyforge_project:
82
- rubygems_version: 2.6.8
83
- signing_key:
81
+ rubyforge_project:
82
+ rubygems_version: 2.6.12
83
+ signing_key:
84
84
  specification_version: 4
85
85
  summary: Creates scheduled tasks via the windows task scheduler
86
86
  test_files: []