Class: AdminModule::Tasks
- Inherits:
-
Object
- Object
- AdminModule::Tasks
- Defined in:
- lib/admin_module/tasks.rb
Instance Attribute Summary collapse
-
#page_factory ⇒ Object
readonly
Returns the value of attribute page_factory.
Instance Method Summary collapse
- #create(task) ⇒ Object
-
#export(file_path) ⇒ Object
No functionality exists to DELETE tasks.
-
#import(file_path, allow_create = false) ⇒ Object
Import task configurations into the current environment from a file.
-
#initialize(page_factory) ⇒ Tasks
constructor
A new instance of Tasks.
- #list ⇒ Object
- #read(task) ⇒ Object
- #rename(src, dest) ⇒ Object
- #update(task) ⇒ Object
Constructor Details
#initialize(page_factory) ⇒ Tasks
Returns a new instance of Tasks.
16 17 18 |
# File 'lib/admin_module/tasks.rb', line 16 def initialize(page_factory) @page_factory = page_factory end |
Instance Attribute Details
#page_factory ⇒ Object (readonly)
Returns the value of attribute page_factory.
14 15 16 |
# File 'lib/admin_module/tasks.rb', line 14 def page_factory @page_factory end |
Instance Method Details
#create(task) ⇒ Object
34 35 36 37 38 39 40 41 |
# File 'lib/admin_module/tasks.rb', line 34 def create task task_name = assert_task_does_not_exist( extract_task_name(task) ) tasks_page .add .set_task_data(task) .save end |
#export(file_path) ⇒ Object
No functionality exists to DELETE tasks.
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/admin_module/tasks.rb', line 64 def export file_path tasks = list export_data = {} tasks.each do |task| export_data[task] = read task end File.open(file_path, 'w') do |f| f.write export_data.to_yaml end # Explicitly return (nothing) to avoid polluting stdout (in rake task). return rescue Exception => e if e..include? 'No such file or directory' raise IOError, "No such directory - #{file_path}" else raise e end end |
#import(file_path, allow_create = false) ⇒ Object
Import task configurations into the current environment from a file.
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
# File 'lib/admin_module/tasks.rb', line 90 def import file_path, allow_create = false raise IOError, "File not found: #{file_path}" unless File.exists?(file_path) tasks = {} File.open(file_path, 'r') do |f| # Read array of task hashes. tasks = YAML.load(f) end existing_tasks = list tasks.each do |name, data| if existing_tasks.include?(name) update(data) else if allow_create create(data) else puts "Unable to create #{name}. allow_create = false" end end end # Explicitly return (nothing) to avoid polluting stdout (in rake task). return end |
#list ⇒ Object
30 31 32 |
# File 'lib/admin_module/tasks.rb', line 30 def list tasks_page.get_tasks end |
#read(task) ⇒ Object
43 44 45 46 47 48 49 |
# File 'lib/admin_module/tasks.rb', line 43 def read task task_name = assert_task_exists( extract_task_name(task) ) tasks_page .modify( task_name ) .get_task_data end |
#rename(src, dest) ⇒ Object
20 21 22 23 24 25 26 27 28 |
# File 'lib/admin_module/tasks.rb', line 20 def rename src, dest src = assert_task_exists( extract_task_name(src) ) dest = assert_task_does_not_exist( extract_task_name(dest) ) tasks_page .modify(src) .set_name(dest) .save end |
#update(task) ⇒ Object
51 52 53 54 55 56 57 58 |
# File 'lib/admin_module/tasks.rb', line 51 def update task task_name = assert_task_exists( extract_task_name(task) ) tasks_page .modify( task_name ) .set_task_data(task) .save end |