trello_lead_time 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/trello_lead_time/array_searcher.rb +11 -0
- data/lib/trello_lead_time/board.rb +4 -2
- data/lib/trello_lead_time/timeline.rb +3 -1
- data/lib/trello_lead_time/version.rb +1 -1
- data/spec/fixtures/actions.1111.json +5 -5
- data/spec/fixtures/actions.2222.json +4 -4
- data/spec/lib/trello_lead_time/array_matcher_spec.rb +16 -0
- data/trello_lead_time.gemspec +1 -0
- metadata +19 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ebb46d164441714720302263800024ee5fc651cd
|
4
|
+
data.tar.gz: 3105c32a61a10087082469f5e665a397e66d2e26
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c58c18473e497d0bd1938b63dd01b6547c649539fc037c363561503b648a05eed5ae825f6b3df255e220a15010d1ff3a04e6c42cca32254b8505e8f30976fd18
|
7
|
+
data.tar.gz: b208697cb6bc6e399dc43c6ca2e86f0708940ccca139ec07d60e0e23420ab1adf1643fdc1f593fed2ce94a1e856114458a3d86fa3e97ad5900dae29e849ff8e6
|
data/Gemfile.lock
CHANGED
@@ -0,0 +1,11 @@
|
|
1
|
+
module TrelloLeadTime
|
2
|
+
module ArraySearcher
|
3
|
+
def find_name_like(elements, name)
|
4
|
+
elements.detect { |element| element_matches_expression?(element, name) }
|
5
|
+
end
|
6
|
+
|
7
|
+
def element_matches_expression?(element, expression)
|
8
|
+
element =~ /#{Regexp.quote(expression)}/
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
module TrelloLeadTime
|
2
2
|
class Board
|
3
|
+
include ArraySearcher
|
3
4
|
|
4
5
|
def self.from_url(url)
|
5
6
|
@org = Trello::Organization.find(TrelloLeadTime::Config.organization_name)
|
@@ -47,8 +48,9 @@ module TrelloLeadTime
|
|
47
48
|
private
|
48
49
|
|
49
50
|
def find_list_by_name(name)
|
50
|
-
|
51
|
-
|
51
|
+
matched_name = find_name_like(@_lists.keys, name)
|
52
|
+
if matched_name.nil?
|
53
|
+
trello_list = @trello_board.lists({filter: 'all'}).detect { |l| element_matches_expression?(l.name, name) }
|
52
54
|
@_lists[name] = TrelloLeadTime::List.from_trello_list(trello_list) if trello_list
|
53
55
|
end
|
54
56
|
@_lists[name]
|
@@ -1,5 +1,7 @@
|
|
1
1
|
module TrelloLeadTime
|
2
2
|
class Timeline
|
3
|
+
include ArraySearcher
|
4
|
+
|
3
5
|
def self.for_trello_card(trello_card)
|
4
6
|
Timeline.new(trello_card)
|
5
7
|
end
|
@@ -31,7 +33,7 @@ module TrelloLeadTime
|
|
31
33
|
end
|
32
34
|
|
33
35
|
def seconds_in_list(list_name)
|
34
|
-
matched_list = @_seconds_in_list.values.detect { |list| list[:list_name]
|
36
|
+
matched_list = @_seconds_in_list.values.detect { |list| element_matches_expression?(list[:list_name], list_name) }
|
35
37
|
return matched_list[:seconds_in_list] if !matched_list.nil?
|
36
38
|
0
|
37
39
|
end
|
@@ -8,7 +8,7 @@
|
|
8
8
|
"id": "3333"
|
9
9
|
},
|
10
10
|
"listBefore": {
|
11
|
-
"name": "Acceptance",
|
11
|
+
"name": "Acceptance [5]",
|
12
12
|
"id": "5555"
|
13
13
|
},
|
14
14
|
"board": {
|
@@ -42,11 +42,11 @@
|
|
42
42
|
"idMemberCreator": "1234",
|
43
43
|
"data": {
|
44
44
|
"listAfter": {
|
45
|
-
"name": "Acceptance",
|
45
|
+
"name": "Acceptance [5]",
|
46
46
|
"id": "5555"
|
47
47
|
},
|
48
48
|
"listBefore": {
|
49
|
-
"name": "Development",
|
49
|
+
"name": "Development [3]",
|
50
50
|
"id": "2222"
|
51
51
|
},
|
52
52
|
"board": {
|
@@ -80,7 +80,7 @@
|
|
80
80
|
"idMemberCreator": "1234",
|
81
81
|
"data": {
|
82
82
|
"listAfter": {
|
83
|
-
"name": "Development",
|
83
|
+
"name": "Development [3]",
|
84
84
|
"id": "2222"
|
85
85
|
},
|
86
86
|
"listBefore": {
|
@@ -123,7 +123,7 @@
|
|
123
123
|
"id": "1234"
|
124
124
|
},
|
125
125
|
"list": {
|
126
|
-
"name": "Product Backlog",
|
126
|
+
"name": "Product Backlog [6]",
|
127
127
|
"id": "1111"
|
128
128
|
},
|
129
129
|
"card": {
|
@@ -8,7 +8,7 @@
|
|
8
8
|
"id": "3333"
|
9
9
|
},
|
10
10
|
"listBefore": {
|
11
|
-
"name": "Acceptance",
|
11
|
+
"name": "Acceptance [3]",
|
12
12
|
"id": "5555"
|
13
13
|
},
|
14
14
|
"board": {
|
@@ -42,11 +42,11 @@
|
|
42
42
|
"idMemberCreator": "1234",
|
43
43
|
"data": {
|
44
44
|
"listAfter": {
|
45
|
-
"name": "Acceptance",
|
45
|
+
"name": "Acceptance [3]",
|
46
46
|
"id": "5555"
|
47
47
|
},
|
48
48
|
"listBefore": {
|
49
|
-
"name": "Development",
|
49
|
+
"name": "Development [2]",
|
50
50
|
"id": "2222"
|
51
51
|
},
|
52
52
|
"board": {
|
@@ -80,7 +80,7 @@
|
|
80
80
|
"idMemberCreator": "1234",
|
81
81
|
"data": {
|
82
82
|
"listAfter": {
|
83
|
-
"name": "Development",
|
83
|
+
"name": "Development [2]",
|
84
84
|
"id": "2222"
|
85
85
|
},
|
86
86
|
"listBefore": {
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe TrelloLeadTime::ArraySearcher do
|
4
|
+
describe "array searcher" do
|
5
|
+
let(:elements) { ["Development [4]", "Acceptance [3]", "Done for 2014-05-05"] }
|
6
|
+
subject { Object.new.extend TrelloLeadTime::ArraySearcher }
|
7
|
+
|
8
|
+
it "should find a name" do
|
9
|
+
expect(subject.find_name_like(elements, "Development")).to eq("Development [4]")
|
10
|
+
end
|
11
|
+
|
12
|
+
it "matches name with expression" do
|
13
|
+
subject.element_matches_expression?("Development [4]", "Development").should be_true
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/trello_lead_time.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trello_lead_time
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Scott Baldwin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-05-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: ruby-trello
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
41
55
|
description: ''
|
42
56
|
email:
|
43
57
|
- scottsbaldwin@gmail.com
|
@@ -56,6 +70,7 @@ files:
|
|
56
70
|
- Rakefile
|
57
71
|
- lib/trello_lead_time.rb
|
58
72
|
- lib/trello_lead_time/action.rb
|
73
|
+
- lib/trello_lead_time/array_searcher.rb
|
59
74
|
- lib/trello_lead_time/board.rb
|
60
75
|
- lib/trello_lead_time/card.rb
|
61
76
|
- lib/trello_lead_time/config.rb
|
@@ -73,6 +88,7 @@ files:
|
|
73
88
|
- spec/fixtures/cards.json
|
74
89
|
- spec/fixtures/lists.json
|
75
90
|
- spec/fixtures/organization.json
|
91
|
+
- spec/lib/trello_lead_time/array_matcher_spec.rb
|
76
92
|
- spec/lib/trello_lead_time/board_spec.rb
|
77
93
|
- spec/lib/trello_lead_time/card_spec.rb
|
78
94
|
- spec/lib/trello_lead_time/config_spec.rb
|
@@ -115,6 +131,7 @@ test_files:
|
|
115
131
|
- spec/fixtures/cards.json
|
116
132
|
- spec/fixtures/lists.json
|
117
133
|
- spec/fixtures/organization.json
|
134
|
+
- spec/lib/trello_lead_time/array_matcher_spec.rb
|
118
135
|
- spec/lib/trello_lead_time/board_spec.rb
|
119
136
|
- spec/lib/trello_lead_time/card_spec.rb
|
120
137
|
- spec/lib/trello_lead_time/config_spec.rb
|