Class: Hypertodo::Command
- Inherits:
-
Object
- Object
- Hypertodo::Command
- Defined in:
- lib/hypertodo/command.rb,
lib/hypertodo/command/options.rb
Defined Under Namespace
Modules: Options
Class Method Summary collapse
Instance Method Summary collapse
- #create_task(name, content) ⇒ Object
- #delete_task(id) ⇒ Object
- #execute ⇒ Object
- #find_tasks(status_name) ⇒ Object
-
#initialize(argv) ⇒ Command
constructor
A new instance of Command.
- #update_task(id, attributes) ⇒ Object
Constructor Details
#initialize(argv) ⇒ Command
Returns a new instance of Command.
11 12 13 |
# File 'lib/hypertodo/command.rb', line 11 def initialize(argv) @argv = argv end |
Class Method Details
.run(argv) ⇒ Object
7 8 9 |
# File 'lib/hypertodo/command.rb', line 7 def self.run(argv) new(argv).execute end |
Instance Method Details
#create_task(name, content) ⇒ Object
37 38 39 40 |
# File 'lib/hypertodo/command.rb', line 37 def create_task(name, content) # タスク作成時のstatusはデフォルト値が使われNOT_YETとなる Task.create!(name: name, content: content).reload end |
#delete_task(id) ⇒ Object
42 43 44 45 |
# File 'lib/hypertodo/command.rb', line 42 def delete_task(id) task = Task.find(id) task.destroy end |
#execute ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/hypertodo/command.rb', line 15 def execute = Options.parse!(@argv) sub_command = .delete(:command) DB.prepare tasks = case sub_command when 'create' create_task([:name], [:content]) when 'delete' delete_task([:id]) when 'update' update_task(.delete(:id), ) when 'list' find_tasks([:status]) end display_tasks tasks rescue => e abort "Error: #{e.}" end |
#find_tasks(status_name) ⇒ Object
58 59 60 61 62 63 64 65 66 67 |
# File 'lib/hypertodo/command.rb', line 58 def find_tasks(status_name) all_tasks = Task.order('created_at DESC') if status_name status = Task::STATUS.fetch(status_name.upcase) all_tasks.status_is(status) else all_tasks end end |
#update_task(id, attributes) ⇒ Object
47 48 49 50 51 52 53 54 55 56 |
# File 'lib/hypertodo/command.rb', line 47 def update_task(id, attributes) if status_name = attributes[:status] attributes[:status] = Task::STATUS.fetch(status_name.upcase) end task = Task.find(id) task.update_attributes! attributes task.reload end |