NOTO

trello APIでカードの名前を取得してみる

 Date:2015-10-29 00:47:51 +0900
 Categories: ETC

はじめに

kanban 系のタスク管理ツールを探していて会社の人に教えてもらいました。
これは結構良さそうだったので、いつもどおりタスク管理ツールからタスクを抜き出すスクリプトを書いてみました。

環境

コード

先に書いたコードを記載します。

require 'open-uri'
require 'json'

module MyTrello
class Task
def initialize(name, key, token)
@name = name
@key = key
@token = token
end

def boards
responce = open(boards_url)
code, message = responce.status
if code == '200'
@json = JSON.parse(responce.read)
end
# @json
end

def lists(boardname)
@boardname = boardname
boards
board_id
responce = open(lists_url)
code, message = responce.status
if code == '200'
@listjson = JSON.parse(responce.read)
end
end

def cards(boardname, listname)
@boardname = boardname
@listname = listname
lists(boardname)
list_id
responce = open(cards_url)
code, message = responce.status
if code == '200'
@cardjson = JSON.parse(responce.read)
end
@cardjson
end

def cardnames(boardname, listname)
cards(boardname, listname).collect do |card|
card['name']
end
end

private
def board_id
@json.each do |board|
if board['name'] == @boardname
@board_id = board['id']
end
end
end

def list_id
@listjson.each do |list|
if list['name'] == @listname
@list_id = list['id']
end
end
@list_id
end

def boards_url
"https://trello.com/1/members/#{@name}/boards?key=#{@key}&token=#{@token}"
end

def lists_url
"https://trello.com/1/boards/#{@board_id}/lists?key=#{@key}&token=#{@token}"
end

def cards_url
"https://trello.com/1/lists/#{@list_id}/cards?key=#{@key}&token=#{@token}"
end
end
end

こんな感じです。
単純ですね。

使い方

pryでrequireして例で出します。
そして今回取り出すデータ元はこんな感じです。

$ pry -r ./mytrello.rb

mytrello.rbは上記コードが書いてあるファイルです
とりあえずイニシャライズします。

[4] pry(main)> name = "username"
=> "username"
[5] pry(main)> key = "000000000000000000000000000000"
=> "000000000000000000000000000000"
[6] pry(main)> token = "1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a"
=> "1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a"
[7] pry(main)> trello = MyTrello::Task.new(name, key, token)
=> #<MyTrello::Task:0x007fe47486a488
@key="000000000000000000000000000000",
@name="username",
@token=
"1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a">

key, name, tokenの値は各自のものを入れます。
つづいて実際に実行してみます。用意しているコマンドは以下です。
すべて、インスタンスメソッドです。
Tweet