Class: Klaro::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/klaro/client.rb,
lib/klaro/client/errors.rb,
lib/klaro/client/version.rb,
lib/klaro/client/resource.rb,
lib/klaro/client/resource/board.rb,
lib/klaro/client/resource/story.rb,
lib/klaro/client/request_handler.rb,
lib/klaro/client/support/md_text.rb,
lib/klaro/client/resource/stories.rb,
lib/klaro/client/resource/dimension.rb,
lib/klaro/client/resource/attachment.rb,
lib/klaro/client/resource/dimensions.rb,
lib/klaro/client/resource/dimension_value.rb

Defined Under Namespace

Modules: Version Classes: Attachment, Board, Collection, Dimension, DimensionValue, Dimensions, Error, MdText, RequestHandler, Resource, Stories, Story

Constant Summary collapse

VERSION =
"#{Version::MAJOR}.#{Version::MINOR}.#{Version::TINY}"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(base_url) ⇒ Client

Returns a new instance of Client.



12
13
14
# File 'lib/klaro/client.rb', line 12

def initialize(base_url)
  @request = RequestHandler.new(base_url)
end

Instance Attribute Details

#requestObject (readonly)

Returns the value of attribute request.



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

def request
  @request
end

Instance Method Details

#absolute_url(url) ⇒ Object



21
22
23
# File 'lib/klaro/client.rb', line 21

def absolute_url(url)
  request.base_url + url
end

#board(location_or_id) ⇒ Object



45
46
47
# File 'lib/klaro/client.rb', line 45

def board(location_or_id)
  Board.dress(request.get("/api/boards/#{location_or_id}"), self)
end

#board_stories(location_or_id) ⇒ Object



49
50
51
# File 'lib/klaro/client.rb', line 49

def board_stories(location_or_id)
  Stories.dress(request.get("/api/boards/#{location_or_id}/stories/"), self)
end

#board_stories_full(location_or_id) ⇒ Object



53
54
55
56
57
58
# File 'lib/klaro/client.rb', line 53

def board_stories_full(location_or_id)
  hs = { 'Accept': 'application/vnd+klaro.stories.full+json' }
  Stories.dress(
    request.get("/api/boards/#{location_or_id}/stories/", false, hs),
    self)
end

#dimension(code_or_id) ⇒ Object



37
38
39
# File 'lib/klaro/client.rb', line 37

def dimension(code_or_id)
  Dimension.dress(request.get("/api/dimensions/#{code_or_id}"), self)
end

#dimensionsObject



41
42
43
# File 'lib/klaro/client.rb', line 41

def dimensions
  Dimensions.dress(request.get('/api/dimensions'), self)
end

#login(*args, &bl) ⇒ Object



33
34
35
# File 'lib/klaro/client.rb', line 33

def (*args, &bl)
  request.authenticate(*args, &bl)
end

#story(id_or_identifier) ⇒ Object



60
61
62
# File 'lib/klaro/client.rb', line 60

def story(id_or_identifier)
  Story.dress(request.get("/api/stories/#{id_or_identifier}"), self)
end

#upload_image(image_path) ⇒ Object



64
65
66
67
68
69
70
71
72
# File 'lib/klaro/client.rb', line 64

def upload_image(image_path)
  body = {
    form: {
      file: HTTP::FormData::File.new(image_path)
    }
  }
  response = request.post('/s/', body)
  URI(response['location']).request_uri
end

#with_caching(options) ⇒ Object



16
17
18
19
# File 'lib/klaro/client.rb', line 16

def with_caching(options)
  @request = request.with_cache(options)
  self
end

#with_project(*args, &bl) ⇒ Object



29
30
31
# File 'lib/klaro/client.rb', line 29

def with_project(*args, &bl)
  request.with_project(*args, &bl)
end

#with_token(*args, &bl) ⇒ Object



25
26
27
# File 'lib/klaro/client.rb', line 25

def with_token(*args, &bl)
  request.with_token(*args, &bl)
end