whois_slacking 0.0.5 → 0.0.6
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/Gemfile.lock +4 -2
- data/lib/whois_slacking.rb +2 -2
- data/lib/whois_slacking/version.rb +1 -1
- data/spec/client_spec.rb +43 -26
- data/whois_slacking.gemspec +1 -0
- metadata +15 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1519d96d93e6f93912944e91c3c9d642d946747c
|
4
|
+
data.tar.gz: c2202e378d424d844b65ecd635bfb76e83cf5d4a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 95cc7e0edf3acf1d74c6982b29095d4a82ab7f42fb6191bed97474240e96df022cdcec567b1b9d1eaae8b7fc464f213119adc8db6cd72a5d375173b4bf2b4442
|
7
|
+
data.tar.gz: e924331a002d5c3579bf265a2cc80751f97fc90da8c7890cfee5c35ca00a0fbac12f1c7fe2c79df17148f55207319d504a3604b4305bcc67f496217a1eb21aa7
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
whois_slacking (0.0.
|
4
|
+
whois_slacking (0.0.5)
|
5
5
|
dotenv (~> 2.0.2)
|
6
6
|
moneta (~> 0.8.0)
|
7
7
|
multi_xml (~> 0.5)
|
@@ -117,6 +117,7 @@ GEM
|
|
117
117
|
thread_safe (0.3.5)
|
118
118
|
time_difference (0.4.2)
|
119
119
|
activesupport
|
120
|
+
timecop (0.8.0)
|
120
121
|
typhoeus (0.3.3)
|
121
122
|
mime-types
|
122
123
|
tzinfo (1.2.2)
|
@@ -125,7 +126,7 @@ GEM
|
|
125
126
|
unf_ext
|
126
127
|
unf_ext (0.0.7.1)
|
127
128
|
vcr (2.9.3)
|
128
|
-
websocket-driver (0.6.
|
129
|
+
websocket-driver (0.6.2)
|
129
130
|
websocket-extensions (>= 0.1.0)
|
130
131
|
websocket-extensions (0.1.2)
|
131
132
|
|
@@ -136,5 +137,6 @@ DEPENDENCIES
|
|
136
137
|
byebug
|
137
138
|
guard-rspec (~> 4.2)
|
138
139
|
rspec (~> 2.13)
|
140
|
+
timecop
|
139
141
|
vcr (~> 2.4)
|
140
142
|
whois_slacking!
|
data/lib/whois_slacking.rb
CHANGED
@@ -168,8 +168,8 @@ module WhoIsSlacking
|
|
168
168
|
# keep the created dt and start_dt
|
169
169
|
created_dt = entity_exists[:created_dt]
|
170
170
|
start_dt = entity_exists[:start_dt].to_datetime
|
171
|
-
task_entity[
|
172
|
-
task_entity[
|
171
|
+
task_entity[:created_dt] = created_dt
|
172
|
+
task_entity[:start_dt] = start_dt.to_s
|
173
173
|
puts "start_dt in db will be #{start_dt}"
|
174
174
|
store[mkey] = task_entity
|
175
175
|
|
data/spec/client_spec.rb
CHANGED
@@ -4,6 +4,7 @@ require 'spec_helper'
|
|
4
4
|
require 'moneta'
|
5
5
|
require 'date'
|
6
6
|
require 'byebug'
|
7
|
+
require 'timecop'
|
7
8
|
|
8
9
|
describe "json client" do
|
9
10
|
|
@@ -64,6 +65,21 @@ describe "json client" do
|
|
64
65
|
DateTime.now
|
65
66
|
end
|
66
67
|
|
68
|
+
def direct_save(start_dt = (DateTime.now - 1), cstate = current_state, accepted_date=(DateTime.now - 1) )
|
69
|
+
accepted_at = accepted_at
|
70
|
+
created_dt = DateTime.now.to_s
|
71
|
+
updated_dt = created_dt
|
72
|
+
active = true
|
73
|
+
message = nil
|
74
|
+
task_entity = {project: project, task_id: task_id, task: task, user: user, current_state: cstate, active: active, start_dt: start_dt, created_dt: created_dt, accepted_at: accepted_at, updated_dt: updated_dt}
|
75
|
+
store = WhoIsSlacking::DataTools.whois_store
|
76
|
+
mutex = Moneta::Mutex.new(store, 'moneta')
|
77
|
+
mutex.synchronize do
|
78
|
+
mkey = WhoIsSlacking::DataTools.whois_key(project, task_id, user)
|
79
|
+
store[mkey] = task_entity
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
67
83
|
it "should connect to pivotal" do
|
68
84
|
WhoIsSlacking::Pivotal.connect_to_pivotal
|
69
85
|
expect(PivotalTracker::Client.connection.timeout).to eql ENV["PIVOTAL_TIMEOUT"].to_i
|
@@ -122,20 +138,6 @@ describe "json client" do
|
|
122
138
|
.fetch("message", nil).fetch("text", nil)) .to eql "Today *user delivered* <https://www.pivotaltracker.com/story/show/98984232|task> and it is *waiting to be accepted*"
|
123
139
|
end
|
124
140
|
|
125
|
-
def direct_save(start_dt = (DateTime.now - 1), cstate = current_state)
|
126
|
-
accepted_at = accepted_at
|
127
|
-
created_dt = DateTime.now.to_s
|
128
|
-
updated_dt = created_dt
|
129
|
-
active = true
|
130
|
-
message = nil
|
131
|
-
task_entity = {project: project, task_id: task_id, task: task, user: user, current_state: cstate, active: active, start_dt: start_dt, created_dt: created_dt, accepted_at: accepted_at, updated_dt: updated_dt}
|
132
|
-
store = WhoIsSlacking::DataTools.whois_store
|
133
|
-
mutex = Moneta::Mutex.new(store, 'moneta')
|
134
|
-
mutex.synchronize do
|
135
|
-
mkey = WhoIsSlacking::DataTools.whois_key(project, task_id, user)
|
136
|
-
store[mkey] = task_entity
|
137
|
-
end
|
138
|
-
end
|
139
141
|
|
140
142
|
it "should not post to slack when a finished task exists in pivotal *and* in the db" do
|
141
143
|
accepted_dt = DateTime.now - 1
|
@@ -159,17 +161,32 @@ describe "json client" do
|
|
159
161
|
.fetch("message", nil).fetch("text", nil)) .to eql "*user* has spent *1 days* working on <https://www.pivotaltracker.com/story/show/98984232|task>"
|
160
162
|
end
|
161
163
|
|
162
|
-
it "should post to slack 'xx has spent xx
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
164
|
+
it "should update a completed task and then post to slack 'xx has spent xx days working on xxx' when a non completed task exists in pivotal and in the db" do
|
165
|
+
accepted_dt = DateTime.now - 2 # accepted two days ago
|
166
|
+
Timecop.travel(DateTime.now - 2) do # save for the first time two days ago
|
167
|
+
WhoIsSlacking::DataTools.save_task(project, task_id, task, user, current_state, accepted_dt, url)
|
168
|
+
end
|
169
|
+
Timecop.travel(DateTime.now - 1) do # save again yesterday
|
170
|
+
WhoIsSlacking::DataTools.save_task(project, task_id, task, user, current_state, accepted_dt, url)
|
171
|
+
end
|
172
|
+
Timecop.travel(DateTime.now + 1) do # save again tomorrow
|
173
|
+
# check 2 days from now
|
174
|
+
expect(WhoIsSlacking::DataTools.save_task(project, task_id, task, user, current_state, accepted_dt, url)
|
175
|
+
.fetch("message", nil).fetch("text", nil)) .to eql "*user* has spent *3 days* working on <https://www.pivotaltracker.com/story/show/98984232|task>"
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
179
|
+
it "should post to slack 'xx has spent xx hours working on xxx' when a non completed task exists in pivotal and in the db and the days worked is less than 1" do
|
180
|
+
start_dt = DateTime.now - 0.5
|
181
|
+
direct_save(start_dt)
|
182
|
+
expect(WhoIsSlacking::DataTools.save_task(project, task_id, task, user, current_state, accepted_dt, url)
|
183
|
+
.fetch("message", nil).fetch("text", nil)) .to eql "*user* has spent *less than a day* working on <https://www.pivotaltracker.com/story/show/98984232|task>"
|
184
|
+
end
|
185
|
+
|
186
|
+
it "should run through all tasks for a project, sending a message into slack for each of them" do
|
187
|
+
WhoIsSlacking::Pivotal.connect_to_pivotal
|
188
|
+
project_object = WhoIsSlacking::Pivotal.pivotal_project(project_name)
|
189
|
+
expect(WhoIsSlacking::Start.now.count).to eql WhoIsSlacking::Pivotal.project_stories(project_object).count
|
190
|
+
end
|
174
191
|
end
|
175
192
|
|
data/whois_slacking.gemspec
CHANGED
@@ -24,6 +24,7 @@ Gem::Specification.new do |s|
|
|
24
24
|
s.add_development_dependency 'vcr',["~> 2.4"]
|
25
25
|
s.add_development_dependency 'guard-rspec', ["~> 4.2"]
|
26
26
|
s.add_development_dependency 'byebug'
|
27
|
+
s.add_development_dependency 'timecop'
|
27
28
|
# s.add_development_dependency 'debugger'
|
28
29
|
|
29
30
|
s.add_runtime_dependency "pivotal-tracker", ["~> 0.5.13"]
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: whois_slacking
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- W Watson
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: timecop
|
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'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: pivotal-tracker
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|