Class: Assembla::Client

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

Constant Summary collapse

BASE_URL =
'https://api.assembla.com/v1/'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(key, secret) ⇒ Client

Returns a new instance of Client.



14
15
16
17
# File 'lib/assemblabla.rb', line 14

def initialize(key, secret)
  self.key    = key
  self.secret = secret
end

Instance Attribute Details

#keyObject

Returns the value of attribute key.



10
11
12
# File 'lib/assemblabla.rb', line 10

def key
  @key
end

#secretObject

Returns the value of attribute secret.



10
11
12
# File 'lib/assemblabla.rb', line 10

def secret
  @secret
end

Instance Method Details

#milestones(space_id) ⇒ Object



40
41
42
# File 'lib/assemblabla.rb', line 40

def milestones(space_id)
  resource(:milestone, prefix: "spaces/#{space_id}/")
end

#resource(name, options = {}) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/assemblabla.rb', line 19

def resource(name, options={})
  the_key    = self.key
  the_secret = self.secret
  klass      = "Assembla::#{name.to_s.classify}".constantize
  Class.new(klass) do |c|
    def self.name; superclass.name; end
    c.element_name            = name.to_s
    c.site                    = "#{BASE_URL}#{options[:prefix]}"
    c.headers['X-Api-Key']    = the_key
    c.headers['X-Api-Secret'] = the_secret
  end
end

#spacesObject



32
33
34
# File 'lib/assemblabla.rb', line 32

def spaces
  resource(:space)
end

#tickets(space_id) ⇒ Object



36
37
38
# File 'lib/assemblabla.rb', line 36

def tickets(space_id)
  resource(:ticket, prefix: "spaces/#{space_id}/")
end