trellor 2.0.1 → 2.0.2

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: 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