Class: Zensana::Asana

Inherits:
Object
  • Object
show all
Includes:
HTTMultiParty
Defined in:
lib/zensana/services/asana.rb,
lib/zensana/models/asana/task.rb,
lib/zensana/models/asana/user.rb,
lib/zensana/models/asana/project.rb,
lib/zensana/models/asana/attachment.rb

Defined Under Namespace

Modules: Access Classes: Attachment, Project, Task, User

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeAsana

Returns a new instance of Asana.



21
22
23
24
25
26
27
28
# File 'lib/zensana/services/asana.rb', line 21

def initialize
  user, pword = if ENV['ASANA_USERNAME']
                  [ ENV['ASANA_USERNAME'], ENV['ASANA_PASSWORD'] ]
                else
                  [ ENV['ASANA_API_KEY'], nil ]
                end
  self.class.basic_auth user, pword
end

Class Method Details

.instObject

debug_output



11
12
13
# File 'lib/zensana/services/asana.rb', line 11

def self.inst
  @inst ||= new
end

Instance Method Details

#fetch(path, params = {}, &block) ⇒ Object



30
31
32
# File 'lib/zensana/services/asana.rb', line 30

def fetch(path, params={}, &block)
  request :get, path, params, &block
end

#request(method, path, params = {}, &block) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/zensana/services/asana.rb', line 34

def request(method, path, params={}, &block)
  result = self.class.send(method, path, params)

  Zensana::Error.handle_http_errors result

  Zensana::Response.new(result).tap do |response|
    block.call(response) if block_given?
  end

rescue Net::OpenTimeout
  raise Unprocessable, "Connection timed out"
end