stand 0.0.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ada5f35baff401668f87f31f92f91b1770e9dbef
4
+ data.tar.gz: 681319591617aeba132531ad2d88eeb30d5e2d76
5
+ SHA512:
6
+ metadata.gz: b6b90e3df446ad7b4b536b552c455dfa42736c2576c1ec40dde224b5cf68b59573e08e64d27a8cec1fd8bf923a294f7c6173faa73e45857e682158e1075648e7
7
+ data.tar.gz: b1a74aacda57b791b7510f995418bf263d279695ac4ff7114feb225d8025cbcb71bc3c93be31321f855202175a79cbb9739991978e2b51d1444c780900e3c6ab
data/.gitignore ADDED
@@ -0,0 +1,2 @@
1
+ standup.yml
2
+ *.gem
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,168 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ standup (0.0.1)
5
+ activesupport
6
+ easy_app_helper
7
+ gitlab
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ activesupport (5.0.1)
13
+ concurrent-ruby (~> 1.0, >= 1.0.2)
14
+ i18n (~> 0.7)
15
+ minitest (~> 5.1)
16
+ tzinfo (~> 1.1)
17
+ addressable (2.5.0)
18
+ public_suffix (~> 2.0, >= 2.0.2)
19
+ ast (2.3.0)
20
+ builder (3.2.3)
21
+ ci_reporter (2.0.0)
22
+ builder (>= 2.1.2)
23
+ ci_reporter_rspec (1.0.0)
24
+ ci_reporter (~> 2.0)
25
+ rspec (>= 2.14, < 4)
26
+ coderay (1.1.1)
27
+ concurrent-ruby (1.0.4)
28
+ crack (0.4.3)
29
+ safe_yaml (~> 1.0.0)
30
+ deep_merge (1.1.1)
31
+ diff-lcs (1.3)
32
+ docile (1.1.5)
33
+ easy_app_helper (4.2.3)
34
+ activesupport
35
+ stacked_config (~> 2.0.0)
36
+ ffi (1.9.17)
37
+ formatador (0.2.5)
38
+ gitlab (3.7.0)
39
+ httparty (~> 0.13.0)
40
+ terminal-table
41
+ guard (2.14.1)
42
+ formatador (>= 0.2.4)
43
+ listen (>= 2.7, < 4.0)
44
+ lumberjack (~> 1.0)
45
+ nenv (~> 0.1)
46
+ notiffany (~> 0.0)
47
+ pry (>= 0.9.12)
48
+ shellany (~> 0.0)
49
+ thor (>= 0.18.1)
50
+ guard-compat (1.2.1)
51
+ guard-rspec (4.7.3)
52
+ guard (~> 2.1)
53
+ guard-compat (~> 1.1)
54
+ rspec (>= 2.99.0, < 4.0)
55
+ guard-rubocop (1.2.0)
56
+ guard (~> 2.0)
57
+ rubocop (~> 0.20)
58
+ hashdiff (0.3.2)
59
+ httparty (0.13.7)
60
+ json (~> 1.8)
61
+ multi_xml (>= 0.5.2)
62
+ i18n (0.8.0)
63
+ json (1.8.6)
64
+ listen (3.1.5)
65
+ rb-fsevent (~> 0.9, >= 0.9.4)
66
+ rb-inotify (~> 0.9, >= 0.9.7)
67
+ ruby_dep (~> 1.2)
68
+ lumberjack (1.0.11)
69
+ method_source (0.8.2)
70
+ minitest (5.10.1)
71
+ multi_xml (0.6.0)
72
+ nenv (0.3.0)
73
+ notiffany (0.1.1)
74
+ nenv (~> 0.1)
75
+ shellany (~> 0.0)
76
+ parser (2.4.0.0)
77
+ ast (~> 2.2)
78
+ powerpack (0.1.1)
79
+ pry (0.10.4)
80
+ coderay (~> 1.1.0)
81
+ method_source (~> 0.8.1)
82
+ slop (~> 3.4)
83
+ psych (2.0.8)
84
+ public_suffix (2.0.5)
85
+ rack (2.0.1)
86
+ rack-test (0.6.3)
87
+ rack (>= 1.0)
88
+ rainbow (2.2.1)
89
+ rake (12.0.0)
90
+ rb-fsevent (0.9.8)
91
+ rb-inotify (0.9.8)
92
+ ffi (>= 0.5.0)
93
+ rspec (3.5.0)
94
+ rspec-core (~> 3.5.0)
95
+ rspec-expectations (~> 3.5.0)
96
+ rspec-mocks (~> 3.5.0)
97
+ rspec-core (3.5.4)
98
+ rspec-support (~> 3.5.0)
99
+ rspec-expectations (3.5.0)
100
+ diff-lcs (>= 1.2.0, < 2.0)
101
+ rspec-support (~> 3.5.0)
102
+ rspec-its (1.2.0)
103
+ rspec-core (>= 3.0.0)
104
+ rspec-expectations (>= 3.0.0)
105
+ rspec-mocks (3.5.0)
106
+ diff-lcs (>= 1.2.0, < 2.0)
107
+ rspec-support (~> 3.5.0)
108
+ rspec-support (3.5.0)
109
+ rubocop (0.47.1)
110
+ parser (>= 2.3.3.1, < 3.0)
111
+ powerpack (~> 0.1)
112
+ rainbow (>= 1.99.1, < 3.0)
113
+ ruby-progressbar (~> 1.7)
114
+ unicode-display_width (~> 1.0, >= 1.0.1)
115
+ ruby-progressbar (1.8.1)
116
+ ruby_dep (1.5.0)
117
+ safe_yaml (1.0.4)
118
+ shellany (0.0.1)
119
+ simplecov (0.13.0)
120
+ docile (~> 1.1.0)
121
+ json (>= 1.8, < 3)
122
+ simplecov-html (~> 0.10.0)
123
+ simplecov-html (0.10.0)
124
+ simplecov-rcov (0.2.3)
125
+ simplecov (>= 0.4.1)
126
+ slop (3.6.0)
127
+ stacked_config (2.0.1)
128
+ slop (~> 3.0)
129
+ super_stack (~> 1.0)
130
+ super_stack (1.0.2)
131
+ deep_merge
132
+ psych (= 2.0.8)
133
+ terminal-table (1.7.3)
134
+ unicode-display_width (~> 1.1.1)
135
+ thor (0.19.4)
136
+ thread_safe (0.3.5)
137
+ timecop (0.8.1)
138
+ tzinfo (1.2.2)
139
+ thread_safe (~> 0.1)
140
+ unicode-display_width (1.1.3)
141
+ webmock (2.3.2)
142
+ addressable (>= 2.3.6)
143
+ crack (>= 0.3.2)
144
+ hashdiff
145
+
146
+ PLATFORMS
147
+ ruby
148
+
149
+ DEPENDENCIES
150
+ ci_reporter
151
+ ci_reporter_rspec
152
+ guard
153
+ guard-rspec
154
+ guard-rubocop
155
+ pry
156
+ rack-test
157
+ rake
158
+ rspec
159
+ rspec-its
160
+ rubocop
161
+ simplecov
162
+ simplecov-rcov
163
+ standup!
164
+ timecop
165
+ webmock
166
+
167
+ BUNDLED WITH
168
+ 1.13.7
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License
2
+
3
+ Copyright (c) 2017 Capitaine Train SAS. https://www.trainline.eu/
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,34 @@
1
+ # Standup
2
+
3
+ This gem is a simple binary to help you generate reports of your work.
4
+
5
+ # Usage
6
+
7
+ Simply,
8
+
9
+ gem install standup
10
+
11
+ And you are good to go via
12
+
13
+ > standup --username <gitlab_username>
14
+ ----- DONE -----
15
+ A Merge Request title 1 (project_name1)
16
+ A Merge request title 2 (project_name2)
17
+ ----------------
18
+
19
+ --- REVIEWED ---
20
+ A reviewed merge request title 1 (project_name2)
21
+ ----------------
22
+
23
+ Forgot a standup two days ago? Just
24
+
25
+ standup --from 2017-02-01 --to 2017-02-02 --username <gitlab_username>
26
+
27
+
28
+ # Integrations
29
+
30
+ For now, only Gitlab's API.
31
+
32
+ # License
33
+
34
+ MIT Licensed © Capitaine Train SAS
data/bin/standup ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ require 'standup'
3
+
4
+ Standup::App.new.run
@@ -0,0 +1,38 @@
1
+ require 'easy_app_helper'
2
+
3
+ require 'standup/config_parser'
4
+ require 'standup/report_generator'
5
+
6
+ module Standup
7
+ class App
8
+ include EasyAppHelper
9
+
10
+ VERSION = '0.0.1'
11
+ NAME = 'Auto Standup'
12
+ DESCRIPTION = 'Fetchs data from gitlab to report what you have done'
13
+
14
+ def initialize
15
+ config.config_file_base_name = 'standup'
16
+ config.describes_application app_name: NAME,
17
+ app_version: VERSION,
18
+ app_description: DESCRIPTION
19
+ add_script_options
20
+ end
21
+
22
+ def add_script_options
23
+ config.add_command_line_section('Application Options') do |s|
24
+ s.on :from, 'From specific day', argument: true
25
+ s.on :to, 'To specific day', argument: true
26
+ s.on :username, 'Username', argument: true
27
+ end
28
+ end
29
+
30
+ def run
31
+ settings = ConfigParser.new(config)
32
+
33
+ ReportGenerator.new(settings).gitlab_report!
34
+ end
35
+ end
36
+ end
37
+
38
+ Standup::App.new.run
@@ -0,0 +1,56 @@
1
+ module Standup
2
+ class ConfigParser
3
+
4
+ attr_reader :to_date, :from_date, :config
5
+
6
+ def initialize(config)
7
+ @config = config
8
+
9
+ help_needed?
10
+ verbose?
11
+
12
+ validate_config!
13
+
14
+ @to_date, @from_date = parse_dates
15
+ end
16
+
17
+ private
18
+
19
+ def validate_config!
20
+ fail 'Please provide a --username parameter' unless config[:username]
21
+ fail 'Please provide a Gitlab access token in your configuration file' unless config['gitlab_access_token']
22
+ end
23
+
24
+ def help_needed?
25
+ return unless @config[:help]
26
+
27
+ puts @config.command_line_help
28
+ exit 0
29
+ end
30
+
31
+ def verbose?
32
+ return unless @config[:verbose]
33
+
34
+ puts ' ## Here is a display of the config sources and contents'
35
+ puts @config.detailed_layers_info
36
+ puts ' ## This the resulting merged config'
37
+ puts @config[].to_yaml
38
+ end
39
+
40
+ def parse_dates
41
+ if @config[:from]
42
+ from_date = Time.parse(@config[:from])
43
+ else
44
+ from_date = (Time.now - 1.day).beginning_of_day
45
+ end
46
+
47
+ if @config[:to]
48
+ to_date = Time.parse(@config[:to])
49
+ else
50
+ to_date = Time.now.beginning_of_day
51
+ end
52
+
53
+ [to_date, from_date]
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,80 @@
1
+ require 'gitlab'
2
+
3
+ module Standup
4
+ class ReportGenerator
5
+ def initialize(settings)
6
+ @settings = settings
7
+
8
+ configure_gitlab_client
9
+ end
10
+
11
+ def gitlab_report!
12
+ done = []
13
+ reviewed = []
14
+ config = @settings.config
15
+ to_date = @settings.to_date
16
+ from_date = @settings.from_date
17
+
18
+ projects_query = {
19
+ per_page: 10,
20
+ scope: :owned,
21
+ search: config['gitlab_project_search_pattern'],
22
+ order_by: :last_activity_at,
23
+ sort: :desc
24
+ }
25
+
26
+ mrs_query = {
27
+ per_page: 100,
28
+ state: :merged,
29
+ order_by: :updated_at,
30
+ sort: :desc
31
+ }
32
+
33
+ projects = Gitlab.projects(projects_query)
34
+
35
+ projects.each do |project|
36
+ begin
37
+ merged_mrs = Gitlab.merge_requests(project.id, mrs_query)
38
+ rescue Gitlab::Error::Forbidden
39
+ # Don't seem to have acces to some MRs
40
+ merged_mrs = []
41
+ end
42
+
43
+ merged_mrs.each do |mr|
44
+ updated_at = Time.parse(mr.updated_at)
45
+ author = mr.author.username
46
+ assignee = mr.assignee && mr.assignee.username
47
+
48
+ if updated_at < to_date &&
49
+ updated_at > from_date
50
+
51
+ if author == config[:username]
52
+ done << "#{mr.title} (#{project.name})"
53
+ elsif assignee == config[:username]
54
+ reviewed << "#{mr.title} (#{project.name})"
55
+ end
56
+ end
57
+ end
58
+ end
59
+
60
+ puts '----- DONE -----'
61
+ puts done
62
+ puts "----------------\n\n"
63
+
64
+ puts '--- REVIEWED ---'
65
+ puts reviewed
66
+ puts "----------------\n\n"
67
+ end
68
+
69
+ private
70
+
71
+ def configure_gitlab_client
72
+ api_endpoint = @settings.config['gitlab_endpoint'] || 'https://gitlab.com/api/v3'.freeze
73
+
74
+ Gitlab.configure do |c|
75
+ c.endpoint = api_endpoint
76
+ c.private_token = @settings.config['gitlab_access_token']
77
+ end
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,3 @@
1
+ module Standup
2
+ VERSION = '0.0.1'
3
+ end
data/lib/standup.rb ADDED
@@ -0,0 +1,6 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
2
+ require 'active_support/core_ext/time'
3
+ require 'active_support/core_ext/numeric/time'
4
+
5
+ require 'standup/version'
6
+ require 'standup/app'
data/stand.gemspec ADDED
@@ -0,0 +1,41 @@
1
+ $: << File.expand_path('../lib', __FILE__)
2
+ require 'standup/version'
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = 'stand'
6
+ s.licenses = ['MIT']
7
+ s.version = Standup::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ['Paul Bonaud', 'Théophile Helleboid']
10
+ s.email = ['paul.bonaud@trainline.com']
11
+ s.homepage = 'https://rubygems.org/gems/stand'
12
+ s.summary = %q(Generate your standup reports instantly.)
13
+ s.description = %q(Generate your standup reports instantly.)
14
+
15
+ s.files = `git ls-files`.split("\n")
16
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
17
+ s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
18
+ s.require_paths = ['lib']
19
+
20
+ s.required_ruby_version = '>= 2.2.2'
21
+
22
+ s.add_dependency 'easy_app_helper'
23
+ s.add_dependency 'activesupport'
24
+ s.add_dependency 'gitlab'
25
+
26
+ s.add_development_dependency 'pry'
27
+ s.add_development_dependency 'guard'
28
+ s.add_development_dependency 'guard-rspec'
29
+ s.add_development_dependency 'guard-rubocop'
30
+ s.add_development_dependency 'rubocop'
31
+ s.add_development_dependency 'ci_reporter'
32
+ s.add_development_dependency 'ci_reporter_rspec'
33
+ s.add_development_dependency 'rack-test'
34
+ s.add_development_dependency 'rake'
35
+ s.add_development_dependency 'rspec'
36
+ s.add_development_dependency 'rspec-its'
37
+ s.add_development_dependency 'simplecov'
38
+ s.add_development_dependency 'simplecov-rcov'
39
+ s.add_development_dependency 'timecop'
40
+ s.add_development_dependency 'webmock'
41
+ end
metadata ADDED
@@ -0,0 +1,310 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: stand
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Paul Bonaud
8
+ - Théophile Helleboid
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2017-05-01 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: easy_app_helper
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: '0'
28
+ - !ruby/object:Gem::Dependency
29
+ name: activesupport
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: gitlab
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: pry
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ - !ruby/object:Gem::Dependency
71
+ name: guard
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ - !ruby/object:Gem::Dependency
85
+ name: guard-rspec
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ - !ruby/object:Gem::Dependency
99
+ name: guard-rubocop
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ - !ruby/object:Gem::Dependency
113
+ name: rubocop
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: ci_reporter
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ type: :development
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
140
+ - !ruby/object:Gem::Dependency
141
+ name: ci_reporter_rspec
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: '0'
147
+ type: :development
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - ">="
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ - !ruby/object:Gem::Dependency
155
+ name: rack-test
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - ">="
159
+ - !ruby/object:Gem::Version
160
+ version: '0'
161
+ type: :development
162
+ prerelease: false
163
+ version_requirements: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: '0'
168
+ - !ruby/object:Gem::Dependency
169
+ name: rake
170
+ requirement: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - ">="
173
+ - !ruby/object:Gem::Version
174
+ version: '0'
175
+ type: :development
176
+ prerelease: false
177
+ version_requirements: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - ">="
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ - !ruby/object:Gem::Dependency
183
+ name: rspec
184
+ requirement: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - ">="
187
+ - !ruby/object:Gem::Version
188
+ version: '0'
189
+ type: :development
190
+ prerelease: false
191
+ version_requirements: !ruby/object:Gem::Requirement
192
+ requirements:
193
+ - - ">="
194
+ - !ruby/object:Gem::Version
195
+ version: '0'
196
+ - !ruby/object:Gem::Dependency
197
+ name: rspec-its
198
+ requirement: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - ">="
201
+ - !ruby/object:Gem::Version
202
+ version: '0'
203
+ type: :development
204
+ prerelease: false
205
+ version_requirements: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - ">="
208
+ - !ruby/object:Gem::Version
209
+ version: '0'
210
+ - !ruby/object:Gem::Dependency
211
+ name: simplecov
212
+ requirement: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - ">="
215
+ - !ruby/object:Gem::Version
216
+ version: '0'
217
+ type: :development
218
+ prerelease: false
219
+ version_requirements: !ruby/object:Gem::Requirement
220
+ requirements:
221
+ - - ">="
222
+ - !ruby/object:Gem::Version
223
+ version: '0'
224
+ - !ruby/object:Gem::Dependency
225
+ name: simplecov-rcov
226
+ requirement: !ruby/object:Gem::Requirement
227
+ requirements:
228
+ - - ">="
229
+ - !ruby/object:Gem::Version
230
+ version: '0'
231
+ type: :development
232
+ prerelease: false
233
+ version_requirements: !ruby/object:Gem::Requirement
234
+ requirements:
235
+ - - ">="
236
+ - !ruby/object:Gem::Version
237
+ version: '0'
238
+ - !ruby/object:Gem::Dependency
239
+ name: timecop
240
+ requirement: !ruby/object:Gem::Requirement
241
+ requirements:
242
+ - - ">="
243
+ - !ruby/object:Gem::Version
244
+ version: '0'
245
+ type: :development
246
+ prerelease: false
247
+ version_requirements: !ruby/object:Gem::Requirement
248
+ requirements:
249
+ - - ">="
250
+ - !ruby/object:Gem::Version
251
+ version: '0'
252
+ - !ruby/object:Gem::Dependency
253
+ name: webmock
254
+ requirement: !ruby/object:Gem::Requirement
255
+ requirements:
256
+ - - ">="
257
+ - !ruby/object:Gem::Version
258
+ version: '0'
259
+ type: :development
260
+ prerelease: false
261
+ version_requirements: !ruby/object:Gem::Requirement
262
+ requirements:
263
+ - - ">="
264
+ - !ruby/object:Gem::Version
265
+ version: '0'
266
+ description: Generate your standup reports instantly.
267
+ email:
268
+ - paul.bonaud@trainline.com
269
+ executables:
270
+ - standup
271
+ extensions: []
272
+ extra_rdoc_files: []
273
+ files:
274
+ - ".gitignore"
275
+ - Gemfile
276
+ - Gemfile.lock
277
+ - LICENSE
278
+ - README.md
279
+ - bin/standup
280
+ - lib/standup.rb
281
+ - lib/standup/app.rb
282
+ - lib/standup/config_parser.rb
283
+ - lib/standup/report_generator.rb
284
+ - lib/standup/version.rb
285
+ - stand.gemspec
286
+ homepage: https://rubygems.org/gems/stand
287
+ licenses:
288
+ - MIT
289
+ metadata: {}
290
+ post_install_message:
291
+ rdoc_options: []
292
+ require_paths:
293
+ - lib
294
+ required_ruby_version: !ruby/object:Gem::Requirement
295
+ requirements:
296
+ - - ">="
297
+ - !ruby/object:Gem::Version
298
+ version: 2.2.2
299
+ required_rubygems_version: !ruby/object:Gem::Requirement
300
+ requirements:
301
+ - - ">="
302
+ - !ruby/object:Gem::Version
303
+ version: '0'
304
+ requirements: []
305
+ rubyforge_project:
306
+ rubygems_version: 2.5.2
307
+ signing_key:
308
+ specification_version: 4
309
+ summary: Generate your standup reports instantly.
310
+ test_files: []