leankitkanban 0.1.1 → 0.1.4

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.
data/Gemfile CHANGED
@@ -2,7 +2,7 @@ source :rubygems
2
2
 
3
3
  gem "echoe", '4.6.3'
4
4
  gem "httparty", '0.8.1'
5
- gem "json", '1.6.1'
5
+ gem "json", '1.7.5'
6
6
 
7
7
  group :test do
8
8
  gem 'rspec', '2.7.0'
data/Gemfile.lock CHANGED
@@ -9,16 +9,16 @@ GEM
9
9
  rake (>= 0.9.2)
10
10
  rdoc (>= 3.6.1)
11
11
  rubyforge (>= 2.0.4)
12
- gemcutter (0.7.0)
12
+ gemcutter (0.7.1)
13
13
  httparty (0.8.1)
14
14
  multi_json
15
15
  multi_xml
16
- json (1.6.1)
17
- json_pure (1.6.1)
18
- multi_json (1.0.3)
19
- multi_xml (0.4.1)
20
- rake (0.9.2.2)
21
- rdoc (3.11)
16
+ json (1.7.5)
17
+ json_pure (1.8.0)
18
+ multi_json (1.7.6)
19
+ multi_xml (0.5.4)
20
+ rake (10.0.4)
21
+ rdoc (4.0.1)
22
22
  json (~> 1.4)
23
23
  rspec (2.7.0)
24
24
  rspec-core (~> 2.7.0)
@@ -37,5 +37,5 @@ PLATFORMS
37
37
  DEPENDENCIES
38
38
  echoe (= 4.6.3)
39
39
  httparty (= 0.8.1)
40
- json (= 1.6.1)
40
+ json (= 1.7.5)
41
41
  rspec (= 2.7.0)
data/Manifest CHANGED
@@ -11,6 +11,7 @@ lib/leankitkanban/backlog.rb
11
11
  lib/leankitkanban/board.rb
12
12
  lib/leankitkanban/card.rb
13
13
  lib/leankitkanban/config.rb
14
+ lib/leankitkanban/version.rb
14
15
  spec/leankitkanban/archive_spec.rb
15
16
  spec/leankitkanban/backlog_spec.rb
16
17
  spec/leankitkanban/board_spec.rb
data/README.md CHANGED
@@ -35,6 +35,21 @@ Usage
35
35
  # get a specific card from a board by external id
36
36
  @card = LeanKitKanban::Card.find_by_external_id(board_id, external_id)
37
37
 
38
+ # add a card, specified in JSON, to the board
39
+ @response = LeanKitKanban::Card.add(board_id, lane_id, position, body)
40
+
41
+ # add multiple cards, specified in JSON, to the board
42
+ @response = LeanKitKanban::Card.add_multiple(board_id, comment, cards)
43
+
44
+ # update a card specified in JSON
45
+ @response = LeanKitKanban::Card.update(board_id, body)
46
+
47
+ # delete a card from the board
48
+ @response = LeanKitKanban::Card.delete(board_id, card_id)
49
+
50
+ # delete multiple cards from the board
51
+ @response = LeanKitKanban::Card.delete_multiple(board_id, card_ids)
52
+
38
53
 
39
54
  # get board backlog
40
55
  @backlog = LeanKitKanban::Backlog.fetch(board_id)
data/Rakefile CHANGED
@@ -2,13 +2,13 @@ require 'rubygems'
2
2
  require 'rake'
3
3
  require 'echoe'
4
4
 
5
- Echoe.new('leankitkanban', '0.1.1') do |p|
5
+ Echoe.new('leankitkanban', '0.1.4') do |p|
6
6
  p.description = "Ruby Wrapper around LeanKitKanban Api"
7
7
  p.url = "http://github.com/mlainez/leankitkanban"
8
8
  p.author = "Marc Lainez"
9
9
  p.email = "ml@theotherguys.be"
10
10
  p.ignore_pattern = ["tmp/*", "script/*"]
11
- p.runtime_dependencies = ['json =1.6.1', 'httparty =0.8.1']
11
+ p.runtime_dependencies = ['json >=1.6.1', 'httparty =0.8.1']
12
12
  p.development_dependencies = ['echoe =4.6.3', 'rspec =2.7.0']
13
13
  end
14
14
 
@@ -1,39 +1,39 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
 
3
3
  Gem::Specification.new do |s|
4
- s.name = %q{leankitkanban}
5
- s.version = "0.1.1"
4
+ s.name = "leankitkanban"
5
+ s.version = "0.1.4"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
- s.authors = [%q{Marc Lainez}]
9
- s.date = %q{2011-10-30}
10
- s.description = %q{Ruby Wrapper around LeanKitKanban Api}
11
- s.email = %q{ml@theotherguys.be}
12
- s.extra_rdoc_files = [%q{LICENSE}, %q{README.md}, %q{lib/leankit_request.rb}, %q{lib/leankitkanban.rb}, %q{lib/leankitkanban/archive.rb}, %q{lib/leankitkanban/backlog.rb}, %q{lib/leankitkanban/board.rb}, %q{lib/leankitkanban/card.rb}, %q{lib/leankitkanban/config.rb}]
13
- s.files = [%q{Gemfile}, %q{Gemfile.lock}, %q{LICENSE}, %q{Manifest}, %q{README.md}, %q{Rakefile}, %q{lib/leankit_request.rb}, %q{lib/leankitkanban.rb}, %q{lib/leankitkanban/archive.rb}, %q{lib/leankitkanban/backlog.rb}, %q{lib/leankitkanban/board.rb}, %q{lib/leankitkanban/card.rb}, %q{lib/leankitkanban/config.rb}, %q{spec/leankitkanban/archive_spec.rb}, %q{spec/leankitkanban/backlog_spec.rb}, %q{spec/leankitkanban/board_spec.rb}, %q{spec/leankitkanban/card_spec.rb}, %q{spec/leankitkanban/config_spec.rb}, %q{spec/spec_helper.rb}, %q{spec/support/config_helper.rb}, %q{leankitkanban.gemspec}]
14
- s.homepage = %q{http://github.com/mlainez/leankitkanban}
15
- s.rdoc_options = [%q{--line-numbers}, %q{--inline-source}, %q{--title}, %q{Leankitkanban}, %q{--main}, %q{README.md}]
16
- s.require_paths = [%q{lib}]
17
- s.rubyforge_project = %q{leankitkanban}
18
- s.rubygems_version = %q{1.8.4}
19
- s.summary = %q{Ruby Wrapper around LeanKitKanban Api}
8
+ s.authors = ["Marc Lainez"]
9
+ s.date = "2013-06-11"
10
+ s.description = "Ruby Wrapper around LeanKitKanban Api"
11
+ s.email = "ml@theotherguys.be"
12
+ s.extra_rdoc_files = ["LICENSE", "README.md", "lib/leankit_request.rb", "lib/leankitkanban.rb", "lib/leankitkanban/archive.rb", "lib/leankitkanban/backlog.rb", "lib/leankitkanban/board.rb", "lib/leankitkanban/card.rb", "lib/leankitkanban/config.rb", "lib/leankitkanban/version.rb"]
13
+ s.files = ["Gemfile", "Gemfile.lock", "LICENSE", "Manifest", "README.md", "Rakefile", "lib/leankit_request.rb", "lib/leankitkanban.rb", "lib/leankitkanban/archive.rb", "lib/leankitkanban/backlog.rb", "lib/leankitkanban/board.rb", "lib/leankitkanban/card.rb", "lib/leankitkanban/config.rb", "lib/leankitkanban/version.rb", "spec/leankitkanban/archive_spec.rb", "spec/leankitkanban/backlog_spec.rb", "spec/leankitkanban/board_spec.rb", "spec/leankitkanban/card_spec.rb", "spec/leankitkanban/config_spec.rb", "spec/spec_helper.rb", "spec/support/config_helper.rb", "leankitkanban.gemspec"]
14
+ s.homepage = "http://github.com/mlainez/leankitkanban"
15
+ s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Leankitkanban", "--main", "README.md"]
16
+ s.require_paths = ["lib"]
17
+ s.rubyforge_project = "leankitkanban"
18
+ s.rubygems_version = "1.8.24"
19
+ s.summary = "Ruby Wrapper around LeanKitKanban Api"
20
20
 
21
21
  if s.respond_to? :specification_version then
22
22
  s.specification_version = 3
23
23
 
24
24
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
25
- s.add_runtime_dependency(%q<json>, ["= 1.6.1"])
25
+ s.add_runtime_dependency(%q<json>, [">= 1.6.1"])
26
26
  s.add_runtime_dependency(%q<httparty>, ["= 0.8.1"])
27
27
  s.add_development_dependency(%q<echoe>, ["= 4.6.3"])
28
28
  s.add_development_dependency(%q<rspec>, ["= 2.7.0"])
29
29
  else
30
- s.add_dependency(%q<json>, ["= 1.6.1"])
30
+ s.add_dependency(%q<json>, [">= 1.6.1"])
31
31
  s.add_dependency(%q<httparty>, ["= 0.8.1"])
32
32
  s.add_dependency(%q<echoe>, ["= 4.6.3"])
33
33
  s.add_dependency(%q<rspec>, ["= 2.7.0"])
34
34
  end
35
35
  else
36
- s.add_dependency(%q<json>, ["= 1.6.1"])
36
+ s.add_dependency(%q<json>, [">= 1.6.1"])
37
37
  s.add_dependency(%q<httparty>, ["= 0.8.1"])
38
38
  s.add_dependency(%q<echoe>, ["= 4.6.3"])
39
39
  s.add_dependency(%q<rspec>, ["= 2.7.0"])
@@ -13,8 +13,17 @@ module LeanKitRequest
13
13
  parse_body(response.body)
14
14
  end
15
15
 
16
+ def post(api_call, body)
17
+ url = "#{LeanKitKanban::Config.uri}#{api_call}"
18
+ headers("Content-Type" => "application/json")
19
+ request = LeanKitKanban::Config.basic_auth_hash
20
+ request[:body] = body.to_json
21
+ response = super(url, request)
22
+ parse_body(response.body)
23
+ end
24
+
16
25
  def parse_body(body)
17
- json_data = JSON.parse body
26
+ json_data = JSON.parse(body)
18
27
  json_data[REPLY_DATA_KEY]
19
28
  end
20
29
  end
@@ -3,8 +3,23 @@ module LeanKitKanban
3
3
  include HTTParty
4
4
  include LeanKitRequest
5
5
 
6
+ DELETE_CARD = "/Board/{boardID}/DeleteCard/{cardID}"
7
+ DELETE_CARDS = "/Board/{boardID}/DeleteCards"
6
8
  FIND_CARD = "/Board/{boardID}/GetCard/{cardID}"
7
9
  FIND_CARD_EXT = "/Board/{boardID}/GetCardByExternalId/{externalID}"
10
+ ADD_CARD = "/Board/{boardID}/AddCard/Lane/{laneID}/Position/{position}"
11
+ ADD_CARDS = "/Board/{boardID}/AddCards?wipOverrideComment={comment}"
12
+ UPDATE_CARD = "/Board/{boardID}/UpdateCard/"
13
+
14
+ def self.delete(board_id, card_id)
15
+ api_call = DELETE_CARD.gsub("{boardID}", board_id.to_s).gsub("{cardID}", card_id.to_s)
16
+ post(api_call, {})
17
+ end
18
+
19
+ def self.delete_multiple(board_id, card_ids)
20
+ api_call = DELETE_CARDS.gsub("{boardID}", board_id.to_s)
21
+ post(api_call, card_ids)
22
+ end
8
23
 
9
24
  def self.find(board_id, card_id)
10
25
  api_call = FIND_CARD.gsub("{boardID}", board_id.to_s).gsub("{cardID}", card_id.to_s)
@@ -15,5 +30,20 @@ module LeanKitKanban
15
30
  api_call = FIND_CARD_EXT.gsub("{boardID}", board_id.to_s).gsub("{externalID}", external_id.to_s)
16
31
  get(api_call)
17
32
  end
33
+
34
+ def self.add(board_id, lane_id, position, body)
35
+ api_call = ADD_CARD.gsub("{boardID}", board_id.to_s).gsub("{laneID}", lane_id.to_s).gsub("{position}", position.to_s)
36
+ post(api_call, body)
37
+ end
38
+
39
+ def self.add_multiple(board_id, comment, cards)
40
+ api_call = ADD_CARDS.gsub("{boardID}", board_id.to_s).gsub("{comment}", URI::encode(comment))
41
+ post(api_call, cards)
42
+ end
43
+
44
+ def self.update(board_id, body)
45
+ api_call = UPDATE_CARD.gsub("{boardID}", board_id.to_s)
46
+ post(api_call, body)
47
+ end
18
48
  end
19
49
  end
@@ -0,0 +1,3 @@
1
+ module LeanKitKanban
2
+ VERSION = "0.0.1"
3
+ end
@@ -26,4 +26,80 @@ describe LeanKitKanban::Card do
26
26
  LeanKitKanban::Card.find_by_external_id(@board_id, @external_id)
27
27
  end
28
28
  end
29
+
30
+ describe :delete_multiple do
31
+ before :each do
32
+ @board_id = mock("boardID")
33
+ @card_ids = [ mock("cardID_0"), mock("cardID_1"), mock("cardID_2") ]
34
+ end
35
+
36
+ it "deletes the card whose ids are passed" do
37
+ api_call = "/Board/#{@board_id}/DeleteCards"
38
+ LeanKitKanban::Card.should_receive(:post).with(api_call, @card_ids)
39
+ LeanKitKanban::Card.delete_multiple(@board_id, @card_ids)
40
+ end
41
+ end
42
+
43
+ describe :delete do
44
+ before :each do
45
+ @board_id = mock("boardID")
46
+ @card_id = mock("cardID")
47
+ end
48
+
49
+ it "deletes the board card whose id is passed" do
50
+ api_call = "/Board/#{@board_id}/DeleteCard/#{@card_id}"
51
+ LeanKitKanban::Card.should_receive(:post).with(api_call, {})
52
+ LeanKitKanban::Card.delete(@board_id, @card_id)
53
+ end
54
+ end
55
+
56
+ describe :add do
57
+ before :each do
58
+ @board_id = mock("boardID")
59
+ @lane_id = mock("laneID")
60
+ @position = mock("position")
61
+ @body = { "Title" => mock("title"), "TypeId" => mock("typeID")}
62
+ end
63
+
64
+ it "adds the card into the lane and position provided" do
65
+ api_call = "/Board/#{@board_id}/AddCard/Lane/#{@lane_id}/Position/#{@position}"
66
+ LeanKitKanban::Card.should_receive(:post).with(api_call, @body)
67
+ LeanKitKanban::Card.add(@board_id, @lane_id, @position, @body)
68
+ end
69
+ end
70
+
71
+ describe :update do
72
+ before :each do
73
+ @board_id = mock("boardID")
74
+ @body = { "Id" => mock("Id"), "Title" => mock("title"), "Description" => mock("description") }
75
+ end
76
+
77
+ it "updates the card using the title and description provided" do
78
+ api_call = "/Board/#{@board_id}/UpdateCard/"
79
+ LeanKitKanban::Card.should_receive(:post).with(api_call, @body)
80
+ LeanKitKanban::Card.update(@board_id, @body)
81
+ end
82
+ end
83
+
84
+ describe :add_multiple do
85
+ before :each do
86
+ @cards = []
87
+ @board_id = mock("boardID")
88
+ @wip_comment = "this is a comment"
89
+
90
+ lane_ids = [ mock("lane_0"), mock("lane_1") ]
91
+ titles = [ mock("title_0"), mock("title_1") ]
92
+ type_ids = [ mock("type_0"), mock("type_1") ]
93
+
94
+ lane_ids.each_with_index { |item, i|
95
+ @cards[i] = { "LaneId" => lane_ids[i], "Title" => titles[i], "TypeId" => type_ids[i] }
96
+ }
97
+ end
98
+
99
+ it "adds the cards into the lanes and positions provided" do
100
+ api_call = "/Board/#{@board_id}/AddCards?wipOverrideComment=" + URI::encode(@wip_comment)
101
+ LeanKitKanban::Card.should_receive(:post).with(api_call, @cards)
102
+ LeanKitKanban::Card.add_multiple(@board_id, @wip_comment, @cards)
103
+ end
104
+ end
29
105
  end
metadata CHANGED
@@ -1,68 +1,85 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: leankitkanban
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.4
4
5
  prerelease:
5
- version: 0.1.1
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Marc Lainez
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-10-30 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2013-06-11 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
16
15
  name: json
17
- prerelease: false
18
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
19
17
  none: false
20
- requirements:
21
- - - "="
22
- - !ruby/object:Gem::Version
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
23
21
  version: 1.6.1
24
22
  type: :runtime
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
27
- name: httparty
28
23
  prerelease: false
29
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 1.6.1
30
+ - !ruby/object:Gem::Dependency
31
+ name: httparty
32
+ requirement: !ruby/object:Gem::Requirement
30
33
  none: false
31
- requirements:
32
- - - "="
33
- - !ruby/object:Gem::Version
34
+ requirements:
35
+ - - '='
36
+ - !ruby/object:Gem::Version
34
37
  version: 0.8.1
35
38
  type: :runtime
36
- version_requirements: *id002
37
- - !ruby/object:Gem::Dependency
38
- name: echoe
39
39
  prerelease: false
40
- requirement: &id003 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - '='
44
+ - !ruby/object:Gem::Version
45
+ version: 0.8.1
46
+ - !ruby/object:Gem::Dependency
47
+ name: echoe
48
+ requirement: !ruby/object:Gem::Requirement
41
49
  none: false
42
- requirements:
43
- - - "="
44
- - !ruby/object:Gem::Version
50
+ requirements:
51
+ - - '='
52
+ - !ruby/object:Gem::Version
45
53
  version: 4.6.3
46
54
  type: :development
47
- version_requirements: *id003
48
- - !ruby/object:Gem::Dependency
49
- name: rspec
50
55
  prerelease: false
51
- requirement: &id004 !ruby/object:Gem::Requirement
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
61
+ version: 4.6.3
62
+ - !ruby/object:Gem::Dependency
63
+ name: rspec
64
+ requirement: !ruby/object:Gem::Requirement
52
65
  none: false
53
- requirements:
54
- - - "="
55
- - !ruby/object:Gem::Version
66
+ requirements:
67
+ - - '='
68
+ - !ruby/object:Gem::Version
56
69
  version: 2.7.0
57
70
  type: :development
58
- version_requirements: *id004
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - '='
76
+ - !ruby/object:Gem::Version
77
+ version: 2.7.0
59
78
  description: Ruby Wrapper around LeanKitKanban Api
60
79
  email: ml@theotherguys.be
61
80
  executables: []
62
-
63
81
  extensions: []
64
-
65
- extra_rdoc_files:
82
+ extra_rdoc_files:
66
83
  - LICENSE
67
84
  - README.md
68
85
  - lib/leankit_request.rb
@@ -72,7 +89,8 @@ extra_rdoc_files:
72
89
  - lib/leankitkanban/board.rb
73
90
  - lib/leankitkanban/card.rb
74
91
  - lib/leankitkanban/config.rb
75
- files:
92
+ - lib/leankitkanban/version.rb
93
+ files:
76
94
  - Gemfile
77
95
  - Gemfile.lock
78
96
  - LICENSE
@@ -86,6 +104,7 @@ files:
86
104
  - lib/leankitkanban/board.rb
87
105
  - lib/leankitkanban/card.rb
88
106
  - lib/leankitkanban/config.rb
107
+ - lib/leankitkanban/version.rb
89
108
  - spec/leankitkanban/archive_spec.rb
90
109
  - spec/leankitkanban/backlog_spec.rb
91
110
  - spec/leankitkanban/board_spec.rb
@@ -96,35 +115,32 @@ files:
96
115
  - leankitkanban.gemspec
97
116
  homepage: http://github.com/mlainez/leankitkanban
98
117
  licenses: []
99
-
100
118
  post_install_message:
101
- rdoc_options:
119
+ rdoc_options:
102
120
  - --line-numbers
103
121
  - --inline-source
104
122
  - --title
105
123
  - Leankitkanban
106
124
  - --main
107
125
  - README.md
108
- require_paths:
126
+ require_paths:
109
127
  - lib
110
- required_ruby_version: !ruby/object:Gem::Requirement
128
+ required_ruby_version: !ruby/object:Gem::Requirement
111
129
  none: false
112
- requirements:
113
- - - ">="
114
- - !ruby/object:Gem::Version
115
- version: "0"
116
- required_rubygems_version: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ required_rubygems_version: !ruby/object:Gem::Requirement
117
135
  none: false
118
- requirements:
119
- - - ">="
120
- - !ruby/object:Gem::Version
121
- version: "1.2"
136
+ requirements:
137
+ - - ! '>='
138
+ - !ruby/object:Gem::Version
139
+ version: '1.2'
122
140
  requirements: []
123
-
124
141
  rubyforge_project: leankitkanban
125
- rubygems_version: 1.8.4
142
+ rubygems_version: 1.8.24
126
143
  signing_key:
127
144
  specification_version: 3
128
145
  summary: Ruby Wrapper around LeanKitKanban Api
129
146
  test_files: []
130
-