Standupguy 0.0.8 → 0.0.9
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 +4 -4
- data/.rubocop.yml +4 -0
- data/.semver +1 -1
- data/Standupguy.gemspec +0 -1
- data/lib/Standupguy.rb +25 -3
- data/lib/Standupguy/version.rb +1 -1
- data/spec/item_spec.rb +60 -20
- metadata +3 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d89d88926c7b160d56688692aace3e91aad9185b
|
4
|
+
data.tar.gz: 7e357661c32ebb99e0556c0769e95dd4e09e98d3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dc19f6bb20eae4f7cb5a6e9e6e6e9318346fffcd8432b871d82acad48c58c4f9e7634d240ec51565241b9efb8aab8de6339c58f6787adabfceae53a29f8516fc
|
7
|
+
data.tar.gz: ccfce4d5eed8e03a15fc577d8225d53821f0a3f63c7091f261c969072e970b64b6b1c07b9c6409a41aaa27c2ca1d2b88f4e3b25dc3364ce7d798fa8969199d8a
|
data/.rubocop.yml
ADDED
data/.semver
CHANGED
data/Standupguy.gemspec
CHANGED
@@ -22,7 +22,6 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_development_dependency "rake", "~> 10.0"
|
23
23
|
spec.add_development_dependency "byebug"
|
24
24
|
spec.add_development_dependency "rspec"
|
25
|
-
spec.add_development_dependency "rspec-nc"
|
26
25
|
spec.add_development_dependency "guard"
|
27
26
|
spec.add_development_dependency "guard-rspec"
|
28
27
|
spec.add_development_dependency "semver"
|
data/lib/Standupguy.rb
CHANGED
@@ -176,25 +176,47 @@ module Standupguy
|
|
176
176
|
attr_accessor :data
|
177
177
|
|
178
178
|
def method_missing(method, *args)
|
179
|
-
|
179
|
+
method_list = [:description=, :name=, :date=, :ticket_id=]
|
180
|
+
return unless method_list.include?(method)
|
180
181
|
method = method.to_s.chop.to_sym
|
181
182
|
@data[method] = args.first
|
182
183
|
end
|
183
184
|
|
185
|
+
def continue?
|
186
|
+
puts <<-EOS
|
187
|
+
This ticket has already been added. Do you want to continue adding it? (y/N)
|
188
|
+
EOS
|
189
|
+
STDIN.gets.downcase.chomp[0] == "y"
|
190
|
+
end
|
191
|
+
|
184
192
|
def save
|
185
193
|
current_standup = load_data
|
186
194
|
current_standup ||= { date_key => [] }
|
187
195
|
data_exists = current_standup.keys.include?(date_key)
|
188
|
-
|
196
|
+
begin
|
197
|
+
if data_exists && !!@data[:ticket_id]
|
198
|
+
ticket_list = current_standup[date_key]
|
199
|
+
ticket_list.map! { |item| item["ticket_id"] }
|
200
|
+
unless ticket_list.empty?
|
201
|
+
already_added = ticket_list.include?(@data[:ticket_id])
|
202
|
+
raise "Already added" if already_added
|
203
|
+
end
|
204
|
+
end
|
205
|
+
rescue RuntimeError
|
206
|
+
return unless continue?
|
207
|
+
end
|
208
|
+
|
209
|
+
current_standup[date_key] ||= []
|
189
210
|
current_standup[date_key] << @data
|
190
211
|
write_data(current_standup)
|
191
212
|
end
|
192
213
|
|
193
214
|
def add_to_today(item)
|
194
|
-
@data ||= { description: "",
|
215
|
+
@data ||= { description: "", date: "", ticket_id: false }
|
195
216
|
ticket = TicketUrl.new(item)
|
196
217
|
if ticket.valid?
|
197
218
|
zendesk_ticket = client(ticket.subdomain).tickets.find(id: ticket.id)
|
219
|
+
self.ticket_id = item
|
198
220
|
self.description = "#{item} => (#{zendesk_ticket.subject})"
|
199
221
|
else
|
200
222
|
self.description = item
|
data/lib/Standupguy/version.rb
CHANGED
data/spec/item_spec.rb
CHANGED
@@ -2,43 +2,83 @@ require "spec_helper"
|
|
2
2
|
require_relative "../lib/Standupguy"
|
3
3
|
|
4
4
|
describe Standupguy::Item do
|
5
|
+
before { @datafile = create_test_file! }
|
5
6
|
describe "#add_to_today" do
|
6
|
-
|
7
|
-
|
8
|
-
context "for zendesk tickets" do
|
7
|
+
describe "for zendesk tickets" do
|
9
8
|
before do
|
9
|
+
@item = Standupguy::Item.new
|
10
10
|
expect_zendesk("foo", "api/v2/tickets/1").
|
11
11
|
to_return(headers: {"Content-Type" => "application/json"}, body: JSON.dump("ticket" => {"subject" => "test ticket"}))
|
12
|
-
item.add_to_today("https://foo.zendesk.com/tickets/1")
|
12
|
+
@item.add_to_today("https://foo.zendesk.com/tickets/1")
|
13
13
|
end
|
14
14
|
|
15
15
|
it "includes the ticket subject in the description" do
|
16
|
-
expect(item.data[:description]).to match(/test ticket/)
|
16
|
+
expect(@item.data[:description]).to match(/test ticket/)
|
17
17
|
end
|
18
18
|
|
19
19
|
it "includes the original url" do
|
20
|
-
expect(item.data[:description]).to match(/foo.zendesk.com\/tickets\/1/)
|
20
|
+
expect(@item.data[:description]).to match(/foo.zendesk.com\/tickets\/1/)
|
21
|
+
end
|
22
|
+
|
23
|
+
it "includes the ticket_id" do
|
24
|
+
expect(@item.data[:ticket_id]).to eq("https://foo.zendesk.com/tickets/1")
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "adding the same ticket again" do
|
28
|
+
subject { Standupguy::Item.new }
|
29
|
+
|
30
|
+
before do
|
31
|
+
@item.save
|
32
|
+
expect_zendesk("foo", "api/v2/tickets/1").
|
33
|
+
to_return(headers: {"Content-Type" => "application/json"}, body: JSON.dump("ticket" => {"subject" => "test ticket"}))
|
34
|
+
end
|
35
|
+
|
36
|
+
describe "choosing to continue" do
|
37
|
+
it "adds the item" do
|
38
|
+
Standupguy::Item.any_instance.expects(:continue?).returns(true)
|
39
|
+
subject.add_to_today("https://foo.zendesk.com/tickets/1")
|
40
|
+
subject.save
|
41
|
+
expect(JSON.load(@datafile.read)[key].size).to eq(2)
|
42
|
+
end
|
43
|
+
|
44
|
+
describe "#continue?" do
|
45
|
+
it "outputs" do
|
46
|
+
STDIN.expects(:gets).returns("y")
|
47
|
+
expect do
|
48
|
+
subject.add_to_today("https://foo.zendesk.com/tickets/1")
|
49
|
+
subject.save
|
50
|
+
end.to output.to_stdout
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
describe "choosing not to continue" do
|
56
|
+
it "does not add the item" do
|
57
|
+
Standupguy::Item.any_instance.expects(:continue?).returns(false)
|
58
|
+
subject.add_to_today("https://foo.zendesk.com/tickets/1")
|
59
|
+
subject.save
|
60
|
+
expect(JSON.load(@datafile.read)[key].size).to eq(1)
|
61
|
+
end
|
62
|
+
end
|
21
63
|
end
|
22
64
|
end
|
23
65
|
|
24
|
-
|
66
|
+
describe "for non-zendesk tickets" do
|
67
|
+
subject{ Standupguy::Item.new }
|
68
|
+
|
25
69
|
it "takes an item" do
|
26
|
-
|
27
|
-
expect(
|
28
|
-
expect(
|
29
|
-
expect(
|
70
|
+
subject.add_to_today("foob")
|
71
|
+
expect(subject.data[:description]).to match(/foob/)
|
72
|
+
expect(subject.data[:name]).to match(`whoami`.chop)
|
73
|
+
expect(subject.data[:date]).to match(key)
|
30
74
|
end
|
31
75
|
end
|
32
76
|
end
|
33
77
|
|
34
78
|
describe "#save" do
|
35
|
-
before do
|
36
|
-
@datafile = create_test_file!
|
37
|
-
end
|
38
|
-
|
39
79
|
subject(:item) do
|
40
80
|
test_item = Standupguy::Item.new
|
41
|
-
test_item.add_to_today("foo")
|
81
|
+
test_item.add_to_today("foo bazzyle")
|
42
82
|
test_item
|
43
83
|
end
|
44
84
|
|
@@ -46,10 +86,10 @@ describe Standupguy::Item do
|
|
46
86
|
item.save
|
47
87
|
expect_datafile(@datafile, %r{foo})
|
48
88
|
end
|
89
|
+
end
|
49
90
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
end
|
91
|
+
after do
|
92
|
+
@datafile.close
|
93
|
+
@datafile.unlink
|
54
94
|
end
|
55
95
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: Standupguy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Panzer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-02-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -66,20 +66,6 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: rspec-nc
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
70
|
name: guard
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -217,6 +203,7 @@ files:
|
|
217
203
|
- ".coveralls.yml"
|
218
204
|
- ".gitignore"
|
219
205
|
- ".hound.yml"
|
206
|
+
- ".rubocop.yml"
|
220
207
|
- ".semver"
|
221
208
|
- ".travis.yml"
|
222
209
|
- Gemfile
|