task_scheduler 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
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: []