TrelloCycleTime 1.0.2 → 1.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/lib/{CardRepository.rb → BoardCardRepository.rb} +5 -6
- data/lib/BoardCardRepositoryFactory.rb +14 -0
- data/lib/CompletedCard.rb +4 -0
- data/lib/CompletedCardFactory.rb +15 -2
- data/lib/CompletedCards.rb +34 -0
- data/lib/TrelloCycleTime.rb +5 -8
- data/lib/TrelloListRepository.rb +14 -0
- metadata +6 -4
- data/lib/CompletedCardRepository.rb +0 -26
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MzUzNmViNzIxOGM1MTI5NTFiYTY0M2I2ZTkyNDE3ODViZTI1MWRjNA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZjIwMzlmNWVkYmNmMjQ4OGI5ZjhmMDYzZGU3MDRkYjJiN2YzMmQ1Mw==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZTgxZWEwZDA1YTQ2M2Y1ZGY0YjJhYjQ5NWJlOTZkOTY4MGYzMDUxYTQ3NTg4
|
10
|
+
YzAxZmM3MWJiYmZkMzMzY2QzY2UwZGM5OWU1NWNmNmQyMzdjNTQyY2ViMDQ2
|
11
|
+
ZDVmNDllODhkNmYzMGZiZDBjNWQwYTFlODNjZDcyZTE1YTY5OGY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YjVjYmU1ZGM5OTViOTZlMWU5ZjE1ZTkyZTU0YTBjYzJhYzM5OTg1YzZkNTNm
|
14
|
+
MTg2NDA3Zjk1N2M2NzI2ZTUwMzE2NzFiNzM5NGM5OGJjOGJkMTFmNDZjYTkx
|
15
|
+
ZjQyZDk5MTc3ZmQzYTNiMWIwYjJjMTlhYzIwY2QwNGIwMmI3ZTE=
|
@@ -1,15 +1,14 @@
|
|
1
1
|
module AgileTrello
|
2
|
-
class
|
3
|
-
def initialize(
|
4
|
-
@trello_board =
|
5
|
-
@end_list = parameters[:end_list]
|
2
|
+
class BoardCardRepository
|
3
|
+
def initialize(trello_board)
|
4
|
+
@trello_board = trello_board
|
6
5
|
end
|
7
6
|
|
8
|
-
def get_cards_after
|
7
|
+
def get_cards_after(end_list)
|
9
8
|
cards_after = []
|
10
9
|
ignore = true
|
11
10
|
@trello_board.lists.each do | list |
|
12
|
-
ignore = !list.name.include?(
|
11
|
+
ignore = !list.name.include?(end_list) if ignore
|
13
12
|
if !ignore
|
14
13
|
list.cards.each do | card |
|
15
14
|
cards_after.push(card)
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require_relative './BoardCardRepository'
|
2
|
+
|
3
|
+
module AgileTrello
|
4
|
+
class BoardCardRepositoryFactory
|
5
|
+
def initialize(trello)
|
6
|
+
@trello = trello
|
7
|
+
end
|
8
|
+
|
9
|
+
def create(board_id)
|
10
|
+
trello_board = @trello.get_board(board_id)
|
11
|
+
BoardCardRepository.new(trello_board)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/CompletedCard.rb
CHANGED
data/lib/CompletedCardFactory.rb
CHANGED
@@ -11,13 +11,26 @@ module AgileTrello
|
|
11
11
|
@start_list = parameters[:start_list]
|
12
12
|
@end_list = parameters[:end_list]
|
13
13
|
@all_lists = parameters[:all_lists]
|
14
|
+
@measurement_start_date =
|
15
|
+
parameters[:measurement_start_date].nil? ? Time.new(1066) : parameters[:measurement_start_date]
|
14
16
|
end
|
15
17
|
|
16
18
|
def create(trello_card)
|
17
19
|
card_history = CardHistory.new(trello_card, @all_lists)
|
18
|
-
start_date = card_history.find_date_entered_list(@start_list)
|
19
20
|
end_date = card_history.find_date_entered_list(@end_list)
|
20
|
-
|
21
|
+
is_in_measured_period = end_date > @measurement_start_date
|
22
|
+
|
23
|
+
if (is_in_measured_period)
|
24
|
+
start_date = card_history.find_date_entered_list(@start_list)
|
25
|
+
CompletedCard.new(start_date, end_date)
|
26
|
+
else
|
27
|
+
CardBeforeMeasurementPeriod.new
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
class CardBeforeMeasurementPeriod
|
33
|
+
def shareCycleTimeWith(calculator)
|
21
34
|
end
|
22
35
|
end
|
23
36
|
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'peach'
|
2
|
+
require_relative './CompletedCardFactory'
|
3
|
+
require_relative './BoardCardRepositoryFactory'
|
4
|
+
|
5
|
+
module AgileTrello
|
6
|
+
class CompletedCards
|
7
|
+
def initialize(trello, average_cycle_time_calculator, trello_list_repository)
|
8
|
+
@board_card_repository_factory = BoardCardRepositoryFactory.new(trello)
|
9
|
+
@trello_list_repository = trello_list_repository
|
10
|
+
@average_cycle_time_calculator = average_cycle_time_calculator
|
11
|
+
end
|
12
|
+
|
13
|
+
def retrieve(parameters)
|
14
|
+
board_id = parameters[:board_id]
|
15
|
+
end_list = parameters[:end_list]
|
16
|
+
|
17
|
+
completed_card_for_board_factory = CompletedCardFactory.new(
|
18
|
+
start_list: parameters[:start_list],
|
19
|
+
end_list: end_list,
|
20
|
+
all_lists: @trello_list_repository.get(board_id),
|
21
|
+
average_cycle_time_calculator: parameters[:average_cycle_time_calculator],
|
22
|
+
measurement_start_date: parameters[:measurement_start_date]
|
23
|
+
)
|
24
|
+
@board_card_repository_factory
|
25
|
+
.create(board_id)
|
26
|
+
.get_cards_after(end_list)
|
27
|
+
.peach do |card|
|
28
|
+
completed_card_for_board_factory
|
29
|
+
.create(card)
|
30
|
+
.shareCycleTimeWith(@average_cycle_time_calculator)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
data/lib/TrelloCycleTime.rb
CHANGED
@@ -1,24 +1,21 @@
|
|
1
|
-
require 'peach'
|
2
1
|
require_relative './TrelloFactory'
|
3
2
|
require_relative './TrelloCredentials'
|
4
3
|
require_relative './AverageCycleTimeCalculator'
|
5
|
-
require_relative './
|
4
|
+
require_relative './CompletedCards'
|
5
|
+
require_relative './TrelloListRepository'
|
6
6
|
|
7
7
|
module AgileTrello
|
8
8
|
class TrelloCycleTime
|
9
9
|
def initialize(parameters = {})
|
10
10
|
trello_credentials = TrelloCredentials.new(parameters[:public_key], parameters[:access_token])
|
11
11
|
trello_factory = parameters[:trello_factory].nil? ? TrelloFactory.new : parameters[:trello_factory]
|
12
|
-
|
12
|
+
trello = trello_factory.create(trello_credentials)
|
13
13
|
@average_cycle_time_calculator = AverageCycleTimeCalculator.new
|
14
|
+
@completed_cards = CompletedCards.new(trello, @average_cycle_time_calculator, TrelloListRepository.new(trello))
|
14
15
|
end
|
15
16
|
|
16
17
|
def get(parameters)
|
17
|
-
|
18
|
-
finished_cards = completed_card_repository.get
|
19
|
-
finished_cards.peach do | card |
|
20
|
-
@average_cycle_time_calculator.add(card.cycle_time)
|
21
|
-
end
|
18
|
+
@completed_cards.retrieve(parameters)
|
22
19
|
return @average_cycle_time_calculator.average
|
23
20
|
end
|
24
21
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: TrelloCycleTime
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- iainjmitchell
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-07-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ruby-trello
|
@@ -45,14 +45,16 @@ extensions: []
|
|
45
45
|
extra_rdoc_files: []
|
46
46
|
files:
|
47
47
|
- lib/AverageCycleTimeCalculator.rb
|
48
|
+
- lib/BoardCardRepository.rb
|
49
|
+
- lib/BoardCardRepositoryFactory.rb
|
48
50
|
- lib/CardHistory.rb
|
49
|
-
- lib/CardRepository.rb
|
50
51
|
- lib/CompletedCard.rb
|
51
52
|
- lib/CompletedCardFactory.rb
|
52
|
-
- lib/
|
53
|
+
- lib/CompletedCards.rb
|
53
54
|
- lib/TrelloCredentials.rb
|
54
55
|
- lib/TrelloCycleTime.rb
|
55
56
|
- lib/TrelloFactory.rb
|
57
|
+
- lib/TrelloListRepository.rb
|
56
58
|
homepage: https://github.com/code-computerlove/trello-cycletime
|
57
59
|
licenses:
|
58
60
|
- MIT
|
@@ -1,26 +0,0 @@
|
|
1
|
-
require_relative './CompletedCardFactory'
|
2
|
-
require_relative './CardRepository'
|
3
|
-
|
4
|
-
module AgileTrello
|
5
|
-
class CompletedCardRepository
|
6
|
-
def initialize(trello, parameters)
|
7
|
-
trello_board = trello.get_board(parameters[:board_id])
|
8
|
-
all_lists_on_board = trello_board.lists.map do |list|
|
9
|
-
list.name
|
10
|
-
end
|
11
|
-
@card_repository = CardRepository.new(trello, parameters)
|
12
|
-
@completed_card_factory = CompletedCardFactory.new(
|
13
|
-
start_list: parameters[:start_list],
|
14
|
-
end_list: parameters[:end_list],
|
15
|
-
all_lists: all_lists_on_board
|
16
|
-
)
|
17
|
-
end
|
18
|
-
|
19
|
-
def get
|
20
|
-
completed_cards = @card_repository.get_cards_after
|
21
|
-
completed_cards.map do |card|
|
22
|
-
@completed_card_factory.create(card)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|