trello_client 0.1.5 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cc0fe0f8676556fec8354e283b0c074e75baf344
4
- data.tar.gz: 7ecd52e69df90a9dd6b1b4287ff23db6b82911ec
3
+ metadata.gz: a85198454a25ff3a0623f1643445d8313670a939
4
+ data.tar.gz: 91685449c5bfbe430a2b4f9facd1538dc5ffeee7
5
5
  SHA512:
6
- metadata.gz: 8f840fb9457ad0bf76f671b2413ecdd6faea6eb3afd02a057222f3626e2acc7390aabe1fbaab87ec8329e7afe9d7f116cc899db76ec2fcd0abe0a85e701641b2
7
- data.tar.gz: 49dbd87c97e0cd2caca9be279f002d6c4f41cc4cee85b211781aa459774141a627b3c14782ff4d72a5ed53478e44fbae9e25b48953a7605aa91d0b1592c3a9e5
6
+ metadata.gz: a3339653ee5da575a68b10f00ff8349ef9e26e7ea1ee7e935bc705a26bd307461d22b0260184ff984c568baf31d588c1dc5791684e3fbb56e2f216893bfa0621
7
+ data.tar.gz: 15777c22465f981cb921d3393489eb396d5cdbf66df9b4b6d02a1b15d42849f7bd9bd56f7ec6ffe5311c79443e30341041b1fbdb7b0260063a349742fac7f61b
@@ -0,0 +1,30 @@
1
+ module Trello
2
+ class ApiObject
3
+ def initialize(client)
4
+ @client = client
5
+ end
6
+
7
+ def fetch_all(**args)
8
+ @client.get(resources_url(args))
9
+ end
10
+
11
+ def fetch(id:)
12
+ raise unless id
13
+ @client.get(resource_url(id))
14
+ end
15
+
16
+ def add(**args)
17
+ raise NotImplementedError
18
+ end
19
+
20
+ private
21
+
22
+ def resources_url(**args)
23
+ raise NotImplementedError
24
+ end
25
+
26
+ def resource_url(id)
27
+ raise NotImplementedError
28
+ end
29
+ end
30
+ end
data/lib/trello/board.rb CHANGED
@@ -1,24 +1,22 @@
1
- module Trello
2
- class Board
3
- def initialize(client)
4
- @client = client
5
- end
1
+ require "trello/api_object"
6
2
 
3
+ module Trello
4
+ class Board < ApiObject
7
5
  def fetch_all
8
- @client.get(boards_url)
6
+ super
9
7
  end
10
8
 
11
- def fetch(id)
12
- @client.get(board_url(id))
9
+ def fetch(id:)
10
+ super
13
11
  end
14
12
 
15
13
  private
16
14
 
17
- def boards_url
15
+ def resources_url(**args)
18
16
  "/1/members/me/boards"
19
17
  end
20
18
 
21
- def board_url(id)
19
+ def resource_url(id)
22
20
  "/1/boards/#{id}"
23
21
  end
24
22
  end
data/lib/trello/card.rb CHANGED
@@ -1,24 +1,25 @@
1
1
  module Trello
2
- class Card
3
- def initialize(client)
4
- @client = client
2
+ class Card < ApiObject
3
+ def fetch_all(**args)
4
+ raise unless args[:list_id]
5
+ super
5
6
  end
6
7
 
7
- def fetch_all(list_id:)
8
- @client.get(cards_url(list_id))
8
+ def fetch(id:)
9
+ super
9
10
  end
10
11
 
11
- def fetch(id)
12
- @client.get(card_url(id))
12
+ def add(list_id:, **args)
13
+ @client.post("/1/cards", args.merge(idList: list_id))
13
14
  end
14
15
 
15
16
  private
16
17
 
17
- def cards_url(list_id)
18
- "/1/lists/#{list_id}/cards"
18
+ def resources_url(**args)
19
+ "/1/lists/#{args[:list_id]}/cards"
19
20
  end
20
21
 
21
- def card_url(id)
22
+ def resource_url(id)
22
23
  "/1/cards/#{id}"
23
24
  end
24
25
  end
data/lib/trello/client.rb CHANGED
@@ -15,6 +15,10 @@ module Trello
15
15
  @http_client.perform(:get, with_key_and_token(path))
16
16
  end
17
17
 
18
+ def post(path, body = {})
19
+ @http_client.perform(:post, with_key_and_token(path), body.to_json)
20
+ end
21
+
18
22
  private
19
23
 
20
24
  def with_key_and_token(path)
data/lib/trello/list.rb CHANGED
@@ -1,24 +1,21 @@
1
1
  module Trello
2
- class List
3
- def initialize(client)
4
- @client = client
2
+ class List < ApiObject
3
+ def fetch_all(**args)
4
+ raise unless args[:board_id]
5
+ super
5
6
  end
6
7
 
7
- def fetch_all(board_id:)
8
- @client.get(lists_url(board_id))
9
- end
10
-
11
- def fetch(id)
12
- @client.get(list_url(id))
8
+ def fetch(id:)
9
+ super
13
10
  end
14
11
 
15
12
  private
16
13
 
17
- def lists_url(board_id)
18
- "/1/boards/#{board_id}/lists"
14
+ def resources_url(**args)
15
+ "/1/boards/#{args[:board_id]}/lists"
19
16
  end
20
17
 
21
- def list_url(id)
18
+ def resource_url(id)
22
19
  "/1/lists/#{id}"
23
20
  end
24
21
  end
data/lib/trello_client.rb CHANGED
@@ -8,5 +8,5 @@ require "trello/list"
8
8
  require "trello/card"
9
9
 
10
10
  module TrelloClient
11
- VERSION = "0.1.5"
11
+ VERSION = "0.2.0"
12
12
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trello_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chen Huang
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-03-03 00:00:00.000000000 Z
11
+ date: 2018-03-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -81,6 +81,7 @@ files:
81
81
  - Rakefile
82
82
  - bin/console
83
83
  - bin/setup
84
+ - lib/trello/api_object.rb
84
85
  - lib/trello/board.rb
85
86
  - lib/trello/card.rb
86
87
  - lib/trello/client.rb