trello_lead_time 0.0.1 → 0.1.0

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: a25cde3ef1f75314cce048dcb11f087905d8f9c1
4
- data.tar.gz: 616f613d0eb115cf779a7aff107f88186fd33019
3
+ metadata.gz: ebb46d164441714720302263800024ee5fc651cd
4
+ data.tar.gz: 3105c32a61a10087082469f5e665a397e66d2e26
5
5
  SHA512:
6
- metadata.gz: dd7741923539d8c0b86fd10c95c9cd9858e04ad78a7abab39d6d61f9d740e21d921d5c855ba1f558410490fe9c623968b8ef3efaccaeacae9ce8be042df9bc50
7
- data.tar.gz: 4ba87e3d671cfb5a6ac9324809ad49c9eab3d83dee0d8e51d5c9eb3fa6d958a74283e52a021df63a39b88cafcd865a9b6a335e55dc3a7bf278ccaf649e0da039
6
+ metadata.gz: c58c18473e497d0bd1938b63dd01b6547c649539fc037c363561503b648a05eed5ae825f6b3df255e220a15010d1ff3a04e6c42cca32254b8505e8f30976fd18
7
+ data.tar.gz: b208697cb6bc6e399dc43c6ca2e86f0708940ccca139ec07d60e0e23420ab1adf1643fdc1f593fed2ce94a1e856114458a3d86fa3e97ad5900dae29e849ff8e6
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- trello_lead_time (0.0.1)
4
+ trello_lead_time (0.1.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -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
- if !@_lists.has_key?(name)
51
- trello_list = @trello_board.lists({filter: 'all'}).detect { |l| l.name == name }
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] == 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
@@ -1,3 +1,3 @@
1
1
  module TrelloLeadTime
2
- VERSION = '0.0.1'
2
+ VERSION = '0.1.0'
3
3
  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
@@ -20,4 +20,5 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.5"
22
22
  spec.add_development_dependency "rake"
23
+ spec.add_development_dependency "ruby-trello"
23
24
  end
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.1
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-04-17 00:00:00.000000000 Z
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