Class: Zensana::Asana::Project

Inherits:
Object
  • Object
show all
Includes:
Access
Defined in:
lib/zensana/models/asana/project.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Access

#asana_service

Constructor Details

#initialize(spec) ⇒ Project

Returns a new instance of Project.



21
22
23
# File 'lib/zensana/models/asana/project.rb', line 21

def initialize(spec)
  @attributes = fetch(spec)
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name, *args, &block) ⇒ Object



33
34
35
# File 'lib/zensana/models/asana/project.rb', line 33

def method_missing(name, *args, &block)
  attributes[name.to_s] || super
end

Instance Attribute Details

#attributesObject (readonly)

Returns the value of attribute attributes.



19
20
21
# File 'lib/zensana/models/asana/project.rb', line 19

def attributes
  @attributes
end

Class Method Details

.listObject



8
9
10
# File 'lib/zensana/models/asana/project.rb', line 8

def list
  @@list ||= Zensana::Asana.inst.fetch '/projects'
end

.search(spec) ⇒ Object



12
13
14
15
16
# File 'lib/zensana/models/asana/project.rb', line 12

def search(spec)
  list.select { |p| p.to_s =~ %r{#{spec}} }
rescue RegexpError
  raise BadSearch, "'#{spec}' is not a valid regular expression"
end

Instance Method Details

#full_tasksObject



29
30
31
# File 'lib/zensana/models/asana/project.rb', line 29

def full_tasks
  @full_tasks ||= fetch_project_tasks
end

#task_listObject



25
26
27
# File 'lib/zensana/models/asana/project.rb', line 25

def task_list
  @task_list ||= project_tasks
end