klaro-client 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/klaro/client.rb +25 -10
- data/lib/klaro/client/request_handler.rb +13 -1
- data/lib/klaro/client/resource.rb +34 -0
- data/lib/klaro/client/resource/board.rb +6 -0
- data/lib/klaro/client/resource/dimension.rb +13 -0
- data/lib/klaro/client/resource/dimension_value.rb +6 -0
- data/lib/klaro/client/resource/dimensions.rb +7 -0
- data/lib/klaro/client/resource/stories.rb +7 -0
- data/lib/klaro/client/resource/story.rb +8 -4
- data/lib/klaro/client/support/md_text.rb +30 -0
- data/lib/klaro/client/version.rb +10 -0
- metadata +31 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1a258ae74415243864b134896b5dbd98ec2d73220cac4a8199089614db5f66d8
|
4
|
+
data.tar.gz: a2bc070c56903aeffedc957e82806e9fe41224b736766448211b27b0574aa886
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4f244ffb939719fe8ead74b056cb953885a919bd0fe31d36d45d5ea14b71dd3e922aa9850a49dd8f41a196cf7b72530bc3dcdaa8277de8d711e642b69ea40952
|
7
|
+
data.tar.gz: e833371db1db694bd8b8c5987c332c088356235334f1556583137cca0f745707547586e102631bd77bed15af2786d702add4752dff32e448afdeba34bb0e39f4
|
data/lib/klaro/client.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'http'
|
2
2
|
require 'path'
|
3
|
+
require 'redcarpet'
|
3
4
|
|
4
5
|
module Klaro
|
5
6
|
class Client
|
@@ -9,20 +10,32 @@ module Klaro
|
|
9
10
|
@request = RequestHandler.new(base_url)
|
10
11
|
end
|
11
12
|
|
12
|
-
def
|
13
|
-
request.
|
13
|
+
def with_token(*args, &bl)
|
14
|
+
request.with_token(*args, &bl)
|
14
15
|
end
|
15
16
|
|
16
|
-
def
|
17
|
-
|
18
|
-
stories_list.map do |s|
|
19
|
-
Story.new(request.get("/api/stories/#{s['id']}"))
|
20
|
-
end
|
17
|
+
def login(*args, &bl)
|
18
|
+
request.authenticate(*args, &bl)
|
21
19
|
end
|
22
20
|
|
23
|
-
def
|
24
|
-
|
25
|
-
|
21
|
+
def dimension(code_or_id)
|
22
|
+
Dimension.dress(request.get("/api/dimensions/#{code_or_id}"))
|
23
|
+
end
|
24
|
+
|
25
|
+
def dimensions
|
26
|
+
Dimensions.dress(request.get('/api/dimensions'))
|
27
|
+
end
|
28
|
+
|
29
|
+
def board(location_or_id)
|
30
|
+
Board.dress(request.get("/api/boards/#{location_or_id}"))
|
31
|
+
end
|
32
|
+
|
33
|
+
def board_stories(location_or_id)
|
34
|
+
Stories.dress(request.get("/api/boards/#{location_or_id}/stories/"))
|
35
|
+
end
|
36
|
+
|
37
|
+
def story(id_or_identifier)
|
38
|
+
Story.dress(request.get("/api/stories/#{id_or_identifier}"))
|
26
39
|
end
|
27
40
|
|
28
41
|
def upload_image(image_path)
|
@@ -36,6 +49,8 @@ module Klaro
|
|
36
49
|
end
|
37
50
|
end
|
38
51
|
end
|
52
|
+
require_relative 'client/version'
|
39
53
|
require_relative 'client/errors'
|
54
|
+
require_relative 'client/support/md_text'
|
40
55
|
require_relative 'client/request_handler'
|
41
56
|
require_relative 'client/resource'
|
@@ -1,11 +1,22 @@
|
|
1
1
|
module Klaro
|
2
2
|
class Client
|
3
3
|
class RequestHandler
|
4
|
+
Http = HTTP
|
4
5
|
|
5
6
|
attr_reader :base_url, :token
|
6
7
|
|
7
8
|
def initialize(url)
|
8
9
|
@base_url = url
|
10
|
+
@token = nil
|
11
|
+
end
|
12
|
+
|
13
|
+
def authenticated?
|
14
|
+
not(@token.nil?)
|
15
|
+
end
|
16
|
+
|
17
|
+
def with_token(token_type, access_token)
|
18
|
+
@token = "#{token_type} #{access_token}"
|
19
|
+
self
|
9
20
|
end
|
10
21
|
|
11
22
|
def authenticate(user, password)
|
@@ -56,7 +67,8 @@ module Klaro
|
|
56
67
|
def http
|
57
68
|
Http.headers(
|
58
69
|
{
|
59
|
-
Authorization
|
70
|
+
"Authorization" => @token,
|
71
|
+
"Content-Type" => "application/json"
|
60
72
|
}
|
61
73
|
)
|
62
74
|
end
|
@@ -1,7 +1,41 @@
|
|
1
1
|
module Klaro
|
2
2
|
class Client
|
3
3
|
class Resource < OpenStruct
|
4
|
+
|
5
|
+
class << self
|
6
|
+
alias :dress :new
|
7
|
+
end
|
8
|
+
|
4
9
|
end # class Resource
|
10
|
+
class Collection
|
11
|
+
include Enumerable
|
12
|
+
|
13
|
+
def initialize(items)
|
14
|
+
@items = items.map{|i| self.class.dress_one(i) }
|
15
|
+
end
|
16
|
+
|
17
|
+
def each(*args, &bl)
|
18
|
+
@items.each(*args, &bl)
|
19
|
+
end
|
20
|
+
|
21
|
+
class << self
|
22
|
+
alias :dress :new
|
23
|
+
|
24
|
+
def item(clazz)
|
25
|
+
@item_class = clazz
|
26
|
+
end
|
27
|
+
|
28
|
+
def dress_one(item)
|
29
|
+
@item_class.dress(item)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
5
34
|
end # class Client
|
6
35
|
end # module Klaro
|
7
36
|
require_relative 'resource/story'
|
37
|
+
require_relative 'resource/stories'
|
38
|
+
require_relative 'resource/dimension'
|
39
|
+
require_relative 'resource/dimension_value'
|
40
|
+
require_relative 'resource/dimensions'
|
41
|
+
require_relative 'resource/board'
|
@@ -2,6 +2,14 @@ module Klaro
|
|
2
2
|
class Client
|
3
3
|
class Story < Resource
|
4
4
|
|
5
|
+
def title
|
6
|
+
@title ||= MdText.new(self.description.split("\n").first)
|
7
|
+
end
|
8
|
+
|
9
|
+
def summary
|
10
|
+
@summary ||= MdText.new(self.description.split("\n")[1..-1].join("\n"))
|
11
|
+
end
|
12
|
+
|
5
13
|
def download_and_relocate_attachments(root_path, target_folder, client)
|
6
14
|
as = self.attachments.map do |attachment|
|
7
15
|
url = attachment["url"]
|
@@ -12,10 +20,6 @@ module Klaro
|
|
12
20
|
self.class.new(self.to_h.merge(
|
13
21
|
attachments: as
|
14
22
|
))
|
15
|
-
rescue => ex
|
16
|
-
puts ex.message
|
17
|
-
puts ex.backtrace.join("\n")
|
18
|
-
raise
|
19
23
|
end
|
20
24
|
|
21
25
|
def download_and_relocate_images(root_path, target_folder, client)
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Klaro
|
2
|
+
class Client
|
3
|
+
class MdText
|
4
|
+
|
5
|
+
RENDERER = Redcarpet::Render::HTML.new({
|
6
|
+
filter_html: true,
|
7
|
+
hard_wrap: true,
|
8
|
+
no_links: false,
|
9
|
+
no_styles: true,
|
10
|
+
safe_links_only: true,
|
11
|
+
with_toc_data: false
|
12
|
+
})
|
13
|
+
|
14
|
+
MARKDOWN = Redcarpet::Markdown.new(RENDERER)
|
15
|
+
|
16
|
+
def initialize(src)
|
17
|
+
@src = src
|
18
|
+
end
|
19
|
+
|
20
|
+
def to_s
|
21
|
+
@src
|
22
|
+
end
|
23
|
+
|
24
|
+
def to_html
|
25
|
+
MARKDOWN.render(to_s).strip
|
26
|
+
end
|
27
|
+
|
28
|
+
end # class MdText
|
29
|
+
end # class Client
|
30
|
+
end # module Klaro
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: klaro-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- enspirit
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-04-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dotenv
|
@@ -30,14 +30,34 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '4.
|
33
|
+
version: '4.2'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '4.
|
40
|
+
version: '4.2'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: redcarpet
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.0'
|
48
|
+
- - ">="
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: '3.4'
|
51
|
+
type: :runtime
|
52
|
+
prerelease: false
|
53
|
+
version_requirements: !ruby/object:Gem::Requirement
|
54
|
+
requirements:
|
55
|
+
- - "~>"
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: '3.0'
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '3.4'
|
41
61
|
- !ruby/object:Gem::Dependency
|
42
62
|
name: path
|
43
63
|
requirement: !ruby/object:Gem::Requirement
|
@@ -93,7 +113,14 @@ files:
|
|
93
113
|
- lib/klaro/client/errors.rb
|
94
114
|
- lib/klaro/client/request_handler.rb
|
95
115
|
- lib/klaro/client/resource.rb
|
116
|
+
- lib/klaro/client/resource/board.rb
|
117
|
+
- lib/klaro/client/resource/dimension.rb
|
118
|
+
- lib/klaro/client/resource/dimension_value.rb
|
119
|
+
- lib/klaro/client/resource/dimensions.rb
|
120
|
+
- lib/klaro/client/resource/stories.rb
|
96
121
|
- lib/klaro/client/resource/story.rb
|
122
|
+
- lib/klaro/client/support/md_text.rb
|
123
|
+
- lib/klaro/client/version.rb
|
97
124
|
homepage:
|
98
125
|
licenses:
|
99
126
|
- MIT
|