gem_stream 0.1.3 → 0.1.4
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/.gitignore +1 -0
- data/README.md +4 -0
- data/lib/gem_stream.rb +1 -0
- data/lib/gem_stream/api_error.rb +3 -0
- data/lib/gem_stream/follower.rb +5 -3
- data/lib/gem_stream/version.rb +1 -1
- metadata +3 -3
- data/Gemfile.lock +0 -57
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4a22f7ffe295ffef583bbda157021b44d65afed4f11b86570826d873dd432517
|
4
|
+
data.tar.gz: a109cd0d77755965d9c8d376895edde12c5b5e3d9722e5baecc6f5cf43a9e7d8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a589775ac97d2d1b494c263f802a59a10fdcbc11119ff2742a7b371ff3122fb46f442b41a90ba5c82e1fbe22233c3a92d2aed6bee2ea6f37e29b4dc1977395aa
|
7
|
+
data.tar.gz: d51cdfa0e406b7c2c720c5c26225be1d1bf139e36daf7e0884b035c00b8fce5f3219882a0b40665af12344d838bc8cef924550a66819f6941865f72269cbf17d
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -47,6 +47,10 @@ Once you've handled configuration, you can use GemStream like this:
|
|
47
47
|
GemStream::Follower.follow_from(start_time)
|
48
48
|
```
|
49
49
|
|
50
|
+
### Errors
|
51
|
+
|
52
|
+
If a Rubygems api error is encountered, GemStream will raise a `GemStream::ApiError`. In most cases, you can rescue this error and start a new follower from where you left of at. To get the time that you left off at, you can check the `GemStream::Follower` instance `synced_up_to_time` attribute. Note that restarting from this time may replay some `on_version` callbacks, as `synced_up_to_time` only represents the beginning of the last time frame you queried, not the published time of the most recent gem version you received back.
|
53
|
+
|
50
54
|
## Development
|
51
55
|
|
52
56
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
data/lib/gem_stream.rb
CHANGED
data/lib/gem_stream/follower.rb
CHANGED
@@ -4,11 +4,13 @@ require 'net/http'
|
|
4
4
|
|
5
5
|
module GemStream
|
6
6
|
class Follower
|
7
|
+
attr_reader :synced_up_to_time
|
8
|
+
|
7
9
|
RUBYGEMS_ENDPOINT = 'https://rubygems.org/api/v1/timeframe_versions.json'.freeze
|
8
10
|
MAX_RUBY_GEMS_QUERY_RANGE_IN_SECONDS = 6 * 86400 # It's actually 7 days, but use 6 to be safe
|
9
11
|
|
10
12
|
def self.follow_from(start_time)
|
11
|
-
self.new(start_time).follow
|
13
|
+
self.new(start_time).tap(&:follow)
|
12
14
|
end
|
13
15
|
|
14
16
|
def initialize(start_time)
|
@@ -45,8 +47,8 @@ module GemStream
|
|
45
47
|
response = Net::HTTP.get_response(uri)
|
46
48
|
|
47
49
|
if response.code != '200'
|
48
|
-
|
49
|
-
|
50
|
+
msg = "Got status #{response.code} from rubygems for #{RUBYGEMS_ENDPOINT} with options: #{params.inspect}"
|
51
|
+
raise GemStream::ApiError, msg
|
50
52
|
end
|
51
53
|
|
52
54
|
versions = JSON.parse(response.body)
|
data/lib/gem_stream/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gem_stream
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fletcher Wilkens
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-09-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -119,7 +119,6 @@ files:
|
|
119
119
|
- ".rspec"
|
120
120
|
- ".travis.yml"
|
121
121
|
- Gemfile
|
122
|
-
- Gemfile.lock
|
123
122
|
- LICENSE
|
124
123
|
- README.md
|
125
124
|
- Rakefile
|
@@ -127,6 +126,7 @@ files:
|
|
127
126
|
- bin/setup
|
128
127
|
- gem_stream.gemspec
|
129
128
|
- lib/gem_stream.rb
|
129
|
+
- lib/gem_stream/api_error.rb
|
130
130
|
- lib/gem_stream/configuration.rb
|
131
131
|
- lib/gem_stream/follower.rb
|
132
132
|
- lib/gem_stream/version.rb
|
data/Gemfile.lock
DELETED
@@ -1,57 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
gem_stream (0.1.3)
|
5
|
-
|
6
|
-
GEM
|
7
|
-
remote: https://rubygems.org/
|
8
|
-
specs:
|
9
|
-
addressable (2.6.0)
|
10
|
-
public_suffix (>= 2.0.2, < 4.0)
|
11
|
-
coderay (1.1.2)
|
12
|
-
crack (0.4.3)
|
13
|
-
safe_yaml (~> 1.0.0)
|
14
|
-
diff-lcs (1.3)
|
15
|
-
hashdiff (0.4.0)
|
16
|
-
method_source (0.9.2)
|
17
|
-
pry (0.12.2)
|
18
|
-
coderay (~> 1.1.0)
|
19
|
-
method_source (~> 0.9.0)
|
20
|
-
public_suffix (3.1.1)
|
21
|
-
rake (10.5.0)
|
22
|
-
rspec (3.8.0)
|
23
|
-
rspec-core (~> 3.8.0)
|
24
|
-
rspec-expectations (~> 3.8.0)
|
25
|
-
rspec-mocks (~> 3.8.0)
|
26
|
-
rspec-core (3.8.0)
|
27
|
-
rspec-support (~> 3.8.0)
|
28
|
-
rspec-expectations (3.8.3)
|
29
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
30
|
-
rspec-support (~> 3.8.0)
|
31
|
-
rspec-mocks (3.8.0)
|
32
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
33
|
-
rspec-support (~> 3.8.0)
|
34
|
-
rspec-support (3.8.0)
|
35
|
-
safe_yaml (1.0.5)
|
36
|
-
timecop (0.9.1)
|
37
|
-
vcr (5.0.0)
|
38
|
-
webmock (3.6.0)
|
39
|
-
addressable (>= 2.3.6)
|
40
|
-
crack (>= 0.3.2)
|
41
|
-
hashdiff (>= 0.4.0, < 2.0.0)
|
42
|
-
|
43
|
-
PLATFORMS
|
44
|
-
ruby
|
45
|
-
|
46
|
-
DEPENDENCIES
|
47
|
-
bundler (~> 1.16)
|
48
|
-
gem_stream!
|
49
|
-
pry
|
50
|
-
rake (~> 10.0)
|
51
|
-
rspec (~> 3.0)
|
52
|
-
timecop (~> 0.9)
|
53
|
-
vcr (~> 5.0)
|
54
|
-
webmock (~> 3.6)
|
55
|
-
|
56
|
-
BUNDLED WITH
|
57
|
-
1.17.3
|