rescuetime 0.3.3 → 0.4.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 +4 -4
- data/.rubocop.yml +4 -1
- data/.rubocop_todo.yml +32 -54
- data/Gemfile +1 -3
- data/README.md +133 -38
- data/Rakefile +1 -1
- data/lib/rescuetime.rb +68 -3
- data/lib/rescuetime/client.rb +7 -11
- data/lib/rescuetime/collection.rb +27 -10
- data/lib/rescuetime/configuration.rb +22 -0
- data/lib/rescuetime/core_extensions.rb +8 -0
- data/lib/rescuetime/core_extensions/object.rb +8 -0
- data/lib/rescuetime/core_extensions/object/blank.rb +49 -0
- data/lib/rescuetime/core_extensions/string.rb +10 -0
- data/lib/rescuetime/date_parser.rb +12 -10
- data/lib/rescuetime/errors.rb +79 -73
- data/lib/rescuetime/formatters.rb +48 -0
- data/lib/rescuetime/formatters/array_formatter.rb +23 -0
- data/lib/rescuetime/formatters/base_formatter.rb +46 -0
- data/lib/rescuetime/formatters/csv_formatter.rb +23 -0
- data/lib/rescuetime/query_buildable.rb +18 -16
- data/lib/rescuetime/report_formatters.rb +83 -0
- data/lib/rescuetime/requester.rb +43 -22
- data/lib/rescuetime/version.rb +3 -2
- data/rescuetime.gemspec +1 -0
- metadata +12 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 91580bf8d38de0e666474a0997d3e0ec3c556c83
|
4
|
+
data.tar.gz: b6e82c5ceaad582f0294ad7dde9e0e50aedfd38f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8dbb49c2e711c4f66c35a501253b3e491b933acee14f2232d147f33056cffd108856a98fa6c8b0751891649d0cb7b3332ee0577667b004d1c496783da706fed8
|
7
|
+
data.tar.gz: ecbedb46b28cf5861b16b61b9006a61d88952328f77654e1b0b1db28fc3e15b279eab88639bfff8f38036876fb81d033af86c895807675edf555e71b596ddc32
|
data/.rubocop.yml
CHANGED
data/.rubocop_todo.yml
CHANGED
@@ -1,80 +1,58 @@
|
|
1
1
|
# This configuration was generated by
|
2
2
|
# `rubocop --auto-gen-config`
|
3
|
-
# on 2016-05-
|
3
|
+
# on 2016-05-26 15:32:03 -0400 using RuboCop version 0.40.0.
|
4
4
|
# The point is for the user to remove these configuration records
|
5
5
|
# one by one as the offenses are removed from the code base.
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
7
7
|
# versions of RuboCop, may require this file to be generated again.
|
8
8
|
|
9
|
-
# Offense count:
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
# Offense count: 23
|
10
|
+
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes.
|
11
|
+
# URISchemes: http, https
|
12
|
+
Metrics/LineLength:
|
13
|
+
Max: 91
|
13
14
|
|
14
15
|
# Offense count: 1
|
15
16
|
# Configuration parameters: CountComments.
|
16
17
|
Metrics/MethodLength:
|
17
18
|
Max: 13
|
18
19
|
|
19
|
-
# Offense count:
|
20
|
+
# Offense count: 8
|
20
21
|
# Cop supports --auto-correct.
|
21
|
-
|
22
|
+
# Configuration parameters: EnforcedStyle, SupportedStyles, ProceduralMethods, FunctionalMethods, IgnoredMethods.
|
23
|
+
# SupportedStyles: line_count_based, semantic, braces_for_chaining
|
24
|
+
# ProceduralMethods: benchmark, bm, bmbm, create, each_with_object, measure, new, realtime, tap, with_object
|
25
|
+
# FunctionalMethods: let, let!, subject, watch
|
26
|
+
# IgnoredMethods: lambda, proc, it
|
27
|
+
Style/BlockDelimiters:
|
22
28
|
Exclude:
|
23
|
-
- '
|
29
|
+
- 'spec/rescuetime/core_extensions/object/blank_spec.rb'
|
30
|
+
- 'spec/rescuetime/date_parser_spec.rb'
|
31
|
+
- 'spec/rescuetime/formatters/array_formatter_spec.rb'
|
32
|
+
- 'spec/rescuetime/formatters/csv_formatter_spec.rb'
|
33
|
+
- 'spec/rescuetime/report_formatters_spec.rb'
|
34
|
+
- 'spec/rescuetime/requester_spec.rb'
|
24
35
|
|
25
|
-
# Offense count:
|
26
|
-
# Cop supports --auto-correct.
|
36
|
+
# Offense count: 7
|
27
37
|
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
28
|
-
# SupportedStyles:
|
29
|
-
Style/
|
38
|
+
# SupportedStyles: nested, compact
|
39
|
+
Style/ClassAndModuleChildren:
|
30
40
|
Exclude:
|
31
|
-
- 'lib/rescuetime/
|
41
|
+
- 'lib/rescuetime/core_extensions/object.rb'
|
42
|
+
- 'lib/rescuetime/core_extensions/object/blank.rb'
|
43
|
+
- 'lib/rescuetime/core_extensions/string.rb'
|
44
|
+
- 'lib/rescuetime/formatters/array_formatter.rb'
|
45
|
+
- 'lib/rescuetime/formatters/base_formatter.rb'
|
46
|
+
- 'lib/rescuetime/formatters/csv_formatter.rb'
|
47
|
+
- 'spec/fixtures/formatters/fake_formatter.rb'
|
32
48
|
|
33
|
-
# Offense count:
|
34
|
-
|
35
|
-
# Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth.
|
36
|
-
# SupportedStyles: aligned, indented
|
37
|
-
Style/MultilineMethodCallIndentation:
|
38
|
-
Enabled: false
|
39
|
-
|
40
|
-
# Offense count: 9
|
41
|
-
# Cop supports --auto-correct.
|
42
|
-
Style/MutableConstant:
|
43
|
-
Exclude:
|
44
|
-
- 'lib/rescuetime/collection.rb'
|
45
|
-
- 'lib/rescuetime/date_parser.rb'
|
46
|
-
- 'lib/rescuetime/errors.rb'
|
47
|
-
- 'lib/rescuetime/query_buildable.rb'
|
48
|
-
- 'lib/rescuetime/requester.rb'
|
49
|
-
- 'lib/rescuetime/version.rb'
|
50
|
-
- 'spec/sample_secret.rb'
|
51
|
-
- 'spec/secret.rb'
|
52
|
-
|
53
|
-
# Offense count: 3
|
54
|
-
# Cop supports --auto-correct.
|
55
|
-
Style/NestedParenthesizedCalls:
|
49
|
+
# Offense count: 1
|
50
|
+
Style/DoubleNegation:
|
56
51
|
Exclude:
|
57
|
-
- '
|
52
|
+
- 'lib/rescuetime/core_extensions/object/blank.rb'
|
58
53
|
|
59
54
|
# Offense count: 1
|
60
55
|
# Cop supports --auto-correct.
|
61
56
|
Style/ParallelAssignment:
|
62
57
|
Exclude:
|
63
58
|
- 'spec/rescuetime/query_buildable_spec.rb'
|
64
|
-
|
65
|
-
# Offense count: 1
|
66
|
-
# Cop supports --auto-correct.
|
67
|
-
Style/RedundantSelf:
|
68
|
-
Exclude:
|
69
|
-
- 'lib/rescuetime/query_buildable.rb'
|
70
|
-
|
71
|
-
# Offense count: 10
|
72
|
-
# Cop supports --auto-correct.
|
73
|
-
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
74
|
-
# SupportedStyles: only_raise, only_fail, semantic
|
75
|
-
Style/SignalException:
|
76
|
-
Exclude:
|
77
|
-
- 'lib/rescuetime/collection.rb'
|
78
|
-
- 'lib/rescuetime/date_parser.rb'
|
79
|
-
- 'lib/rescuetime/query_buildable.rb'
|
80
|
-
- 'lib/rescuetime/requester.rb'
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -21,6 +21,7 @@ For more information about RescueTime, visit [the RescueTime homepage](https://w
|
|
21
21
|
* [Usage](#usage)
|
22
22
|
* [Prerequisites](#prerequisites)
|
23
23
|
* [In a Nutshell](#in-a-nutshell) (skip to here if you want to see the syntax)
|
24
|
+
* [Custom Report Formatters](#custom-report-formatters)
|
24
25
|
* [Finding Answers (Documentation)](#finding-answers-documentation)
|
25
26
|
* [Defaults](#defaults)
|
26
27
|
* [Rescuetime Exceptions](#rescuetime-exceptions)
|
@@ -51,7 +52,7 @@ Or install it yourself as:
|
|
51
52
|
|
52
53
|
### Prerequisites
|
53
54
|
|
54
|
-
Ensure that you are using a [supported ruby version](https://github.com/leesharma/rescuetime/wiki/Supported-Rubies) for your project.
|
55
|
+
Ensure that you are using a [supported ruby version](https://github.com/leesharma/rescuetime/wiki/Supported-Rubies) for your project.
|
55
56
|
|
56
57
|
In order to use access your RescueTime data, you will need an API key. If you do not already have a key, visit the [API key management page](https://www.rescuetime.com/anapi/manage).
|
57
58
|
|
@@ -66,7 +67,7 @@ require 'rescuetime'
|
|
66
67
|
|
67
68
|
# Rescuetime uses lazy evaluation, so until you either manipulate the collection
|
68
69
|
# or explicitly call for it (with #all), it will remain in the Rescuetime::Collection
|
69
|
-
# format.
|
70
|
+
# format.
|
70
71
|
@client.overview.class #=> Rescuetime::Collection
|
71
72
|
@client.overview.all.class #=> Array
|
72
73
|
@client.overview.map {...} #=> Array
|
@@ -89,9 +90,9 @@ require 'rescuetime'
|
|
89
90
|
# - Object#strftime
|
90
91
|
@client.overview # Fetches results from today
|
91
92
|
@client.overview.date('2014-12-31') # Fetches results from Dec 31, 2014.
|
92
|
-
@client.overview.from('2015-01-01').to('2015-02-01')
|
93
|
-
@client.overview.from('2015-04-01')
|
94
|
-
|
93
|
+
@client.overview.from('2015-01-01').to('2015-02-01')
|
94
|
+
@client.overview.from('2015-04-01')
|
95
|
+
|
95
96
|
|
96
97
|
##
|
97
98
|
# Report Order (:order_by)
|
@@ -99,7 +100,7 @@ require 'rescuetime'
|
|
99
100
|
# Defaults:
|
100
101
|
# Efficiency defaults to chronological order; everything else defaults to "rank" order
|
101
102
|
#
|
102
|
-
# You can order_by:
|
103
|
+
# You can order_by:
|
103
104
|
# :rank, :time, or :member (note: efficiency can't be sorted by :rank)
|
104
105
|
#
|
105
106
|
# When ordering by time, default interval is 1 hour.
|
@@ -107,15 +108,15 @@ require 'rescuetime'
|
|
107
108
|
# :minute (5-minute chunks), :hour, :day, :week, :month
|
108
109
|
@client.efficiency # Defaults to :time
|
109
110
|
@client.productivity # Defaults to :rank
|
110
|
-
|
111
|
-
@client.productivity.order_by(:rank)
|
112
|
-
@client.productivity.order_by(:time)
|
113
|
-
@client.productivity.order_by(:member)
|
114
|
-
|
111
|
+
|
112
|
+
@client.productivity.order_by(:rank)
|
113
|
+
@client.productivity.order_by(:time)
|
114
|
+
@client.productivity.order_by(:member)
|
115
|
+
|
115
116
|
@client.productivity.order_by(:time) # Defaults to :hour
|
116
|
-
@client.productivity.order_by(:time, interval: :minute)
|
117
|
-
@client.productivity.order_by(:time, interval: :hour)
|
118
|
-
@client.productivity.order_by(:time, interval: :day)
|
117
|
+
@client.productivity.order_by(:time, interval: :minute)
|
118
|
+
@client.productivity.order_by(:time, interval: :hour)
|
119
|
+
@client.productivity.order_by(:time, interval: :day)
|
119
120
|
@client.productivity.order_by(:time, interval: :week)
|
120
121
|
@client.productivity.order_by(:time, interval: :month)
|
121
122
|
|
@@ -131,10 +132,10 @@ require 'rescuetime'
|
|
131
132
|
# Try the query sans document for a list of valid options
|
132
133
|
#
|
133
134
|
# Names must be exact matches.
|
134
|
-
@client.activities.where(name: 'github.com')
|
135
|
-
@client.categories.where(name: 'Intelligence')
|
136
|
-
@client.overview.where(name: 'Utilities')
|
137
|
-
@client.activities.where(name: 'github.com', document: 'vcr/vcr')
|
135
|
+
@client.activities.where(name: 'github.com')
|
136
|
+
@client.categories.where(name: 'Intelligence')
|
137
|
+
@client.overview.where(name: 'Utilities')
|
138
|
+
@client.activities.where(name: 'github.com', document: 'vcr/vcr')
|
138
139
|
|
139
140
|
##
|
140
141
|
# Formatting options (:csv, :array)
|
@@ -144,9 +145,98 @@ require 'rescuetime'
|
|
144
145
|
@client.efficiency.format(:array) # Returns Array<Hash>
|
145
146
|
```
|
146
147
|
|
148
|
+
### Custom Report Formatters
|
149
|
+
|
150
|
+
*Feature available in v0.4.0 and later*
|
151
|
+
|
152
|
+
Rescuetime ships with two report formats: CSV and Array. If you would like your
|
153
|
+
report in a different format, don't worry–it's easy to add a custom formatter.
|
154
|
+
|
155
|
+
Four things are required to add a custom formatter:
|
156
|
+
|
157
|
+
1. [Write a class](#writing-a-formatter) within the module
|
158
|
+
`Rescuetime::Formatters` that inherits from `Rescuetime::Formatters::BaseFormatter`
|
159
|
+
or one of its descendants
|
160
|
+
2. Define the class methods `.name` and `.format`
|
161
|
+
4. [Register your formatters](#registering-your-formatters) using `Rescuetime.configure`
|
162
|
+
|
163
|
+
#### Writing a Formatter
|
164
|
+
|
165
|
+
First, the formatters themselves. Here is a basic formatter:
|
166
|
+
|
167
|
+
```ruby
|
168
|
+
# config/formatters/nil_formatter.rb
|
169
|
+
module Rescuetime::Formatters
|
170
|
+
# Turns a productivity report into nothing useful.
|
171
|
+
class NilFormatter < BaseFormatter
|
172
|
+
# @return [String] name of this report format
|
173
|
+
def self.name
|
174
|
+
'nil'
|
175
|
+
end
|
176
|
+
|
177
|
+
# @param [CSV] _report the raw CSV report from Rescuetime
|
178
|
+
# @return [nil] the formatted output (in this case, nil)
|
179
|
+
def self.format(_report)
|
180
|
+
nil
|
181
|
+
end
|
182
|
+
end
|
183
|
+
end
|
184
|
+
```
|
185
|
+
|
186
|
+
You can even inherit from an existing formatter:
|
187
|
+
|
188
|
+
```ruby
|
189
|
+
# config/formatters/shouty_array_formatter.rb
|
190
|
+
module Rescuetime::Formatters
|
191
|
+
# Formats a rescuetime report as an array of hashes, except shouting.
|
192
|
+
class ShoutyArrayFormatter < ArrayFormatter
|
193
|
+
# @return [String] name of this report format
|
194
|
+
def self.name
|
195
|
+
'shouty_array'
|
196
|
+
end
|
197
|
+
|
198
|
+
# @param [CSV] report the raw CSV report from Rescuetime
|
199
|
+
# @return [Array<Hash>] the formatted output (in this case, a shouty
|
200
|
+
# array of hashes)
|
201
|
+
def self.format(report)
|
202
|
+
array = super(report)
|
203
|
+
array.map do |hash|
|
204
|
+
terms = hash.map { |key, value| [key.to_s.upcase, value.to_s.upcase] }
|
205
|
+
Hash[terms]
|
206
|
+
end
|
207
|
+
end
|
208
|
+
end
|
209
|
+
end
|
210
|
+
```
|
211
|
+
|
212
|
+
#### Registering your Formatters
|
213
|
+
|
214
|
+
Before setting your report format, add the path to your formatter(s) to the
|
215
|
+
Rescuetime configuration using the `Rescuetime.configure` method. You will be
|
216
|
+
able to set, append to, or manipulate the `formatter_paths` setting.
|
217
|
+
|
218
|
+
```ruby
|
219
|
+
Rescuetime.configure do |config|
|
220
|
+
path = File.expand_path('../my_custom_formatter.rb', __FILE__)
|
221
|
+
config.formatter_paths = [path]
|
222
|
+
end
|
223
|
+
```
|
224
|
+
|
225
|
+
Now Rescuetime will look for the `my_custom_formatter.rb` file. Multiple paths
|
226
|
+
may be added as well.
|
227
|
+
|
228
|
+
```ruby
|
229
|
+
Rescuetime.configure do |config|
|
230
|
+
config.formatter_paths = [
|
231
|
+
'config/formatters/*_formatter.rb',
|
232
|
+
'lib/formatters/**/*_formatter.rb',
|
233
|
+
]
|
234
|
+
end
|
235
|
+
```
|
236
|
+
|
147
237
|
### Finding Answers (Documentation)
|
148
238
|
|
149
|
-
For more details, please see [official gem documentation](http://www.rubydoc.info/gems/rescuetime) or [read the wiki](https://github.com/leesharma/rescuetime/wiki).
|
239
|
+
For more details, please see [official gem documentation](http://www.rubydoc.info/gems/rescuetime) or [read the wiki](https://github.com/leesharma/rescuetime/wiki).
|
150
240
|
|
151
241
|
### Defaults
|
152
242
|
|
@@ -162,27 +252,32 @@ The `Rescuetime::Client#activities` action has the following defaults:
|
|
162
252
|
|
163
253
|
### Rescuetime Exceptions
|
164
254
|
|
165
|
-
|
255
|
+
*Note: In v0.4.0, custom exceptions were moved from the base `Rescuetime`
|
256
|
+
namespace to the `Rescuetime::Errors` namespace. For example, in v0.3.3,
|
257
|
+
a bad request was represented by `Rescuetime::BadRequest`. In >= v0.4.0,
|
258
|
+
it is represented by `Rescuetime::Errors::BadRequest`.*
|
259
|
+
|
260
|
+
There are a number of exceptions that extend from the `Rescuetime::Errors::Error` class:
|
166
261
|
|
167
|
-
*
|
168
|
-
*
|
169
|
-
*
|
170
|
-
*
|
262
|
+
* **`Rescuetime::Errors::MissingCredentialsError`** is raised when a request is attempted by a client with no credentials. Try setting credentials with `@client.api_key = <YOUR_API_KEY>`.
|
263
|
+
* **`Rescuetime::Errors::InvalidCredentialsError`** is raised when a request is attempted by a client with invalid credentials. Double-check your API key and fix your client with `@client.api_key = <VALID_API_KEY>`.
|
264
|
+
* **`Rescuetime::Errors::InvalidQueryError`** is raised if you enter an invalid value for any of the RescueTime query methods (or if the server returns a bad query error)
|
265
|
+
* **`Rescuetime::Errors::InvalidFormatError`** is raised if you pass a disallowed format to the client
|
171
266
|
* HTTP Response Errors:
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
267
|
+
* **4xx => `Rescuetime::Errors::ClientError`**
|
268
|
+
* 400 => `Rescuetime::Errors::BadRequest`
|
269
|
+
* 401 => `Rescuetime::Errors::Unauthorized`
|
270
|
+
* 403 => `Rescuetime::Errors::Forbidden`
|
271
|
+
* 404 => `Rescuetime::Errors::NotFound`
|
272
|
+
* 406 => `Rescuetime::Errors::NotAcceptable`
|
273
|
+
* 422 => `Rescuetime::Errors::UnprocessableEntity`
|
274
|
+
* 429 => `Rescuetime::Errors::TooManyRequests`
|
275
|
+
* **5xx => `Rescuetime::Errors::ServerError`**
|
276
|
+
* 500 => `Rescuetime::Errors::InternalServerError`
|
277
|
+
* 501 => `Rescuetime::Errors::NotImplemented`
|
278
|
+
* 502 => `Rescuetime::Errors::BadGateway`
|
279
|
+
* 503 => `Rescuetime::Errors::ServiceUnavailable`
|
280
|
+
* 504 => `Rescuetime::Errors::GatewayTimeout`
|
186
281
|
|
187
282
|
## Development
|
188
283
|
|
data/Rakefile
CHANGED
data/lib/rescuetime.rb
CHANGED
@@ -1,10 +1,75 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'rescuetime/version'
|
4
|
+
require 'rescuetime/configuration'
|
2
5
|
require 'rescuetime/client'
|
3
6
|
require 'rescuetime/errors'
|
4
7
|
|
5
|
-
#
|
8
|
+
# Wrapper module for rescuetime gem
|
9
|
+
#
|
10
|
+
# @since v0.1.0
|
6
11
|
module Rescuetime
|
7
|
-
#
|
12
|
+
# class << self
|
13
|
+
# attr_writer :configuration
|
14
|
+
# end
|
15
|
+
|
16
|
+
# Passes a block to the Rescuetime configuration, allowing configuration
|
17
|
+
# options to be set.
|
18
|
+
#
|
19
|
+
# @example
|
20
|
+
# # In an initializer or before any report formatters are called:
|
21
|
+
# Rescuetime.configure do |config|
|
22
|
+
# config.formatter_paths += ['path/to/local/formatters/*_formatter.rb']
|
23
|
+
# end
|
24
|
+
#
|
25
|
+
# # Let's say that directory contains the valid formatters pdf_formatter.rb
|
26
|
+
# # and json_formatter.rb
|
27
|
+
# report_formatters = Rescuetime::ReportFormatters.new
|
28
|
+
# puts report_formatters.all
|
29
|
+
# #=> ["array", "csv", "pdf", "json"]
|
30
|
+
#
|
31
|
+
# @see Rescuetime.configuration
|
32
|
+
# @see Rescuetime::Configuration
|
33
|
+
# @since v0.4.0
|
34
|
+
def self.configure
|
35
|
+
yield(configuration)
|
36
|
+
end
|
37
|
+
|
38
|
+
# Returns either the current configuration (if set) or initializes a new
|
39
|
+
# default configuration.
|
40
|
+
#
|
41
|
+
# @example
|
42
|
+
# Rescuetime.configuration.formatter_paths
|
43
|
+
# #=> []
|
44
|
+
#
|
45
|
+
# Rescuetime.configure do |config|
|
46
|
+
# config.formatter_paths += ['formatters/*.rb']
|
47
|
+
# end
|
48
|
+
# Rescuetime.configuration.formatter_paths
|
49
|
+
# #=> ["formatters/*.rb"]
|
50
|
+
#
|
51
|
+
# @see Rescuetime::Configuration
|
52
|
+
# @return [Rescuetime::Configuration] the current Rescuetime configuration
|
53
|
+
# @since v0.4.0
|
54
|
+
def self.configuration
|
55
|
+
@configuration ||= Configuration.new
|
56
|
+
end
|
57
|
+
|
58
|
+
# Resets the configuration back to the initial state. Mainly useful for
|
59
|
+
# resetting the class after testing, making specs order-independent.
|
60
|
+
#
|
61
|
+
# @example
|
62
|
+
# before :each do
|
63
|
+
# Rescuetime.configure { |c| c.formatter_paths += ['formatters/*.rb'] }
|
64
|
+
# end
|
65
|
+
#
|
66
|
+
# after :each do
|
67
|
+
# Rescuetime.reset
|
68
|
+
# end
|
8
69
|
#
|
9
|
-
# @
|
70
|
+
# @see Rescuetime::Configuration#initialize
|
71
|
+
# @since v0.4.0
|
72
|
+
def self.reset
|
73
|
+
@configuration = Configuration.new
|
74
|
+
end
|
10
75
|
end
|