trellor 2.0.1 → 2.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9b0899d981643ca3ce03274a849a5c20e8944206
4
- data.tar.gz: bdb6b7568c5ee346e3bfb5db3caf6bbc70560d59
3
+ metadata.gz: 1a75332839fc3f9a73606e8bc3edbe10a0df2e72
4
+ data.tar.gz: 99ea0ab3625ef2894cbdb20ec27368072de0b4ce
5
5
  SHA512:
6
- metadata.gz: c5ab069eec67696f8445417d67b024d5e67a58e65925629821d566f089819fc5128c8abe6c2f1ea04dc3c84240082a45685aabfd1c7ab0502280d31079e131e9
7
- data.tar.gz: 12d66860ee5e25fc2ccbc37d1597695dfcbb7b4b00d270528ce6b0fd286d0a4431098c8de71df42ad9d069e785ff2f0e5e9dda4ae1de8743be30c34bf03e6dce
6
+ metadata.gz: e49e48215f237b10f0e6c9a2f2410d72dabccd96b656139c864694365009a4337b825818090c736243738b2a6def32c12f81d0959abd00bccdf2977facce1dce
7
+ data.tar.gz: 5344faf45db12a13166d019b51b2ec72f29fbd0e3fc82325d18991a0724a59f6d0f2bf7e71bdf5e9bf1e52d0ab39df730b94c4128b85fb52a4d37817c526851e
data/lib/cli.rb CHANGED
@@ -7,6 +7,7 @@ module Trellor
7
7
  @opts = Trollop::options do
8
8
  banner "Usage: trellor [boardname [listname [cardname [description]]]]"
9
9
  version "trellor #{VERSION}"
10
+ opt :archive, 'Archive a card', short: '-a'
10
11
  opt :cache, 'Cache (or re-cache)', short: '-c'
11
12
  opt :verbose, 'Run verbosely', short: '-v'
12
13
  opt :webapi, 'Run webapi', short: '-w'
@@ -89,22 +90,18 @@ module Trellor
89
90
  if board_name.nil?
90
91
  puts "Boards:", '-'*50
91
92
  trellor.board_names.each{ |name| puts name }
92
- # trellor.boards.each{ |board| puts board.name }
93
+ elsif list_name.nil?
94
+ puts "Lists for Board: #{board_name}", '-'*50
95
+ trellor.list_names(board_name).each{ |name| puts name }
96
+ elsif card_name.nil?
97
+ puts "Cards for List: #{board_name}.#{list_name}", '-'*50
98
+ trellor.card_names(board_name, list_name).each{ |name| puts name }
99
+ elsif archive?
100
+ trellor.archive_card(board_name, list_name, card_name)
101
+ trellor.card_names(board_name, list_name).each{ |name| puts name }
93
102
  else
94
- if list_name.nil?
95
- # board = trellor.board(board_name)
96
- puts "Board: #{board_name}", '-'*50
97
- trellor.list_names(board_name).each{ |name| puts name }
98
- # board.lists.each{ |list| puts list.name }
99
- elsif card_name.nil?
100
- # list = trellor.list(board_name, list_name)
101
- puts "List: #{board_name}.#{list_name}", '-'*50
102
- trellor.card_names(board_name, list_name).each{ |name| puts name }
103
- # list.cards.each{ |card| puts card.name }
104
- else
105
- card_names = trellor.create_card(board_name, list_name, card_name, descript)
106
- card_names.each{ |name| puts name }
107
- end
103
+ trellor.create_card(board_name, list_name, card_name, descript)
104
+ trellor.card_names(board_name, list_name).each{ |name| puts name }
108
105
  end
109
106
  end
110
107
 
@@ -116,6 +113,10 @@ module Trellor
116
113
  @opts[:webapi]
117
114
  end
118
115
 
116
+ def self.archive?
117
+ @opts[:archive]
118
+ end
119
+
119
120
  def self.cache?
120
121
  @opts[:cache]
121
122
  end
@@ -52,7 +52,11 @@ module Trellor
52
52
  card.name = name
53
53
  card.desc = descript if descript
54
54
  card.save
55
- card_names(board_name, list_name)
55
+ # card_names(board_name, list_name)
56
+ end
57
+ def archive_card(board_name, list_name, name)
58
+ card = find_card(board_name, list_name, name)
59
+ card.close!
56
60
  end
57
61
 
58
62
 
@@ -88,9 +92,10 @@ module Trellor
88
92
  list(board_name, list_name).cards
89
93
  end
90
94
 
91
- def card(board_name, list_name, card_name)
95
+ def find_card(board_name, list_name, card_name)
96
+ card_name = card_name.downcase
92
97
  list(board_name, list_name).cards.detect do |card|
93
- card.name==card_name
98
+ card.name.downcase.start_with?(card_name)
94
99
  end
95
100
  end
96
101
  end
@@ -1,3 +1,3 @@
1
1
  module Trellor
2
- VERSION = "2.0.1"
2
+ VERSION = "2.0.2"
3
3
  end
@@ -10,24 +10,36 @@ module Trellor
10
10
  attr_accessor :be_verbose
11
11
 
12
12
  def ensure_webapp_is_running
13
- fail unless VERSION == get_version
13
+ v = get_version
14
+ $stderr.puts "Warning: this version is #{VERSION} but the webapp version is #{v}. You may want to kill the older webapp." unless VERSION == v
15
+ fail unless v
14
16
  rescue
15
17
  puts "The background webapp wasn't running. Will run it now."
18
+ run_webapp
19
+ end
20
+
21
+ def run_webapp
16
22
  path = Pathname.new(__FILE__).parent.parent
17
23
  cmd = "cd '#{path}' && ruby lib/webapi.rb &> /dev/null"
18
24
  job = fork do
19
25
  exec cmd
20
26
  end
27
+ # give webapp time to run before returning
28
+ (1..15).each do |n|
29
+ sleep 0.1
30
+ return if get_version
31
+ end
21
32
  Process.detach(job)
22
- sleep 1.0 # give webapp time to run before returning
23
33
  end
24
34
 
25
35
  def get_version
26
- response = get_http('/version')
36
+ response = get_http('/version', nil, false)
27
37
  response.body
38
+ rescue
39
+ nil
28
40
  end
29
41
 
30
- def get_http(url, timeout=nil)
42
+ def get_http(url, timeout=nil, show_error=true)
31
43
  uri = URI("#{site}#{url}")
32
44
  http = Net::HTTP.new uri.host, uri.port
33
45
  http.open_timeout = default_open_timeout
@@ -36,7 +48,7 @@ module Trellor
36
48
  # request.basic_auth 'trellor', password if password
37
49
  http.request(request)
38
50
  rescue Exception => e
39
- $stderr.puts "ERROR in get_http(#{url})"
51
+ $stderr.puts "ERROR in get_http(#{url})" if show_error
40
52
  raise e
41
53
  end
42
54
 
@@ -98,9 +110,12 @@ module Trellor
98
110
  end
99
111
 
100
112
  def create_card(board_name, list_name, name, descript=nil)
101
- JSON.parse(post_http("/boards/#{board_name}/lists/#{list_name}/cards", {card_name: name}).body)
113
+ JSON.parse(post_http("/boards/#{board_name}/lists/#{list_name}/cards", {card_name: name, descript: descript}).body)
102
114
  end
103
115
 
116
+ def archive_card(board_name, list_name, name)
117
+ JSON.parse(post_http("/boards/#{board_name}/lists/#{list_name}/cards", {card_name: name, archive: true}).body)
118
+ end
104
119
 
105
120
 
106
121
 
@@ -3,14 +3,35 @@ require 'json'
3
3
  require_relative 'trellor/version'
4
4
  require_relative 'trellor'
5
5
 
6
+
6
7
  module Trellor
7
8
  class TrellorWebapi < Sinatra::Base
8
- get '/' do
9
- "Hello, world!"
9
+ # enable error handler even in development mode
10
+ set :show_exceptions, :after_handler
11
+
12
+ not_found do
13
+ 'no such path'
14
+ end
15
+
16
+ error do
17
+ 'had an error'
10
18
  end
19
+
11
20
  end
12
21
  end
13
22
 
23
+
24
+ set :show_exceptions, false
25
+
26
+ not_found do
27
+ 'no such path'
28
+ end
29
+
30
+ error do
31
+ 'had an error'
32
+ end
33
+
34
+
14
35
  def trellor
15
36
  Trellor::Trellor.singleton
16
37
  end
@@ -40,13 +61,14 @@ get '/bbboards/:board_name/lists/:list_name/cards/:card_name' do
40
61
  end
41
62
 
42
63
  post '/boards/:board_name/lists/:list_name/cards' do |board_name, list_name|
43
- card = Trello::Card.new
44
- card.client = trellor.client
45
- card.list_id = trellor.list(board_name,list_name).id
46
- card.name = params['card_name']
47
- card.save
64
+ if params['archive']
65
+ trellor.archive_card(board_name, list_name, params['card_name'])
66
+ else
67
+ trellor.create_card(board_name, list_name, params['card_name'], params['descript'])
68
+ end
48
69
 
49
70
  cards = trellor.list(board_name,list_name).cards.collect{ |c| c.name }
50
71
  cards.to_json
72
+ params.to_json
51
73
  end
52
74
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trellor
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Murphy-Dye