Class: GoogleTask

Inherits:
Object
  • Object
show all
Defined in:
lib/gtasks.rb

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ GoogleTask

Returns a new instance of GoogleTask.



253
254
255
256
257
258
259
260
# File 'lib/gtasks.rb', line 253

def initialize(options={})
  @client_id = options[:client_id] or raise ArgumentError.new
  @client_secret = options[:client_secret] or raise ArgumentError.new
  @logger = options[:logger] ||= Logger.new(nil)
  @no_refresh = options[:no_refresh] ||= false

  @gs_api = GoogleTaskAPI.new(:client_id => @client_id, :client_secret => @client_secret, :logger => @logger, :no_refresh => @no_refresh)
end

Instance Method Details

#add(task_name, list_ident = '@default') ⇒ Object



270
271
272
# File 'lib/gtasks.rb', line 270

def add(task_name, list_ident = '@default')
  @gs_api.task_insert(list_ident, :title => task_name)
end

#all_tasks(username = '@me') ⇒ Object



317
318
319
320
321
322
323
324
# File 'lib/gtasks.rb', line 317

def all_tasks(username = '@me')
  hash = {}
  @gs_api.tasklist_list(username)["items"].map{ |item|
    hash[item["title"]] ||= []
    hash[item["title"]] += tasks(item["id"]).map{|e| e["title"]}
  }
  hash
end

#clear(list_ident = '@default') ⇒ Object



266
267
268
# File 'lib/gtasks.rb', line 266

def clear(list_ident = '@default')
  @gs_api.task_clear(list_ident)
end

#delete(task_number, list_ident = '@default') ⇒ Object



285
286
287
288
289
# File 'lib/gtasks.rb', line 285

def delete(task_number, list_ident = '@default')
  task_proc(task_number){ |task|
    @gs_api.task_delete(list_ident, task["id"])
  }
end

#delete_if(regexp, list_ident = '@default') ⇒ Object



291
292
293
294
295
296
297
# File 'lib/gtasks.rb', line 291

def delete_if(regexp, list_ident = '@default')
  regexp_if(regexp, list_ident){ |item|
    @logger.info "try to delete: #{item["title"]} (#{item["id"]})"
    @gs_api.task_delete(list_ident, item["id"])
    @logger.info "deleted: #{item["title"]}"
  }
end

#done(task_number, list_ident = '@default') ⇒ Object



299
300
301
302
303
# File 'lib/gtasks.rb', line 299

def done(task_number, list_ident = '@default')
  task_proc(task_number) { |task|
    @gs_api.task_update(list_ident, task["id"], "status" => "completed")
  }
end

#done_if(regexp, list_ident = '@default') ⇒ Object



305
306
307
308
309
310
311
# File 'lib/gtasks.rb', line 305

def done_if(regexp, list_ident = '@default')
  regexp_if(regexp, list_ident){ |item|
    @logger.info "try to done task: #{item["title"]} (#{item["id"]})"
    @gs_api.task_update(list_ident, item["id"], "status" => "completed")
    @logger.info "updated: #{item["title"]}"
  }
end

#lists(username = '@me') ⇒ Object



313
314
315
# File 'lib/gtasks.rb', line 313

def lists(username = '@me')
  @gs_api.tasklist_list(username)["items"]
end

#regexp_if(regexp, list_ident = '@default') ⇒ Object



274
275
276
277
278
279
280
281
282
283
# File 'lib/gtasks.rb', line 274

def regexp_if(regexp, list_ident = '@default')
  matched = []
  @gs_api.task_list(list_ident)["items"].each{ |item|
    if regexp.match(item["title"])
      yield(item) if block_given?
      matched << item
    end
  }
  matched
end

#show(username = '@me') ⇒ Object



326
327
328
329
330
331
332
333
# File 'lib/gtasks.rb', line 326

def show(username = '@me')
  all_tasks.each{ |list_title, tasks|
    puts "*#{list_title}"
    tasks.each{ |task|
      puts "\t#{task}"
    }
  }
end

#tasks(list_ident = '@default') ⇒ Object



262
263
264
# File 'lib/gtasks.rb', line 262

def tasks(list_ident = '@default')
  @gs_api.task_list(list_ident)["items"]
end