rescuetime 0.3.3 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|